以下是对 Elasticsearch 官方教程《Customize built-in ILM policies》的详细解读,结合原文内容,帮助您更好地理解如何自定义内置的索引生命周期管理(ILM)策略。
---
Elasticsearch 教程:自定义内置 ILM 策略
1.背景与目标
Elasticsearch 提供了内置的索引生命周期管理(ILM)策略,例如`logs@lifecycle`、`metrics@lifecycle`和`synthetics@lifecycle`。这些策略主要用于管理 Elastic Agent 收集的数据流(data streams)的后端索引。然而,这些默认策略可能无法完全满足您的性能、弹性和数据保留需求。因此,Elasticsearch 允许用户根据自己的需求自定义这些策略。
本教程的目标是帮助您根据以下需求自定义 ILM 策略:
• 当写入索引的主分片大小达到 50GB 或索引满 30 天时,滚动到新索引。
• 滚动后,将索引保留在热数据层 30 天。
• 滚动 30 天后,将索引移动到温数据层,设置副本分片数为 1,并强制合并索引段以释放已删除文档占用的空间。
• 滚动 90 天后删除索引。
2.前提条件
在开始自定义 ILM 策略之前,您需要准备以下环境:
2.1 Elasticsearch 集群
• 热数据层(Hot Tier):用于存储最近的数据,提供高性能的读写操作。
• 温数据层(Warm Tier):用于存储较旧的数据,适合读取操作,但写入性能较低。
如果使用Elasticsearch 服务:
• 默认情况下,Elastic Stack 部署包含热层。
• 要添加温层,可以通过编辑部署并点击“添加温数据层的容量”来完成。
如果使用自管集群:
• 需要为节点分配`data_hot`和`data_warm`角色。
• 例如,在温层的每个节点的`elasticsearch.yml`文件中添加以下配置