Prometheus按source_labels区分告警失败,请求排查配置问题
排查Prometheus告警规则无法匹配的问题
核心问题:标签拼写错误
在prometheus.yml的ec2-instances-public任务中,最后一条relabel规则的target_label存在拼写错误:
原错误配置:
- target_label: spource_labels replacement: public action: replace
这里把source_labels误写为spource_labels,导致Public实例的指标无法被打上source_labels="public"的标签,告警规则里的up{source_labels="public"}自然匹配不到任何数据。
修正步骤
- 修正
ec2-instances-public任务的relabel规则,将target_label改为正确的source_labels:
- target_label: source_labels replacement: public action: replace
重启Prometheus服务,让新配置生效。
验证标签是否正确添加
在Prometheus UI的查询页面执行up查询,检查返回的指标中,Public实例是否带有source_labels="public"标签,Private实例是否带有source_labels="private"标签,确认标签已正确关联到对应实例的指标上。
额外优化建议
告警规则的description中提到"已运行5分钟",但for字段设置的是15秒,文案与实际配置不符,建议修正为:
description: "Instance {{ $labels.instance }} of job {{ $labels.job }} has been down for 15 seconds."
内容的提问来源于stack exchange,提问作者Luke
相关产品推荐
相关产品推荐

