2023-12-12 ES ILM

本贴最后更新于 485 天前,其中的信息可能已经时移世异

Index Lifecycle Management

索引生命周期管理 (ILM) 是在 Elasticsearch 6.6(公测版)首次引入并在 6.7 版正式推出的一项功能。ILM 是 Elasticsearch 的一部分,主要用来管理索引

hot warm cold nodes

标记节点属性

首先标记哪些节点是热节点、温节点和(可选)冷节点。此操作可以通过启动参数或在 elasticsearch.yml 配置文件中完成

bin/elasticsearch -Enode.attr.data=hot bin/elasticsearch -Enode.attr.data=warm bin/elasticsearch -Enode.attr.data=cold

配置 ILM 策略

ILM 策略分为四个主要阶段 - 热、温、冷和删除。

除了在热温冷节点之间移动数据外,还可以配置许多附加操作

操作步骤

  1. 定义 ILM

    PUT /_ilm/policy/my_policy { "policy":{ "phases":{ "hot":{ "actions":{ "rollover":{ "max_size":"50gb", "max_age":"30d" } } } } } }

  2. 创建模板,使用 ILM

    PUT _template/my_template { "index_patterns": ["test-*"], "settings": { "index.lifecycle.name": "my_policy", "index.lifecycle.rollover_alias": "test-alias" # 注意:当在模板中使用滚动更新操作(而不是直接在索引上)指定 ILM 策略时,必须进行此关联。 } }
  3. 索引数据

    PUT test-000001 { "aliases": { "test-alias":{ "is_write_index": true } } }

日志滚动示例

PUT _ilm/policy/hot-warm-cold-delete-60days { "policy": { "phases": { "hot": { "actions": { "rollover": { "max_size":"50gb", "max_age":"30d" }, "set_priority": { "priority":50 } } }, "warm": { "min_age":"7d", "actions": { "forcemerge": { "max_num_segments":1 }, "shrink": { "number_of_shards":1 }, "allocate": { "require": { "data": "warm" } }, "set_priority": { "priority":25 } } }, "cold": { "min_age":"30d", "actions": { "set_priority": { "priority":0 }, "freeze": {}, "allocate": { "require": { "data": "cold" } } } }, "delete": { "min_age":"60d", "actions": { "delete": {} } } } } }

这个 ILM 策略首先会将索引优先级设置为一个较高的值,以便热索引在其他索引之前恢复。30 天后或达到 50GB 时(符合任何一个即可),该索引将滚动更新,系统将创建一个新索引。该新索引将重新启动策略,而当前的索引(刚刚滚动更新的索引)将在滚动更新后等待 7 天再进入温阶段。

索引进入温阶段后,ILM 会将索引收缩到 1 个分片,将索引强制合并为 1 个段,并将索引优先级设置为比热阶段低(但比冷阶段高)的值,通过分配操作将索引移动到温节点。完成该操作后,索引将等待 30 天(从滚动更新时算起)后进入冷阶段。

索引进入冷阶段后,ILM 将再次降低索引优先级,以确保热索引和温索引得到先行恢复。然后,ILM 将冻结索引并将其移动到冷节点。完成该操作后,索引将等待 60 天(从滚动更新时算起)后进入删除阶段。

删除

在删除阶段,始终需要有一个 min_age​ 条件,以允许索引在给定时段内待在热、温或冷阶段。

  • Elasticsearch

    Elasticsearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful 接口。Elasticsearch 是用 Java 开发的,并作为 Apache 许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便。

    117 引用 • 99 回帖 • 208 关注

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...