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

AlertManager中RabbitMQ动态标签值的告警去重问题咨询

问题解决方案

核心问题根源

你遇到的重复告警是因为Prometheus告警实例的唯一性由所有labels的组合决定——messages_num: {{ $value }}作为动态labels,每次消息数变化(如89→90)都会生成新的告警实例,AlertManager会将其判定为全新告警并重复发送通知。

第一步:修改Prometheus告警规则

将动态变化的messages_num从labels移到annotations中,labels只保留固定标识类字段,确保同一队列的告警始终是同一个实例:

name: Prometheus_rabbitmq_messages_piled_up_Alert
expr: rabbitmq_queue_messages_ready > 50
labels:
   group: RabbitMQ
   priority: LOW
annotations:
   summary: Prometheus Alert for Messages have piled up in RabbitMQ Cluster.
   messages_num: "{{ $value }}"  # 动态值移到annotations,不影响告警实例唯一性

第二步:调整AlertManager配置实现单次通知

如果希望告警触发后仅发送一次通知,只需将repeat_interval设置为一个极大值(比如一年),同时新增queue到group_by,确保每个队列的告警独立处理:

config:
  global: 
    resolve_timeout: 5m
  route:
    group_by: ['alertname', 'queue']  # 按告警名+队列分组,避免不同队列告警合并
    group_wait: 30s
    repeat_interval: 365d  # 一年重复一次,等效仅发送一次初始告警
    receiver: 'null'
    routes:
    - receiver: 'prometheus-msteams'
      matchers:
        - group =~ "RabbitMQ"
receivers:
    - name: 'null'
    - name: 'prometheus-msteams'
      webhook_configs:
      - send_resolved: false
        url: [URL]

关于抑制规则的说明

你的场景不需要使用抑制规则——抑制规则用于屏蔽关联的低优先级告警(比如集群宕机时,抑制该集群下所有实例的告警),无法解决因动态labels导致的重复告警问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.20 10:50:12