【Elasticsearch】自定义内置的索引生命周期管理(ILM)策略。

以下是对 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`文件中添加以下配置

Elasticsearch中,索引生命周期管理(Index Lifecycle Management,简称ILM)可以帮助你自动管理索引生命周期,从创建到删除。以下是设置索引生命周期管理的基本步骤: 1. **定义生命周期策略**: 首先,你需要定义一个生命周期策略,包含索引在不同阶段的操作,如热阶段(hot)、温阶段(warm)、冷阶段(cold)和删除阶段(delete)。 2. **创建生命周期策略**: 使用Elasticsearch的API创建生命周期策略。以下是一个示例策略,定义了在热阶段、温阶段、冷阶段和删除阶段的具体操作: ```json PUT _ilm/policy/my_policy { "policy": { "phases": { "hot": { "actions": { "rollover": { "max_size": "50gb", "max_age": "30d" } } }, "warm": { "min_age": "7d", "actions": { "shrink": { "number_of_shards": 1 }, "forcemerge": { "max_num_segments": 1 } } }, "cold": { "min_age": "30d", "actions": { "freeze": {} } }, "delete": { "min_age": "90d", "actions": { "delete": {} } } } } } ``` 3. **应用生命周期策略索引模板**: 接下来,将定义好的生命周期策略应用到索引模板中,这样新创建的索引就会自动应用该策略。 ```json PUT /_template/my_template { "index_patterns": ["my-index-*"], "settings": { "index.lifecycle.name": "my_policy", "index.lifecycle.rollover_alias": "my-index-alias" } } ``` 4. **创建初始索引**: 最后,创建初始索引并为其指定别名,以便ILM可以对其进行管理。 ```json PUT /my-index-000001 { "aliases": { "my-index-alias": { "is_write_index": true } } } ``` 通过以上步骤,你就可以在Elasticsearch中设置索引生命周期管理了。这样可以确保你的索引在不同的生命周期阶段自动执行相应的操作,从而优化存储空间和提高查询性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值