Prometheus告警规则实战:如何避免半夜被报警电话吵醒?
凌晨三点,手机突然响起刺耳的警报声。你从睡梦中惊醒,发现只是某个非关键服务的CPU使用率短暂飙升。这种场景对运维工程师来说再熟悉不过了。合理配置Prometheus告警规则不仅是一门技术,更是一门艺术——它需要在系统可靠性和生活质量之间找到完美平衡点。
1. 告警分级:区分"必须立即处理"和"可以明天再看"
告警分级是减少无效通知的第一道防线。我们通常将告警分为三个级别:
| 级别 | 响应时间 | 通知方式 | 示例场景 |
|---|---|---|---|
| 严重(Critical) | 立即 | 电话/短信 | 数据库宕机、全部实例不可用 |
| 警告(Warning) | 2小时内 | 邮件/IM | 磁盘空间不足、CPU持续高负载 |
| 信息(Info) | 次日 | 仅记录 | 服务重启、临时性网络抖动 |
实现分级的PromQL示例:
# 严重告警:数据库主节点不可用
- alert: MySQLPrimaryDown
expr: mysql_up{role="master"} == 0
for: 1m
labels:
severity: critical
# 警告告警:从库复制延迟
- alert: MySQLReplicationLag
expr: mysql_slave_status_seconds_beh

1305

被折叠的 条评论
为什么被折叠?



