凌晨三点服务器报警,值班运维被电话叫醒,登录VPN花了五分钟,查日志又花了十分钟,定位到问题后不敢直接操作,拉了个群等领导确认,等了二十分钟。一个本该五分钟解决的进程重启,硬生生拖了四十分钟。这个场景在不少企业里真实上演过。
环节一:故障检测有没有延迟
很多团队的监控还停留在CPU和内存层面,业务层面的故障靠用户投诉才发现。监控告警的粒度太粗,等CPU飙到90%的时候业务其实已经卡了很久。正确的做法是把监控分两层:基础设施层监控CPU、内存、磁盘IO、网络延迟;业务层监控接口响应时间、错误率、队列积压数量。两层告警阈值要区分警告和严重,避免告警风暴导致值班人员麻木。
环节二:告警分发到对的人了吗
告警发到一个邮件组,五个人都收到了,结果谁都没处理——都觉得别人会管。这是典型的责任分散效应。告警必须对应到具体的on-call人,并且配置升级机制:一线五分钟未响应,自动升级到二线;二线十分钟未响应,升级到主管。告警内容要包含三要素:什么出了问题、影响范围多大、建议执行什么操作。让值班人员拿到告警就能动手,不用再花时间去判断。
环节三:有没有标准化的处置流程
每次故障都在群里讨论处置方案,十个人给出十个建议,最后还是最资深的那个人拍板。这种模式效率极低。针对常见故障类型,应该提前编写处置SOP:数据库锁死怎么办、应用进程OOM怎么办、磁盘写满怎么办、SSL证书过期怎么办。每个SOP写清楚判断依据、操作步骤、回滚方法,让任何一名运维人员拿到就能执行。
环节四:恢复后有没有做复盘
故障恢复不等于事件关闭。每次故障后必须在48小时内完成复盘,产出三样东西:故障时间线(精确到分钟)、根因分析、改进项清单。改进项要落实到人和截止日期,下次复盘时检查上次的改进项是否完成。没有复盘的故障还会再来一次,只是换个时间换个方式而已。
把这四个环节理顺,故障恢复时间至少能缩短一半。运维团队的价值不是体现在出了故障能多快修好,而是体现在能不能让故障少发生、发生后能有序应对。如果你现在团队里这四个环节哪个是空白或者跑不通的,那个环节就是你下一次故障的瓶颈所在。