当前位置:   article > 正文

ES索引生命周期管理ILM_es ilm

es ilm

前言

在使用ES的过程中,你是否遇到过这样的问题:
1、单个索引数据量持续增长,导致查询速度降低,运维困难
2、希望能根据时间周期自动生成新的索引,比如天、周、月自动生成新的索引
3、希望能定期自动删除过期的历史数据,比如3年前的订单信息。
4、自动控制数据的冷热数据分层存储。

其实ES早就提供了相关的处理机制,那就是索引生命周期管理ILM(index lifecycle management )。


一、ILM介绍

通过配置索引生命周期管理 (ILM)策略实现根据性能、弹性和保留要求自动管理索引。

使用场景:

  • 当索引达到特定大小或文档数量时启动新索引

  • 每天、每周或每月创建一个新索引并存档以前的索引

  • 删除陈旧索引以执行数据保留标准

我们可以通过 Kibana Management 或 ILM API 创建和管理索引生命周期策略。
当您为 Beats 或 Logstash Elasticsearch 输出插件启用索引生命周期管理时,会自动配置默认策略。

索引生命周期策略可以触发如下操作:

可以触发的操作:

  • Rollover: 当索引达到特定大小、文档数量或年龄时,创建一个新的写入索引
  • Shrink: 减少索引中主分片的数量
  • Force merge: 触发强制合并以减少索引分片中的segments段数
  • Freeze: 冻结索引并使其只读
  • Delete: 永久删除索引,包括其所有数据和元数据。

ILM 可以更轻松地管理热-温-冷架构中的索引,这在您处理日志和指标等时间序列数据时很常见。

可以指定:

  • 您想要滚动到新索引的最大分片大小、文档数或年龄。
  • 不再更新索引并且可以减少主分片数量的点。
  • 何时强制合并以永久删除标记为删除的文档。
  • 索引可以移动到性能较低的硬件的点。
  • 可用性不那么重要并且可以减少副本数量的点。
  • 何时可以安全删除索引。

例如,如果您将 ATM 机群中的指标数据索引到 Elasticsearch 中,您可以定义一个策略,说明:
1、当索引的主分片总大小达到 50GB 时,滚动到新索引。
2、将旧索引移至热阶段,将其标记为只读,并将其缩小为单个分片。
3、7 天后,将索引移至冷阶段并将其移至较便宜的硬件。
4、达到所需的 30 天保留期后,删除索引。

简单来说,索引生命周期管理ILM通过自定义索引生命周期策略(Index lifecycle policies),可以实现自动控制索引的滚动,分片压缩,强制合并,冻结,删除等操作。

注意⚠️:

要使用 ILM,集群中的所有节点必须运行相同的版本

二、索引生命周期

ILM将索引生命周期定义为5个阶段:

  • Hot 热阶段,正在更新和查询的索引
  • Warm 暖阶段,不再更新,但仍在查询的索引
  • Cold 冷阶段,索引不再更新,并且不经常查询。信息仍需要可搜索,但是查询比较慢也没关系。
  • Frozen 冻结阶段,索引不再更新,很少被查询。信息仍需要搜索,但是查询非常慢也没关系。
  • Delete 删除阶段,索引不再需要,可以安全地删除。

索引的生命周期策略(Index lifecycle policies)指定适用于哪些阶段,在每个阶段执行哪些操作,以及在阶段之间转换的时间。

阶段转变 phase transitions

ILM 根据索引的年龄在生命周期中移动索引。为了控制这些转换的时间,可以为每个阶段设置最小年龄。要使索引进入下一阶段,当前阶段的所有操作都必须完成,并且索引的年龄必须大于下一阶段的最小年龄。规定的最低年龄必须在以后各阶段之间增加,例如,最低年龄为10天的”暖”阶段之后只能是最低年龄未设定或大于10天的”冷”阶段。

索引生命周期阶段的转变主要是根据索引的年龄

阶段执行 phase execution

ILM 控制一个阶段中的动作执行的顺序,以及执行哪些步骤以对每个动作执行必要的索引操作。

当索引进入一个阶段时,ILM 将阶段定义缓存到索引元数据中。这可以确保策略更新不会将索引置于它永远不能退出阶段的状态。如果可以安全地应用更改,ILM 将更新缓存的阶段定义。如果不能,则使用缓存的定义继续阶段执行。

ILM 定期运行,检查索引是否满足策略标准,并执行所需的任何步骤。为了避免竞态条件,ILM 可能需要运行多次以执行完成操作所需的所有步骤。例如,如果 ILM 确定某个索引已经满足滚动条件,它将开始执行完成滚动动作所需的步骤。

阶段行动 phase actions

ILM 在每个阶段支持以下操作。

Hot阶段

  • 设置优先级 Set Priority
  • 取消跟随 Unfollow
  • 滚动 Rollover
  • 只读 Read-Only
  • 分片压缩 Shrink
  • 强制合并 Force Merge
  • 可搜索快照 Searchable Snapshot

Warm阶段

  • 设置优先级 Set Priority
  • 取消跟随 Unfollow
  • 只读 Read-Only
  • 分配 Allocate
  • 迁移 Migrate
  • 分片压缩 Shrink
  • 强制合并 Force Merge

Cold阶段

  • 设置优先级 Set Priority
  • 取消跟随 Unfollow
  • 只读 Read-Only
  • 可搜索快照 Searchable Snapshot
  • 分配 Allocate
  • 迁移 Migrate
  • 强制合并 Force Merge

Frozen阶段

  • 可搜索快照 Searchable Snapshot

Delete阶段

  • 等待快照 Wait For Snapshot
  • 删除 Delete

总结

本节主要介绍了ES中索引生命周期管理ILM的相关功能和使用场景。
1、索引生命周期管理的概念以及使用场景。
2、索引生命周期的5个阶段,Hot—>Warm—>Cold—>Frozen—>Delete。
3、可以通过定义索引生命周期策略(Index lifecycle policies)来实现索引生命周期的管理。
4、索引在每个生命周期阶段,可以执行的相关动作。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/你好赵伟/article/detail/497779
推荐阅读
相关标签
  

闽ICP备14008679号