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
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.
官方文档
https://www.elastic.co/guide/en/elasticsearch/reference/current/index-lifecycle-management.html解决方案
-
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.
-
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`.
-
Delete the index and recreate it with proper alias configuration: `PUT /logs-2025.03.15-000001 { "aliases": { "logs_write": { "is_write_index": true } } }`.
无效尝试
常见但无效的做法:
-
95% 失败
Index creation date is immutable; modifying it via update doesn't affect ILM's internal tracking.
-
80% 失败
Loses automated lifecycle management, requiring manual intervention for each rollover and deletion.