1. Alertmanager 的 route 配置如何实现告警按标签路由、分组与抑制?
请说明 Alertmanager 的 route 配置如何实现告警按标签路由、分组与抑制?
- route 的匹配与嵌套
- 分组(grouping)机制
- 抑制(inhibition)机制
Alertmanager 的 route 配置按标签路由告警到不同 receiver。route 是树状结构,根 route 定义默认 receiver 与聚合配置,子 route 用 match/match_re 按标签匹配(如 severity: critical、team: payment)将告警路由到对应 receiver,告警从上到下匹配,取第一个匹配的 route。分组(grouping):用 group_by 按标签把告警聚合为一条通知(如按 alertname、cluster 分组),group_wait 等待攒批、group_interval 组内重发间隔、repeat_interval 重复通知间隔,减少告警风暴。抑制(inhibition):当一条告警被抑制时,抑制其他告警(如某个节点宕机时抑制该节点上所有 Pod 的告警,用 inhibit_rules 配置 source 与 target 标签匹配),避免重复告警干扰。三者的配合:route 决定"告警去哪、如何分组",inhibit 决定"哪些告警被压住",共同降低告警噪音、聚焦根因。
route 是"入口分流",group 是"聚合降噪",inhibit 是"抑制冗余"。三者结合实现"告警按需送达、风暴收敛、根因聚焦"。配置核心是标签匹配与分组参数。