ES_ILM_ROLLOVER_FAIL elasticsearch config_error ai_generated partial

Elasticsearch异常:索引生命周期策略 [my_policy] 未能滚动索引 [logs-2025.03.15] - 条件 [max_age: 30d] 未满足,实际年龄 [25d]

ElasticsearchException: index lifecycle policy [my_policy] failed to rollover index [logs-2025.03.15] - condition [max_age: 30d] not met, actual age [25d]

ID: elasticsearch/index-lifecycle-policy-rollover-failure

其他格式: JSON · Markdown 中文 · English
85%修复率
86%置信度
1证据数
2024-07-05首次发现

版本兼容性

版本状态引入弃用备注
7.17.0 active
8.11.0 active
8.12.0 active

根因分析

ILM 滚动条件(max_age、max_docs 或 max_size)未满足,因为索引是使用别名手动创建的,导致滚动被跳过或配置错误。

English

An ILM rollover condition (max_age, max_docs, or max_size) is not met because the index was manually created with an alias, causing the rollover to be skipped or misconfigured.

generic

官方文档

https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html

解决方案

  1. Ensure the index is part of an alias with `is_write_index: true` and that the rollover alias matches the policy's `rollover_alias` setting. Use `PUT _ilm/policy/my_policy` to correct the alias name.
  2. Force rollover manually by calling `POST /logs-2025.03.15/_rollover` with the required conditions, then check ILM status with `GET logs-2025.03.15/_ilm/explain`.
  3. Delete the index and recreate it with proper alias configuration: `PUT /logs-2025.03.15-000001 { "aliases": { "logs_write": { "is_write_index": true } } }`.

无效尝试

常见但无效的做法:

  1. 95% 失败

    Index creation date is immutable; modifying it via update doesn't affect ILM's internal tracking.

  2. 80% 失败

    Loses automated lifecycle management, requiring manual intervention for each rollover and deletion.