昨天下班前看监控后台,发现又有三台机器连着几天没上报数据了。我第一反应不是"机器挂了",而是"监控通道又堵了"。查了一下,果然,agent 日志里一堆超时重试,机房那边说晚上要割接,交换机要重启,就这么个事。
干这行干久了你会发现一个挺讽刺的规律:报警越响的事故越小,真出事的时候,监控往往是安静的。
前年夏天有一回,半夜两点半,手机连着震了七八条。爬起来一看,是某台数据库服务器 CPU 100% 告警。我一边套衣服一边想,完了,怕是又要通宵。结果登录上去一看,是个开发的定时任务写了个死循环,在把一张几千万行的表全表扫了一遍又一遍。kill 掉,三分钟解决。那晚最累的事是穿衣服脱衣服。
但真正让我记住"安静的监控"这事的,是另一回。
那年冬天,客户凌晨四点打电话来,说网站打不开了。我打开监控面板,一片绿。所有机器都在线,所有指标都正常。我当时就懵了,心想监控是不是坏了。结果还真是监控坏了——不是面板坏了,是监控采集的服务本身挂了,挂了之后它给所有机器打了"正常"的标签。那晚我对着一个假的全绿面板查了俩小时,最后还是靠客户的一句话点醒的:"你们那个监控的图是不是不动了?"
后来我学乖了。看监控先看监控自己,agent 心跳、采集延迟、告警通道,这些先确认活着,再看业务指标。就跟看心电图一样,得先确认机器是通的,波形才有意义。
还有一回更玄。机房一台交换机风扇转速告警,值班的同事跑过去一看,确实有个风扇不转了。但机器温度正常,负载也正常,大家就记了个工单,说周一换。结果周日晚上机房空调出问题,温度一上来,那台交换机直接过热重启,把一整排业务全带崩了。风扇告警响了没人当回事,温度告警压根没配——因为当初觉得空调不会出问题。
所以我现在对新来的小朋友说的就一句话:告警可以吵,但不能哑。吵是狼来了,哑是狼真的来了。你可以把阈值调高,可以把半夜的告警静音,但监控自己挂了这件事,必须第一个响。
评论