索引生命周期管理

编辑

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

在最新版本的 Elastic APM 中,集群由索引生命周期管理 (ILM)进行管理,以便为 APM 数据提供默认的数据保留设置,并允许自定义生命周期。

如果集群升级到 8.17,一些较旧的索引可能会由数据流生命周期 (DSL)进行管理。更多详细信息请参考 APM 版本 8.17

默认策略
编辑

每个 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 提供支持的聚合事务指标

滚动(写入新索引)可防止单个索引增长过大,并优化索引和搜索性能。滚动会在满足时间或大小指标后发生。

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

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

数据流的映射和设置可以通过创建*@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 策略,您可以重复步骤一,或导航到Dev Tools并运行以下内容

GET /_data_stream/traces-apm-default 

我们一直在修改的数据流的名称,附加您的 <namespace>

结果应包括以下内容

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

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

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

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

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

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