使用热冻结数据层生命周期优化在 Elastic Cloud 中存储日志的成本

时间:2024-11-11 11:48:57

作者:来自 Elastic Jonathan Simon

收集数据对于可观察性和安全性至关重要,而确保数据能够快速搜索且获得低延迟结果对于有效管理和保护应用程序和基础设施至关重要。但是,存储所有这些数据会产生持续的存储成本,这为节省成本创造了一个关键机会。在 Elastic Cloud 中,你可以通过设置索引生命周期策略来优化存储费用。此策略允许你的数据从热(hot)数据层(提供超快搜索结果且存储成本较高)移动到具有成本效益的冻结(frozen)层(仍可搜索且获得相当快的结果)。

例如,在具有单个热层的部署中存储 90 天的日志将为你提供最佳性能,正如你对 Elasticsearch 所期望的那样。但在很多情况下,你不需要所有数据都具有超快的性能。有时,你只需要第一天的速度快;过去的日志检索速度可能会慢一点。这种方法将显著降低你的总拥有成本,因为冻结层可以以相同的成本存储高达热层 20 倍的数据量。

让我们开始吧。按照本分步指南为你的日志数据创建热冻结索引生命周期策略。

先决条件

  • 具有冻结数据层的 Elastic Cloud 部署
  • 在云中运行的本地计算机或虚拟机 (VM),我们将从中通过系统集成提取日志数据流 - Elastic 的 400 多个内置集成之一

创建 Elastic Cloud 部署

从创建 Elastic Cloud 部署开始,我们将在 Google Cloud 中运行的虚拟机上安装系统集成,以收集虚拟机的日志。然后,我们将逐步介绍如何配置存储在 Elastic Cloud 中的虚拟机日志以使用热数据层和冻结数据层。登录 Elastic Cloud 开始。

单击 Create deployment

输入你的部署名称并展开 Advanced 部分。

单击 +Add capacity 为冻结数据层添加容量”。

单击 Create deployment

收集日志

现在你已经拥有启用了冻结数据层的 Elastic Cloud 部署,让我们来收集一些日志。我们可以使用系统集成来执行此操作。在你的部署中,单击*菜单并选择 Add integrations 按钮。

在这里,在集成页面上,你可以看到我已经搜索了 System 集成。

选择 System 集成将显示其概览页面。要将此集成添加到客户端主机,你可以单击 Add System

单击 Install Elastic Agent

复制代理安装代码。我们将复制 Linux Tar 选项卡下的代码,因为我们的云 VM 运行的是 Linux 版本。

在连接到虚拟机的 SSH Cloud Shell 中,粘贴并运行刚刚复制的命令。

返回 Elastic Cloud 的系统集成页面,你应该会看到代理已成功安装的确认信息。单击 Add the integration

在 “Set up System integration” 页面上,单击 “Advanced options”,然后输入你选择的 Namespace。对于这篇博文,我们将输入“vm_logs” 作为命名空间。单击 “Confirm incoming data”。

你将看到一个确认页面,其中预览了由虚拟机上运行的 Elastic Agent 发送的传入数据。

现在,单击顶层菜单并选择 Discover,以便我们可以看到现在正在收集的日志。

在 Discover 页面上,单击 data stream selector,从 metrics-* 更改为 logs-*。

展开其中一个日志条目以查看其详细信息。

复制日志条目的索引名称,该名称显示为日志条目详细信息中 _index 的值。

创建索引生命周期策略

单击顶层菜单并 Stack Management

从左侧导航菜单中选择 Index Management

在 “Index Management” 页面的 “Indices” 选项卡上,单击 “Include hidden indices”。

从 Discover 页面的日志条目详细信息中搜索你在上一步中复制的索引名称。复制 Data stream,我们将在下一步中使用该值创建热冻结索引策略。

从左侧导航菜单中选择 Index Lifecycle Policies

单击 Create policy

在 Create policy 页面上,单击热阶段部分下的 Advanced settings

单击 “ Use recommended defaults” 切换按钮以编辑自定义选项。热阶段的默认持续时间为 30 天。

启用 “Frozen phase” 阶段,并在 “Move data into phase when” 输入框中输入数字零,以便值为 “0 days old.”。这意味着在 30 天的热(hot)阶段之后,受此策略控制的数据将立即移至冻结阶段。你的 “Create policy” 表单应类似于以下已完成的表单。单击 “Save policy” 以创建新的索引生命周期策略。

在索引生命周期策略页面,找到新创建的 Hot-Frozen-Policy 索引生命周期策略,然后单击其 “Add policy to index template” 按钮。

对于 index template,输入“logs-system.syslog”,这是我们在前面的步骤中看到的提取 System integration 日志的数据流的前缀。单击 Add policy

让我们确认一下,现在我们已将索引生命周期策略设置为应用于日志数据流。从左侧导航菜单中选择 “Index Management”,在这里我们可以确认包含我们提取的日志的索引是否在新的热冻结索引生命周期策略下运行。

在索引管理页面上,单击 “Include hidden indices” 切换按钮以启用它,然后像之前一样再次搜索包含日志的索引名称。你应该在搜索结果中返回一个索引。单击其 Data stream 链接。

在 “Data Streams” 选项卡中,你应该看到此日志数据流由我们刚刚创建的热冻结(hot frozen policy)策略管理。做得好!

要查看每个数据层的总存储量及其当前状态的概览,请单击顶层菜单并选择 Manage this deployment

立即优化你的日志存储成本

现在,你已经了解了创建索引生命周期策略的过程,这将降低数据在 Elastic Cloud 中老化时的存储成本。亲自尝试一下。将你的日志放入 Elastic Cloud,在那里你可以为你的数据提供自定义的生命周期策略,该策略针对你喜欢的可用性和可负担性级别进行了优化。

要了解更多信息,请参阅导览或查看索引生命周期管理文档

本文中描述的任何特性或功能的发布和时间均由 Elastic 自行决定。任何当前不可用的特性或功能可能无法按时交付或根本无法交付。

原文:Optimize the cost of logs storage in Elastic Cloud using hot and frozen data tiers | Elastic Blog