索引生命周期
编辑索引生命周期编辑
ILM 定义了索引生命周期的五个_阶段_
- 热:索引正在被积极地更新和查询。
- 温:索引不再被更新,但仍在被查询。
- 冷:索引不再被更新,并且查询频率很低。信息仍然需要可搜索,但如果这些查询速度较慢,也是可以接受的。
- 冻结:索引不再被更新,并且很少被查询。信息仍然需要可搜索,但如果这些查询速度非常慢,也是可以接受的。
- 删除:不再需要该索引,可以安全地将其删除。
索引的_生命周期策略_指定了哪些阶段适用、每个阶段执行哪些操作以及何时在阶段之间转换。
您可以在创建索引时手动应用生命周期策略。对于时间序列索引,您需要将生命周期策略与用于在该系列中创建新索引的索引模板相关联。当索引滚动时,不会自动将手动应用的策略应用于新索引。
如果您使用 Elasticsearch 的安全功能,ILM 将以上次更新策略的用户身份执行操作。ILM 仅拥有在上次策略更新时分配给该用户的角色。
阶段转换编辑
ILM 根据索引的年龄在生命周期中移动索引。要控制这些转换的时间,您可以为每个阶段设置_最小年龄_。要使索引移动到下一个阶段,当前阶段中的所有操作都必须完成,并且索引的年龄必须大于下一个阶段的最小年龄。配置的最小年龄在后续阶段之间必须增加,例如,最小年龄为 10 天的“温”阶段只能后跟最小年龄未设置或 >= 10 天的“冷”阶段。
最小年龄默认为零,这会导致 ILM 在当前阶段中的所有操作完成后立即将索引移动到下一个阶段。
如果索引具有未分配的分片并且集群运行状况为黄色,则该索引仍然可以根据其索引生命周期管理策略转换到下一个阶段。但是,由于 Elasticsearch 只能在绿色集群上执行某些清理任务,因此可能会产生意外的副作用。
为避免增加磁盘使用量和可靠性问题,请及时解决任何集群运行状况问题。
阶段执行编辑
ILM 控制阶段中操作的执行顺序,以及为每个操作执行哪些_步骤_来执行必要的索引操作。
当索引进入一个阶段时,ILM 会将阶段定义缓存在索引元数据中。这可以确保策略更新不会使索引进入永远无法退出该阶段的状态。如果可以安全地应用更改,ILM 会更新缓存的阶段定义。如果不能,则使用缓存的定义继续执行阶段。
ILM 定期运行,检查索引是否满足策略条件,并执行所需的任何步骤。为了避免竞争条件,ILM 可能需要运行多次才能执行完成操作所需的所有步骤。例如,如果 ILM 确定索引已满足滚动条件,则它开始执行完成滚动操作所需的步骤。如果它到达无法安全地前进到下一步的程度,则执行停止。下次 ILM 运行时,ILM 会从停止的地方继续执行。这意味着即使 indices.lifecycle.poll_interval
设置为 10 分钟并且索引满足滚动条件,也可能需要 20 分钟才能完成滚动。
阶段操作编辑
ILM 支持在每个阶段执行以下操作。ILM 按列出的顺序执行操作。