教程:自定义内置 ILM 策略

编辑

教程:自定义内置 ILM 策略编辑

Elasticsearch 包含以下内置 ILM 策略

  • logs@lifecycle
  • metrics@lifecycle
  • synthetics@lifecycle

Elastic Agent 使用这些策略来管理其数据流的备份索引。本教程将向您展示如何使用 Kibana 的 索引生命周期策略 根据您的应用程序的性能、弹性和保留要求来自定义这些策略。

场景编辑

您希望将日志文件发送到 Elasticsearch 集群,以便您可以可视化和分析数据。此数据具有以下保留要求

  • 当写入索引达到 50GB 或为 30 天旧时,滚动到新索引。
  • 滚动后,将索引保留在热数据层中 30 天。
  • 滚动后 30 天

    • 将索引移动到温数据层。
    • 将副本分片设置为 1。
    • 强制合并 多个索引段以释放已删除文档使用的空间。
  • 在滚动后 90 天删除索引。

先决条件编辑

要完成本教程,您需要

  • 具有热数据层和温数据层的 Elasticsearch 集群。

    • Elasticsearch 服务:Elasticsearch 服务上的 Elastic Stack 部署默认包含热层。要添加温层,请编辑您的部署并单击 添加容量 以获取温数据层。

      Add a warm data tier to your deployment
    • 自管理集群:如 数据层 中所述,将 data_hotdata_warm 角色分配给节点。

      例如,在温层中每个节点的 elasticsearch.yml 文件中包含 data_warm 节点角色

      node.roles: [ data_warm ]
  • 安装并配置为将日志发送到 Elasticsearch 集群的主机,该主机上安装了 Elastic Agent。

复制策略编辑

Elastic Agent 使用索引模式为 logs-*-* 的数据流来存储日志监控数据。管理的 logs@lifecycle ILM 策略会自动管理这些数据流的备份索引。

如果您不想使用策略默认值,则可以自定义管理策略,然后将其保存为新策略。然后,您可以在相关的组件模板和索引模板中使用新策略。

您永远不应该直接编辑管理策略。对管理策略的更改可能会回滚或被覆盖。

要在 Kibana 中将 logs@lifecycle 策略保存为新策略,请执行以下操作

  1. 打开菜单并转到 堆栈管理 > 索引生命周期策略
  2. 切换 包含管理的系统策略
  3. 选择 logs@lifecycle 策略。
  4. 编辑策略日志 页面上,切换 另存为新策略,然后为策略提供一个新名称,例如 logs-custom

logs@lifecycle 策略使用推荐的滚动默认值:当当前写入索引达到 50GB 或变为 30 天旧时,开始写入新索引。

要查看或更改滚动设置,请单击热阶段的 高级设置。然后禁用 使用推荐的默认值 以显示滚动设置。

View rollover defaults

修改策略编辑

默认的 logs@lifecycle 策略旨在防止创建许多小的每日索引。您可以修改策略的副本以满足您的性能要求并管理资源使用情况。

  1. 激活温阶段并单击 高级设置

    1. 将数据移入阶段的时间 设置为 30 天旧。这将在滚动后 30 天将索引移到温层。
    2. 启用 设置副本 并将 副本数量 更改为 1
    3. 启用 强制合并数据 并将 段数 设置为 1
    Add a warm phase with custom settings
  2. 在温阶段,单击垃圾桶图标以启用删除阶段。

    Enable the delete phase

    在删除阶段,将 将数据移入阶段的时间 设置为 90 天旧。这将在滚动后 90 天删除索引。

    Add a delete phase
  3. 单击 另存为新策略

管理的 ILM 策略的副本也标记为 管理。您可以使用 创建或更新生命周期策略 API_meta.managed 参数更新为 false

应用策略编辑

要将新的 ILM 策略应用于 logs 索引模板,请创建或编辑 logs@custom 组件模板。

*@custom 组件模板允许您自定义管理的索引模板的映射和设置,而无需覆盖管理的索引模板或组件模板。这种类型的组件模板会自动被索引模板拾取。 了解更多

  1. 单击 组件模板 选项卡,然后单击 创建组件模板
  2. 物流 下,将组件模板命名为 logs@custom
  3. 索引设置 下,设置在上一步骤中创建的 ILM 策略名称

    {
        "index": {
            "lifecycle": {
                "name": "logs-custom"
            }
        }
    }
  4. 继续 查看,然后单击 保存组件模板
  5. 单击 索引模板 选项卡,然后选择 logs 索引模板。
  6. 在摘要中,查看 组件模板 列表。应该列出 logs@custom