深色模式
告警降噪策略
摘要:告警不是越多越好。本文给出四条可直接落地的降噪手段:合理 group_by、inhibit 抑制、提升阈值、合并同类规则,把“噪音”降到人能处理的范围。
适用环境
- 已运行 Alertmanager 并配好 group/inhibit
- 当前告警量偏大、误报多
操作步骤
1. 用 group_by 合并同类
yaml
route:
group_by: ['alertname', 'service']
group_wait: 30s
group_interval: 5m
# 同一 service 的 N 条相同告警合并成 1 条通知1
2
3
4
5
2
3
4
5
2. 用 inhibit 压上级冗余
yaml
inhibit_rules:
- source_match: { severity: 'critical' }
target_match_re: { severity: 'warning|info' }
equal: ['service']1
2
3
4
2
3
4
3. 抬高阈值、加 for 稳定
yaml
rules:
- alert: CpuHigh
expr: avg(cpu) by(instance) > 85 # 从 70 抬到 85
for: 10m # 持续 10 分钟才告警,过滤抖动1
2
3
4
2
3
4
4. 合并碎片规则
把“磁盘 >80%”“磁盘 >90%”两条合并为一条带 value 注解的规则,避免同一对象两次通知。
DANGER
降噪的前提是“真问题不被淹没”。合并后务必保留能定位到具体实例的信息,否则收到一条“某服务异常”却不知哪台机器。
验证
bash
# 触发同一 service 的多实例告警,应只收到 1 条分组通知
amtool alert add alertname=DiskFull service=order instance=node1
amtool alert add alertname=DiskFull service=order instance=node2
amtool alert query1
2
3
4
2
3
4
常见坑
WARNING
for太长会漏掉瞬时故障,关键链路 for 设短、非关键设长,分级处理。- 一味抬高阈值可能掩盖缓慢劣化,配合趋势类(SLO 燃尽)告警补足。