ILM新创建索引未遵守预设存储容量政策限制问题咨询
这是个很典型的ILM配置疏漏问题,我来帮你一步步解决:
问题根源分析
你手动创建logstash-001时手动绑定了ILM策略,但通过rollover别名自动生成的新索引(比如logstash-002)并不会自动继承策略——除非你在索引模板里预先配置了ILM策略关联,或者在rollover操作时明确指定了策略。你的情况显然是没配置对应的索引模板,导致新生成的索引没和ILM策略挂钩。
解决步骤
1. 创建/更新索引模板,让所有logstash-*索引自动关联ILM策略
你需要创建一个匹配logstash-*前缀的索引模板,把ILM策略和滚动别名的配置固化进去,这样后续自动生成的索引都会自动应用策略。执行以下命令:
PUT _index_template/logstash_ilm_template { "index_patterns": ["logstash-*"], "template": { "settings": { "index.lifecycle.name": "你的ILM策略名称", // 替换成你实际的策略名 "index.lifecycle.rollover_alias": "logstash-rollover" } }, "priority": 100, // 设高优先级,避免被其他低优先级模板覆盖 "version": 1 }
2. 给已存在的logstash-002手动绑定ILM策略
因为logstash-002已经创建完成,需要手动更新它的设置来关联策略:
PUT logstash-002/_settings { "index.lifecycle.name": "你的ILM策略名称" }
执行后可以用GET logstash-002/_settings验证,查看返回结果里是否包含index.lifecycle.name的配置。
3. 验证后续rollover的索引是否正常应用策略
可以手动触发一次rollover测试(临时把条件设小,测试完改回你的50GB):
POST logstash-rollover/_rollover { "conditions": { "max_size": "1gb" } }
生成logstash-003后,用GET logstash-003/_settings检查,确认它已经自动关联了ILM策略。
额外注意事项
- 确保你的ILM策略本身的rollover条件(比如
max_size:50GB)配置正确,之前logstash-001能正常触发rollover说明策略逻辑没问题; - 索引模板的
index_patterns一定要准确匹配你的索引前缀,别出现拼写错误。
内容的提问来源于stack exchange,提问作者Ronaldo Lanhellas
相关产品推荐
相关产品推荐

