如何为ELK集群中不同Prometheus集成的数据流配置独立ILM策略?
为Prometheus数据流配置自定义ILM策略
1. 创建自定义ILM策略
先为应用A和应用B分别创建符合需求的ILM策略,示例如下:
应用A的ILM策略
PUT _ilm/policy/ilm-policy-appa { "policy": { "phases": { "hot": { "actions": { "rollover": { "max_size": "50GB", "max_age": "7d" }, "set_priority": { "priority": 100 } } }, "warm": { "min_age": "7d", "actions": { "set_priority": { "priority": 50 }, "shrink": { "number_of_shards": 1 }, "forcemerge": { "max_num_segments": 1 } } }, "cold": { "min_age": "30d", "actions": { "set_priority": { "priority": 10 }, "freeze": {} } }, "delete": { "min_age": "90d", "actions": { "delete": {} } } } } }
应用B的ILM策略
根据应用B的需求调整阶段参数(比如缩短数据保留周期):
PUT _ilm/policy/ilm-policy-appb { "policy": { "phases": { "hot": { "actions": { "rollover": { "max_size": "30GB", "max_age": "3d" }, "set_priority": { "priority": 100 } } }, "warm": { "min_age": "3d", "actions": { "set_priority": { "priority": 50 }, "shrink": { "number_of_shards": 1 } } }, "delete": { "min_age": "30d", "actions": { "delete": {} } } } } }
2. 关联ILM策略到对应数据流的索引模板
数据流的后台索引由索引模板管控,需找到对应模板并更新ILM配置:
查找目标索引模板
执行以下命令确认对应数据流的索引模板名称:
GET _index_template
在返回结果中,找到与metrics-prometheus.collector.appa、metrics-prometheus.collector.appb匹配的模板(通常名称与数据流名一致,或包含prometheus.collector前缀)。
更新应用A的索引模板
将ILM策略ilm-policy-appa关联到应用A的索引模板:
PUT _index_template/metrics-prometheus.collector.appa { "index_patterns": ["metrics-prometheus.collector.appa-*"], "template": { "settings": { "index.lifecycle.name": "ilm-policy-appa", "index.lifecycle.rollover_alias": "metrics-prometheus.collector.appa" } }, "priority": 200, "data_stream": {} }
注意:
priority需设置得比默认模板更高,确保自定义配置优先生效;index.lifecycle.rollover_alias需与数据流的别名一致,若未配置过别名,需先创建。
更新应用B的索引模板
同理关联应用B的ILM策略:
PUT _index_template/metrics-prometheus.collector.appb { "index_patterns": ["metrics-prometheus.collector.appb-*"], "template": { "settings": { "index.lifecycle.name": "ilm-policy-appb", "index.lifecycle.rollover_alias": "metrics-prometheus.collector.appb" } }, "priority": 200, "data_stream": {} }
3. 验证配置与生效
- 检查ILM策略是否创建成功:
GET _ilm/policy/ilm-policy-appa GET _ilm/policy/ilm-policy-appb
- 查看索引模板的ILM配置:
GET _index_template/metrics-prometheus.collector.appa
- 确认数据流后台索引的策略应用情况:
GET metrics-prometheus.collector.appa/_ilm/explain
额外注意事项
- 若数据流由Fleet管理的集成生成,默认模板可能会被Fleet同步覆盖,建议在Kibana的Fleet集成设置中,找到对应Prometheus集成的高级配置,手动指定ILM策略。
- 已存在的后台索引不会自动应用新策略,需手动更新:
PUT metrics-prometheus.collector.appa-*/_settings { "index.lifecycle.name": "ilm-policy-appa" }
同理执行命令更新应用B的现有索引。
内容的提问来源于stack exchange,提问作者Fabry
相关产品推荐
相关产品推荐

