教程:自定义数据保留策略编辑

本教程介绍如何将自定义 ILM 策略应用于集成的 data stream。

场景: 您使用 System 集成在两个环境中收集系统指标,一个环境的命名空间为 development,另一个环境的命名空间为 production

目标: 自定义 production 命名空间中 system.network 数据流的 ILM 策略。具体而言,应用内置的 90-days-default ILM 策略,以便在 90 天后删除数据。

如果您在 8.13 之前的 Elasticsearch 版本上克隆了索引模板以自定义数据保留策略,则必须更新克隆中的索引模板,以便在 Elasticsearch 8.13 或更高版本上使用 ecs@mappings 组件模板。有关分步说明,请参阅更新 Elasticsearch 8.13 之前克隆的索引模板

步骤 1:查看数据流编辑

Kibana 中的 数据流 视图显示了与给定集成关联的数据流、索引模板和 ILM 策略。

  1. 导航到 堆栈管理 > 索引管理 > 数据流
  2. 搜索 system 以查看与 System 集成关联的所有数据流。
  3. 选择 metrics-system.network-{namespace} 数据流以查看其关联的索引模板和 ILM 策略。如您所见,数据流遵循 数据流命名方案 并以其类型 metrics- 开头。

    Data streams info

步骤 2:创建组件模板编辑

为了使您的更改在未来版本中继续应用,您必须将所有自定义索引设置放入组件模板中。组件模板必须遵循数据流命名方案,并以 @custom 结尾

<type>-<dataset>-<namespace>@custom

例如,要为命名空间为 productionsystem.network 数据流创建自定义索引设置,组件模板名称应为

metrics-system.network-production@custom
  1. 导航到 堆栈管理 > 索引管理 > 组件模板
  2. 单击 创建组件模板
  3. 使用上面的模板设置名称,在本例中为 metrics-system.network-production@custom。单击 下一步
  4. 索引设置 下,在 lifecycle.name 键下设置 ILM 策略名称

    {
      "lifecycle": {
        "name": "90-days-default"
      }
    }
  5. 继续到 审查 并确保您的请求与下图类似。如果是,请单击 创建组件模板

    Create component template

步骤 3:克隆并修改现有索引模板编辑

现在您已经创建了组件模板,您需要创建一个索引模板来将更改应用于正确的数据流。最简单的方法是复制和修改集成的现有索引模板。

复制索引模板时,请勿更改或删除任何托管属性。这可能会在升级时导致问题。

  1. 导航到 堆栈管理 > 索引管理 > 索引模板
  2. 找到您要克隆的索引模板。索引模板的名称中将包含 <type><dataset>,但不包含 <namespace>。在本例中,它是 metrics-system.network
  3. 选择 操作 > 克隆
  4. 将新索引模板的名称设置为 metrics-system.network-production
  5. 更改索引模式以包含命名空间,在本例中为 metrics-system.network-production*。这确保之前创建的组件模板仅应用于 production 命名空间。
  6. 将优先级设置为 250。这确保新索引模板优先于匹配索引模式的其他索引模板。
  7. 组件模板 下,搜索并添加在上一步中创建的组件模板。为了确保您的命名空间特定设置优先于其他自定义设置,新模板应该添加到现有 @custom 模板下方。
  8. 创建索引模板。
Create index template

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

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

GET /_data_stream/metrics-system.network-production 

我们一直在处理的数据流的名称

结果应包含以下内容

{
  "data_streams" : [
    {
      ...
      "template" : "metrics-system.network-production", 
      "ilm_policy" : "90-days-default", 
      ...
    }
  ]
}

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

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

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

POST /metrics-system.network-production/_rollover/

更新 Elasticsearch 8.13 之前克隆的索引模板编辑

如果您在 Elasticsearch 8.13 之前的版本上克隆了索引模板以自定义数据保留策略,则必须更新克隆的索引模板,以便在 Elasticsearch 8.13 或更高版本上添加 ecs@mappings 组件模板。

要更新克隆的索引模板,请执行以下操作

  1. 导航到 堆栈管理 > 索引管理 > 索引模板
  2. 找到您克隆的索引模板。索引模板的名称中将包含 <type><dataset>
  3. 选择 管理 > 编辑
  4. 选择 (2) 组件模板
  5. 搜索组件模板 字段中,搜索 ecs@mappings
  6. 单击 +(加号) 图标以添加 ecs@mappings 组件模板。
  7. ecs@mappings 组件模板移动到 @package 组件模板的正下方。
  8. 保存索引模板。

滚动数据流以应用更改。