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

如何配置Prometheus抑制规则以基于被监控服务器本地时区实现Tomcat故障告警时段控制

解决Alertmanager按Instance匹配的非工作时间告警抑制问题

你的思路完全正确——问题出在当前的抑制规则没有关联instance标签,导致只要有任何一台服务器触发了非工作时间告警,所有Tomcat宕机告警都会被无差别抑制。要实现仅同一台服务器的非工作时间告警抑制自身的Tomcat宕机告警,只需要在inhibit_rules中添加equal字段,指定需要匹配的标签即可。

具体修改步骤

修改你的alertmanager.yml中的抑制规则,添加equal: ['instance']:

inhibit_rules:
- source_match:
    alertname: Inhibit alert during NO working hours
  target_match_re:
    alertname: (TOMCAT down)
  equal: ['instance']  # 关键:要求source和target告警的instance标签完全匹配

配置解释

  • equal: ['instance'] 这个字段告诉Alertmanager:只有当**源告警(非工作时间告警)和目标告警(Tomcat宕机告警)**的instance标签完全一致时,才会执行抑制逻辑。
  • 这样一来,当check_system_time_in_interval{instance="10.41.0.118"}=0触发非工作时间告警时,只会抑制TOMCAT down{instance="10.41.0.118"}这条告警,其他instance的Tomcat宕机告警不受影响。

额外验证要点

  1. 确保你的check_system_time_in_interval指标确实带有instance标签:可以在Prometheus UI中查询这个指标,确认每个时间序列都对应到具体的被监控服务器。
  2. 测试场景:
    • 模拟某台服务器处于非工作时段,触发非工作时间告警,然后手动停掉该服务器的Tomcat,确认这条Tomcat宕机告警不会被发送。
    • 同时在另一台处于工作时段的服务器停掉Tomcat,确认这条告警正常发送。

内容的提问来源于stack exchange,提问作者gpprimo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 10:18:12