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

ILM Policy未按配置触发rollover,请求排查配置异常原因

问题描述

我创建了如下用于测试的ILM Policy:

{
  "test-1-m": {
    "version": 6,
    "modified_date": "2022-12-07T11:27:55.648Z",
    "policy": {
      "phases": {
        "hot": {
          "min_age": "0ms",
          "actions": {
            "rollover": {
              "max_primary_shard_size": "10mb",
              "max_age": "1m"
            }
          }
        },
        "delete": {
          "min_age": "1m",
          "actions": {
            "delete": {
              "delete_searchable_snapshot": true
            }
          }
        }
      }
    },
    "in_use_by": {
      "indices": [
        "monitoring-logstash-alias-000008",
        "monitoring-logstash-alias-000009",
        "monitoring-logstash-alias-000010"
      ],
      "data_streams": [],
      "composable_templates": [
        "monitoring-logstash-alias"
      ]
    }
  }
}

该Policy配置的rollover触发条件为主分片最大10MB或索引存活1分钟,但实际shard在10分钟后才触发rollover,且10MB阈值完全未生效,请问我遗漏了什么配置?

排查方向与遗漏配置说明
  • 调整ILM轮询间隔:ILM默认的轮询间隔是10分钟(由indices.lifecycle.poll_interval参数控制),这就是你看到10分钟后才触发rollover的直接原因。如果要测试小阈值的触发逻辑,需要修改该参数为更小的值,比如10秒:
    PUT /_cluster/settings
    {
      "persistent": {
        "indices.lifecycle.poll_interval": "10s"
      }
    }
    
  • 确认别名的写入索引配置:Rollover操作要求绑定的别名必须明确指定一个写入索引(即别名的is_write_index属性为true),同时索引名称要符合rollover的命名规则(需以-000001这类数字后缀结尾)。需检查monitoring-logstash-alias别名是否正确关联了可写入的目标索引,且命名符合要求。
  • 验证分片大小的计算逻辑:max_primary_shard_size是基于主分片的Lucene逻辑存储大小(不是磁盘上的文件占用大小),可通过GET /<目标索引>/_stats查看primaries.store.size字段确认实际大小是否达到10MB。另外,该阈值是单个主分片的大小,而非所有主分片的总和。
  • 检查ILM与索引的关联状态:虽然Policy显示被索引使用,但可通过GET /<目标索引>/_ilm/explain命令确认索引的ILM执行状态,查看是否存在Policy未正确应用、执行延迟等错误信息。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 04:55:13