You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

ELK ILM策略配置问题:无法触发索引滚动、删除及容量超限

ELK ILM策略失效排查与修复

一、先确认索引与ILM策略的正确绑定

  • 执行GET /_ilm/explain/my-index-pattern-*,检查索引是否正确绑定目标策略,返回结果中policy字段需显示你创建的策略名称。
  • 核对索引settings,确认存在index.lifecycle.name: 你的策略名配置;若通过模板关联,需检查模板的index_patterns是否覆盖你的索引命名规则,避免模板匹配失效。

二、滚动触发条件未生效的排查

  1. 验证滚动条件配置逻辑

    • 确保策略rollover阶段的触发条件明确,示例配置如下:
      "rollover": {
        "conditions": {
          "max_size": "1gb",
          "max_age": "7d"
        }
      }
      
    • 注意:max_size统计的是主分片总大小,而非索引磁盘总占用(含副本)。若副本数为1,主分片800MB时总占用会达1.6GB,但此时未触发滚动是正常的。
  2. 检查ILM核心运行状态

    • 执行GET /_ilm/status,确认ILM进程处于RUNNING状态,无STOPPED或ERROR标记。
    • 执行GET /_cat/indices/my-index-pattern-*?v&h=index,docs.count,store.size,pri.store.size,对比pri.store.size(主分片大小)是否达到你设置的max_size阈值。
  3. 确认写别名配置有效性

    • 滚动操作依赖写别名,必须确保索引关联了标记为is_write_index: true的写别名。执行GET /_alias查看别名配置,同时确认策略rollover阶段指定了该别名。

三、删除阶段未触发的排查

  • 核对策略delete阶段配置,确保条件正确:
    "delete": {
      "min_age": "3d",
      "actions": {
        "delete": {}
      }
    }
    
  • 注意:min_age从索引创建时间(或滚动完成时间)开始计算,若为新创建的索引,需等待满3天才会触发删除;若为滚动生成的索引,需从滚动完成时刻起算。
  • 执行GET /_ilm/explain/my-index-name,查看索引lifecycle状态,确认是否处于delete阶段等待状态,或是否存在权限不足、磁盘水位过高导致的执行错误。

四、max_size阈值超出的问题

  • 再次明确:max_size仅统计主分片大小,若副本数多,总磁盘占用会远大于主分片大小,这种情况不属于阈值失效。
  • 检查集群磁盘水位配置:执行GET /_cluster/settings查看cluster.routing.allocation.disk.watermark,若磁盘水位线过高,ILM会暂停执行,导致滚动不触发、容量持续超出。
  • 确认max_size单位规范:使用小写1gb,避免1GB或1G等非标准写法(虽ES可能兼容,但严格遵循官方规范可避免潜在问题)。

五、临时手动触发ILM检查

若确认配置无误但ILM未自动执行,可手动触发指定索引的滚动检查:

POST /_ilm/step/execute?pretty
{
  "index": "your-index-name",
  "step": {
    "name": "check-rollover-ready"
  }
}

执行后通过/_ilm/explain查看状态变化。


内容的提问来源于stack exchange,提问作者Ashutosh Jaiswal

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 11:37:31