告警等级定义:P0(致命)、P1(严重)、P2(一般)、P3(提示)
告警分级这件事,说白了就是给故障贴个标签——这个故障到底有多疼?
我刚带团队那会儿,大家收到告警就慌,不管三七二十一全拉群里。结果呢?真正要命的P0被刷屏淹没了,反而耽误了恢复时间。后来我痛定思痛,把分级标准刻进了监控系统的基因里。
下面这张图,是我这些年总结的告警分级核心逻辑。你先看个全貌,后面我们逐层拆解。
P0:致命——火烧眉毛了
P0是什么?就是业务挂了,用户用不了了,老板的电话已经打到你手机上了。
我个人习惯这样定义P0:核心业务完全中断,直接影响收入或用户数据安全。比如电商网站无法下单、支付网关全部超时、数据库被删库跑路——这些都是典型的P0。
P0 判定标准(必须同时满足):
- 核心业务功能完全不可用
- 影响范围覆盖全部或大部分用户
- 直接导致收入损失或数据安全风险
- 无临时规避方案
我记得有一次,凌晨三点,核心支付集群的某个关键节点内存泄漏,导致所有交易请求全部超时。那就是典型的P0。我们当时5分钟内拉起全员,15分钟定位问题,30分钟切流恢复。嗯,那晚谁也别想睡。
避坑指南:
我曾经见过一个团队把「某个用户反馈登录失败」也打成了P0。这就过度了。P0必须是全局性的、不可绕过的故障。单个用户的问题,哪怕再严重,只要不影响整体,最多P1。
P1:严重——核心功能受损,但还能喘口气
P1比P0低一级,但同样不能掉以轻心。说白了,就是核心功能出了问题,但业务还没完全断。
举个例子:用户能登录,但下单接口响应时间从200ms飙到了5秒。或者数据库主库正常,但某个从库挂了,导致部分报表查不出来。这些都属于P1。
| 维度 | P0 致命 | P1 严重 |
|---|---|---|
| 业务影响 | 完全中断 | 部分受损 |
| 影响范围 | 全部用户 | 部分用户或功能 |
| 响应时间 | ≤ 5分钟 | ≤ 15分钟 |
| 介入团队 | 全员 + 管理层 | 值班小组 + 相关owner |
| 恢复目标 | 立即恢复 | 30分钟内恢复或降级 |
你想想看,P1虽然不用全员拉群,但值班小组必须在15分钟内响应。我建议P1的告警一定要配置电话通知,别只发个钉钉消息——半夜谁看钉钉啊?
P2:一般——不疼不痒,但不能不管
P2是什么?非核心功能异常,或者核心功能的非关键指标告警。
比如:后台报表导出失败、某个非核心页面的图片加载不出来、磁盘使用率超过80%但还没满。这些都属于P2。
我个人习惯把P2定义为「可以等到第二天上班再处理」的告警。但注意,不是不管,而是优先级低一些。
我的经验:
P2告警最容易被人忽视,但恰恰是P2积累多了,会变成P1甚至P0。比如磁盘使用率从80%涨到95%只需要几天,如果你一直不管,某天凌晨它就满了——那时候就是P0了。
所以我建议P2也要有自动化的处理流程,比如磁盘超过80%自动触发扩容脚本,而不是等人来处理。
P3:提示——看看就好,别当真
P3就是信息类通知,说白了就是告诉你「系统一切正常,只是有些变化」。比如:定时巡检报告、版本发布成功通知、某个指标出现轻微波动但仍在正常范围内。
P3不需要人工响应,也不需要值班人员处理。它存在的意义是让运维团队了解系统的日常状态,以及为后续的容量规划、性能优化提供数据支撑。
嗯,这里要注意:P3告警如果太多,反而会淹没真正重要的信息。我见过一个团队每天收到上万条P3告警,结果没人看,连P0都被淹没了。所以P3一定要控制数量,能合并的合并,能静默的静默。
分级背后的核心逻辑
讲完了四个等级的定义,我想跟你聊聊分级背后的核心逻辑——说白了就三个字:影响面。
- 影响范围:是全部用户还是部分用户?是核心功能还是边缘功能?
- 影响程度:是完全不可用,还是性能下降?是有临时方案,还是必须修复?
- 影响时间:是持续性的,还是偶发性的?是已经发生了,还是即将发生?
这三个维度组合起来,就能判断一个告警该打什么等级。我建议你在自己的团队里也建立一套类似的判定矩阵,而不是凭感觉打等级。
判定矩阵示例:
| 影响范围 \ 影响程度 | 完全不可用 | 性能下降 | 轻微异常 |
|---|---|---|---|
| 全部用户 | P0 | P1 | P2 |
| 部分用户 | P1 | P2 | P2 |
| 单个用户 | P2 | P3 | P3 |
有了这个矩阵,团队里每个人都能快速判断告警等级,不会出现「我觉得这是P0,他觉得这是P2」的扯皮情况。
最后说一句:分级标准不是死的,每个团队可以根据自己的业务特点微调。但核心原则不变——P0要快,P1要稳,P2要管,P3要看。你把这个原则记住了,分级就不会跑偏。