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

如何为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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.17 01:52:43