智能运维 | 我们不生产“报警”,我们只是“报警”的搬运工
百度云智能运维产品(Noah)的监控系统(Argus)是保障百度内外服务高可用的基石。它具有诸如机器监控、实例监控、HTTP监控、域名监控、日志监控、自定义监控等多种监控手段,具备“海陆空”全方位的监控能力,让服务异常无处遁形。 如果你看过本公众号之前的系列文章,相信你会觉得我所言非虚。 然而如此强大的监控系统所产生的“辣么多”报警,如果不能及时精准地送达给运维人员,那么一切都还只是个传说。今天我们就聊聊报警如何送达的问题。 注意,我们今天不谈报警,我们只谈报警的搬运工—— 百度云Noah通告平台。 一个都不能少 报警不同于普通的通知,它反映的是线上服务即将或正在遭受损失。如果我们把核心报警搞丢了,造成线上故障得不到及时解决,这个责任是巨大的。由于报警系统天然就这样要求高可靠性,因此我们奉行“at-least-once”的投递原则,确保报警至少有一次能成功抵达用户,做到“该报的报警一个都不能少”。 为了实现这个目标我们经历过不少坑。 机房网络连通性问题 我们发送报警要依赖四个底层发送网关(电话网关、短信网关、IM网关、邮件网关)来向用户发送消息,如下图所示。由于公司网络环境的原因,这些网关部署在某些特定机房,和上游的监控系统部署在不同机房中,这样机房间的网络拥塞或抖动将直接影响报警发送。 解决这种问题 ,可以将底层发送网关主备部署到不同的机房,由上游系统重试解决