索引生命周期管理

编辑

生命周期策略允许您随着 APM 索引的增长和老化自动执行其生命周期。每个 APM 数据流都会应用一个默认策略,但可以根据您的业务需求进行自定义。

默认策略
编辑

在 8.15 之前,集群使用 索引生命周期管理 (ILM) 为 APM 数据提供默认数据保留设置。从 8.15 开始,新集群使用 数据流生命周期 (DSL) 提供默认数据保留设置,但生命周期的自定义仍然使用 ILM 策略执行,这些策略现在配置为覆盖默认的 DSL 策略。

对于现有升级到 8.15 的集群,默认 ILM 策略应按预期工作。您可以继续使用 ILM 或使用 数据流 API 明确将默认值切换到 DSL。

对于在 8.15 或更高版本中创建的集群,如果您希望继续使用 ILM,请按照本指南中的步骤创建自定义 ILM 策略并将其添加到每个数据流的*@custom组件模板中。

每个 APM 数据流都有自己的默认生命周期策略,包括删除定义和滚动定义。

下表描述了每个 APM 数据流的删除定义。删除阶段在满足时间阈值后永久删除索引。

数据流 删除时间 备注

traces-apm

10 天

原始跟踪事件数据

traces-apm.rum

90 天

原始 RUM 跟踪事件数据,用于 UI

logs-apm.error

10 天

错误事件数据

logs-apm.app

10 天

日志事件数据

metrics-apm.app

90 天

自定义应用程序特定指标

metrics-apm.internal

90 天

通用系统指标和特定于语言的指标(例如,CPU 和内存使用情况)

metrics-apm.service_destination_1m

90 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.service_destination_10m

180 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.service_destination_60m

390 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.service_summary_1m

90 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.service_summary_10m

180 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.service_summary_60m

390 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.service_transaction_1m

90 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.service_transaction_10m

180 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.service_transaction_60m

390 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.transaction_1m

90 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.transaction_10m

180 天

为“应用程序”UI 提供支持的聚合事务指标

metrics-apm.transaction_60m

390 天

为“应用程序”UI 提供支持的聚合事务指标

滚动(写入新索引)可防止单个索引变得过大,并优化索引和搜索性能。在满足年龄或大小指标后,将发生滚动。每个 APM 数据流的默认滚动定义是根据 cluster.lifecycle.default.rollover 应用的。

可以在 Kibana 中查看 APM 数据流生命周期策略

  1. 要打开索引管理,请在主菜单中查找堆栈管理或使用 全局搜索字段
  2. 选择组件模板
  3. 搜索apm
  4. 查找后缀为@lifecycle的模板。

默认生命周期策略可能会在次要版本之间发生变化。这并不被认为是重大更改,因为索引管理应不断改进并适应新功能。

配置自定义索引生命周期策略
编辑

可以通过创建*@custom组件模板来自定义数据流的映射和设置,这些模板由 Elasticsearch apm-data 插件创建的索引模板引用。为每个数据流配置自定义索引生命周期策略的最简单方法是编辑此模板。

本教程说明如何将自定义索引生命周期策略应用于traces-apm数据流。

步骤 1:查看数据流
编辑

Kibana 中的数据流视图显示了数据流、索引模板和生命周期策略

  1. 要打开索引管理,请在主菜单中查找堆栈管理或使用 全局搜索字段
  2. 选择数据流
  3. 搜索traces-apm以查看与 APM 跟踪数据关联的所有数据流。
  4. 在此示例中,我只有一个数据流,因为我仅使用default命名空间。如果您的设置包含多个命名空间,则可能会有更多。

    Data streams info
步骤 2:创建索引生命周期策略
编辑
  1. 要打开生命周期策略,请在主菜单中查找堆栈管理或使用 全局搜索字段
  2. 点击创建策略

命名您的新策略;在本教程中,我选择了custom-traces-apm-policy。根据您的喜好自定义策略,完成后,点击保存策略

步骤 3:应用索引生命周期策略
编辑

要将新的索引生命周期策略应用于traces-apm-*数据流,请编辑<data-stream-name>@custom组件模板。

  1. 点击组件模板选项卡并搜索traces-apm
  2. 选择traces-apm@custom模板并点击管理编辑
  3. 索引设置下,设置上一步中创建的 ILM 策略名称

    {
      "lifecycle": {
        "name": "custom-traces-apm-policy",
        "prefer_ilm": true
      }
    }
  4. 继续进行审查并确保您的请求类似于下图。如果是,请点击创建组件模板

    Create component template
步骤 4:滚动数据流(可选)
编辑

要确认数据流现在是否正在使用新的索引模板和 ILM 策略,您可以重复 步骤 1,或导航到开发工具并运行以下命令

GET /_data_stream/traces-apm-default 

我们一直在处理的数据流的名称,后面附加您的<namespace>

结果应包含以下内容

{
  "data_streams" : [
    {
      ...
      "template" : "traces-apm-default", 
      "ilm_policy" : "custom-traces-apm-policy", 
      ...
    }
  ]
}

步骤 3 中创建的自定义索引模板的名称

步骤 2 中应用于新组件模板的 ILM 策略的名称

新的 ILM 策略仅在创建新索引时生效,因此您必须等待滚动发生(通常在 30 天后或索引大小达到 50 GB 时),或使用 Elasticsearch 滚动 API 强制滚动

POST /traces-apm-default/_rollover/
命名空间级索引生命周期策略
编辑

还可以创建更细粒度的索引生命周期策略,这些策略应用于各个命名空间。此过程类似于上述教程,但包括克隆和修改现有索引模板以使用新的*@custom组件模板。