教程:自定义内置 ILM 策略
编辑教程:自定义内置 ILM 策略
编辑Elasticsearch 包含以下内置 ILM 策略
-
logs@lifecycle
-
metrics@lifecycle
-
synthetics@lifecycle
Elastic Agent 使用这些策略来管理其数据流的后备索引。本教程将演示如何使用 Kibana 的索引生命周期策略,根据您的应用程序的性能、弹性以及保留要求自定义这些策略。
场景
编辑您希望将日志文件发送到 Elasticsearch 集群,以便可视化和分析数据。此数据具有以下保留要求
- 当写入索引达到 50GB 或 30 天时,滚动更新到新索引。
- 滚动更新后,将索引在热数据层中保留 30 天。
-
滚动更新后 30 天
- 将索引移动到温数据层。
- 将副本分片设置为 1。
- 强制合并多个索引段,以释放已删除文档所占用的空间。
- 滚动更新后 90 天删除索引。
先决条件
编辑要完成本教程,您需要
-
具有热数据层和温数据层的 Elasticsearch 集群。
-
Elasticsearch Service:Elasticsearch Service 上的 Elastic Stack 部署默认包含热层。要添加温层,请编辑您的部署,然后单击温数据层的添加容量。
-
自管理集群:按照数据层中的描述,将
data_hot
和data_warm
角色分配给节点。例如,在温层中每个节点的
elasticsearch.yml
文件中包含data_warm
节点角色node.roles: [ data_warm ]
-
- 安装并配置了 Elastic Agent 以将日志发送到您的 Elasticsearch 集群的主机。
复制策略
编辑Elastic Agent 使用索引模式为 logs-*-*
的数据流来存储日志监控数据。托管的 logs@lifecycle
ILM 策略会自动管理这些数据流的后备索引。
如果您不想使用策略默认值,则可以自定义托管策略,然后将其保存为新策略。然后,您可以在相关的组件模板和索引模板中使用新策略。
您不应直接编辑托管策略。对托管策略的更改可能会被回滚或覆盖。
要在 Kibana 中将 logs@lifecycle
策略保存为新策略
- 打开菜单,转到堆栈管理 > 索引生命周期策略。
- 切换包括托管系统策略。
- 选择
logs@lifecycle
策略。 - 在编辑策略日志页面上,切换另存为新策略,然后为该策略提供一个新名称,例如,
logs-custom
。
logs@lifecycle
策略使用建议的滚动更新默认值:当当前写入索引达到 50GB 或 30 天时,开始写入新索引。
要查看或更改滚动更新设置,请单击热阶段的高级设置。然后禁用使用建议的默认值以显示滚动更新设置。
修改策略
编辑默认的 logs@lifecycle
策略旨在防止创建许多微小的每日索引。您可以修改策略的副本,以满足您的性能要求并管理资源使用情况。
-
激活温阶段,然后单击高级设置。
- 将将数据移动到阶段时设置为30 天。这会在滚动更新后 30 天将索引移动到温层。
- 启用设置副本,然后将副本数更改为1。
- 启用强制合并数据,然后将段数设置为1。
-
在温阶段,单击垃圾桶图标以启用删除阶段。
在删除阶段,将将数据移动到阶段时设置为90 天。这会在滚动更新后 90 天删除索引。
- 单击另存为新策略。
托管 ILM 策略的副本也标记为托管。您可以使用创建或更新生命周期策略 API 来将 _meta.managed
参数更新为 false
。
应用策略
编辑要将新的 ILM 策略应用于 logs
索引模板,请创建或编辑 logs@custom
组件模板。
*@custom
组件模板允许您自定义托管索引模板的映射和设置,而无需覆盖托管索引模板或组件模板。索引模板会自动选择这种类型的组件模板。了解更多。
- 单击组件模板选项卡,然后单击创建组件模板。
- 在物流下,将组件模板命名为
logs@custom
。 -
在索引设置下,设置上一步中创建的 ILM 策略名称
{ "index": { "lifecycle": { "name": "logs-custom" } } }
- 继续到查看,然后单击保存组件模板。
- 单击索引模板选项卡,然后选择
logs
索引模板。 - 在摘要中,查看组件模板列表。应列出
logs@custom
。