百度监控系统Argus保障了百度内外产品服务的高可用,《我在百度对抗报警风暴》系列文章将会介绍百度高级研发工程师运小博在实践中如何运用报警合并、机房故障分析、报警关注度分析、值班与逐级通告平台和报警回调技术等对抗报警风暴。本文将主要介绍报警风暴形成的原因和报警合并策略中简单的报警合并策略。
Argus名字含义:希腊语“Argus”的意思是“明亮的”、“明察秋毫的”,在古代希腊神话里面的巨人Argus长有一百只眼睛,因此可以观察到所有方向的事物与动静;后世以此来比喻机警、机灵的护卫,我们希望百度监控系统能够如巨人Argus全面洞察异常并报警,故命名为Argus。
报警风暴
百度监控系统(Argus)是保障百度内外产品服务高可用的利器。小到机器的磁盘是否打满、虚拟机实例上的进程或端口是否存活,大到产品的流量是否稳定、机房网络是否联通,尽在Argus的掌握之中。
两年前,百度每一个运维工程师都被报警风暴所困扰。白天,百度的运维工程师们平均11分钟就会接收一次短信报警,在夜间则是平均14分钟一次,而实际数据统计发现,有效短信报警占比不到15%。因此短信报警的冗余度是非常高的,已经造成了报警风暴。
经过分析,报警风暴的形成主要有这么几个原因:
报警重复度>58%
分析其原因,首先报警策略执行周期计算,因此会持续产生重复报警,部分策略甚至会导致持续报警达1小时以上。更严重的情形是,一次故障可能引发多个相关策略报警。比如一台机器死机,首先机器层面报警,然后实例层面报警,接着服务上游也可能会报警。