深色模式
告警分级 Sev1-4
摘要:没有级别的告警等于没有优先级。用 Sev1(致命,立即电话)、Sev2(严重,15 分钟内)、Sev3(一般,工作时间)、Sev4(提示,周会看)四级,把响应动作固化下来。
适用环境
- 已运行 Alertmanager,告警规则可打
severity标签 - 明确团队的值班与升级路径
操作步骤
1. 定义级别语义
| 级别 | 含义 | 响应 | 通知方式 |
|---|---|---|---|
| Sev1 | 核心不可用/数据风险 | 立即,<5min | 电话+IM |
| Sev2 | 重要功能受损 | <15min | IM+OnCall |
| Sev3 | 单点异常 | 工作时间 | IM |
| Sev4 | 趋势/提示 | 周会回顾 | 邮件 |
2. 在 Prometheus 规则里打标
yaml
groups:
- name: core
rules:
- alert: Api5xxHigh
expr: rate(http_5xx[5m]) > 0.05
labels:
severity: critical # 对应 Sev1/2
annotations:
summary: "5xx 比例超 5%"1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
3. 在 Alertmanager 按级别路由
yaml
route:
routes:
- matchers: ['severity="critical"']
receiver: 'page' # Sev1/2 走电话
repeat_interval: 10m
- matchers: ['severity="warning"']
receiver: 'slack' # Sev3/4 走 IM
repeat_interval: 4h1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
DANGER
级别定义后必须配套“升级(escalation)”:Sev1 若 10 分钟无人认领要自动升级给二线,否则分级只是摆设。
验证
bash
amtool alert add alertname=SevTest severity=critical
amtool config routes test alertname=SevTest severity=critical
# 应路由到 page 接收者1
2
3
2
3
常见坑
WARNING
- 级别泛滥:把本该 Sev3 的也标 critical,电话被打爆后大家开始忽略——级别要定期回收。
severity和“业务影响”不是一回事,一个次要服务的 critical 未必是全局 Sev1。