索引生命周期管理
Elastic Stack
生命周期策略允许您自动化 APM 索引在其增长和老化过程中的生命周期。 默认策略应用于每个 APM 数据流,但可以根据您的业务需求进行自定义。
在最新版本的 Elastic APM 中,集群由 索引生命周期管理 (ILM) 管理,以便为 APM 数据提供默认的数据保留设置,并允许自定义生命周期。
在 8.15.x 和 8.16.x 中创建的索引可能由 数据流生命周期 (DSL) 管理。 更多详细信息请参见 APM 8.15 版本发行说明。 默认情况下,在 8.17 中创建的新索引由 ILM 管理。 更多详细信息请参见 APM 8.17 版本发行说明。 如果您的索引由 DSL 管理,则您指定的任何自定义 DSL 设置将 *不会* 自动应用于由 ILM 管理的新索引。 相反,您可以使用本指南在 ILM 中复制自定义 DSL 设置。
每个 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
数据流。
Kibana 中的 数据流 视图会向您显示数据流、索引模板和生命周期策略
要打开 索引管理,请在主菜单中找到 Stack Management,或使用 全局搜索字段。
选择 数据流。
搜索
traces-apm
以查看与 APM 跟踪数据关联的所有数据流。在此示例中,我只有一个数据流,因为我只使用
default
命名空间。 如果您的设置包含多个命名空间,则您可能会有更多数据流。
- 要打开 生命周期策略,请在主菜单中找到 Stack Management,或使用 全局搜索字段。
- 单击 创建策略。
命名您的新策略; 对于本教程,我选择了 custom-traces-apm-policy
。 根据您的喜好自定义策略,完成后,单击 保存策略。
要将您的新索引生命周期策略应用于 traces-apm-*
数据流,请编辑 <data-stream-name>@custom
组件模板。
单击 组件模板 选项卡,然后搜索
traces-apm
。选择
traces-apm@custom
模板,然后单击 管理 → 编辑。在 索引设置 下,设置在上一步中创建的 ILM 策略名称
{ "lifecycle": { "name": "custom-traces-apm-policy", "prefer_ilm": true } }
继续到 检查,并确保您的请求看起来与下图相似。 如果是,请单击 创建组件模板。
要确认数据流现在正在使用新的索引模板和 ILM 策略,您可以重复 步骤 1,或导航到 Dev Tools 并运行以下命令
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
组件模板。