一个优雅的报警处理系统范例

做运维的同学都知道,运维一定离不开Zabbix、Nagios之类的监控软件。目前,类似的软件在监控和数据采集方面已经做到了极致,但是在报警处理上并没有很完美的解决方案,比如,经常出现高质量报警湮没在海量报警之中等情况。

本文不探讨监控系统的配置优化,只探讨监控系统按照它的逻辑发出报警之后我们该做点什么。

报警遇到的痛点

  1. 报警风暴,高质量报警湮没在海量报警之中;
  2. 出现报警后没人认领,需要在在工作的IM群中沟通;
  3. 运维人员进行运维操作必定会引起某些报警,会给不知道真相的同学带来困惑;
  4. 海量报警恢复之后,运维人员很难在第一时间知道还剩下哪些报警没有恢复;
  5. MySQL出现了慢查询报警,DBA还需要登录数据库去查看;
  6. 有些报警优先级不高,明明可以白天处理的,却在晚上第一时间发出来;
  7. 同一个报警会反复报出来。

背景现状

云极星创作为综合性云服务提供者,既要做公有云的监控,也要负责私有云的监控。我们的研发团队已经建立了比较完善的OpenStack监控体系,并且使用了多种监控工具;因为云极星创的运维团队和客户分布在全国各地,所以该监控体系的物理位置也是分散。

在公有云场景下,报警需要按照物理位置或者应用类型发给不同的运维同学、运营同学和管理层。在私有云场景下,报警也需要推送给相应的客户。当前,我们主要采用微信为主,短信为辅的报警方式。

使用微信的优缺点

使用微信的优点

   基本免费;

   图文并茂、字节数限制较为宽裕;

   微信客户端和服务器端交互方便。

使用微信的缺点

   可用度依赖腾讯的服务器:

为此特意增加了对微信服务器接口的监控,发现接口有问题之后会发短信报警;

   客户端需要保持联网,没有送达报告:

因此系统提供汇总表功能(详见后文)。

优秀报警处理系统的三要素

  1. 在合适的时间发给合适的人;
  2. 尽可能的提供更多的信息,使得接警人员在不开电脑情况下第一时间能大概知道哪里出了问题;
  3. 减少围绕报警的人员沟通成本。

实施方案

架构概览

报警分类

普通报警:根据排班表发送给值班的运维同学,低级别的报警会延时发给对应的应用开发。

ELK日志报警:用户在微信端可以查看

收到报警:确认、反馈和汇总

报警确认:当用户点击确认按钮之后,对应的人会收到确认信息。

报警处理结果反馈

汇总表:提供批量确认功能

报警收敛

基于关键字、主机名、Tag的复合报警收敛

报警升级

如果报警在一定时间没被确认也没有自动回复,会有一个报警升级动作

微信 vs 短信 两个平台

所有微信接口做了加密处理,防止非授权用户访问和关注公众号。短信平台主要用来发送灾难级别的报警、微信API接口的报警,系统本身可用度的报警。

总结     系统使用的成果

云极星创之前使用的报警方案是邮件加短信的方式,在报警触发之后,运维交流群会有大量围绕报警的沟通,并且经常发生报警风暴,将短信发送平台堵塞,在本系统投入使用之后,基本上所有的沟通都在系统内进行。随着丰富的报警附加信息,减少了二线运维工程师在处理故障时候开机登录系统的次数。

    研发历程

本系统开发历时半年左右,基本上随着云极星创的发展而发展壮大起来,初期的想法是因为各家短信发送平台随着国家打击电信诈骗的政策影响,变得越来越不好用,所以诞生了使用普及率非常高的微信来替代短信的想法。

第一个版本就是原封不动的推送Zabbix报警信息,随着公有云规模的不断扩大,报警不断增多,另外私有云客户也在不断的增加,需要接受报警的人员也越来越分散,围绕报警的沟通成本越来越高。

因此本系统的功能点都是围绕着我们运维同学在处理报警时候遇到的痛点进行开发而成。经过半年的发展,在我们内部已经将运维报警做成了运营的报警。

    未来发展

  • 报警系统和工单系统以及CMDB做关联;
  • 快速实现故障根因定位;
  • 告警排行分析报表;

(备注:文中截图来自于预发布环境下的运维测试)

重点在最后,代码已经托管到github

https://github.com/superbigsea/zabbix-wechat

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏WeTest质量开放平台团队的专栏

手游MOBA之殇在网络——浅析手游网络损伤专项测试

弱网络专项测试(客户端网络损伤专项测试)是腾讯游戏内部评审时,非常重要的一环,直接决定了产品是否能直接上线运营。针对最近非常火爆的MOBA类游戏,对客户端网络损...

1292
来自专栏云计算D1net

混合云的重要性及如何开始使用混合云

导语 混合云可以让您在本地运行您的基础设施,可以按租赁、配置和扩展要求获得一些云功能,然后在准备就绪后可以将应用程序迁移到公共云(也可能是私有云)。实际上,出于...

3307
来自专栏杨建荣的学习笔记

运维开发的开源项目

运维开发的开源项目很多,从很多人的理解中,开源就是把代码一开放就完事了,当然远远没有这么简单。其实如果在GitHub上观察多一些,那些顶级项目都是更新频...

2452
来自专栏Forrest随想录

从0到1:蘑菇街运维技术管理体系建设分享(上)

大家下午好!我叫赵成,来自蘑菇街。今天给大家分享的题目是从0到1,蘑菇街运维技术管理体系建设分享。正式开始分享之前,首先作一个简单的自我介绍和公司介绍。我叫赵成...

2792
来自专栏BestSDK

微信二次开发SDK:可群控营销手机,智能回复等功能

本次更新主要内容:Android增加是否使用FCM推送的接口,添加语音会议功能;ios实现不同模式的实时语音会议功能,添加动态更换对方实时视频显示页面的功能。 ...

89411
来自专栏Java架构师学习

阿里P8架构师详说分布式架构的应用原理简介什么是分布式?分布式和集群的关系计算机发展历史分布式架构发展的里程碑架构的发展演变过程如何把单击扩展到分布式

作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议...

2595
来自专栏JAVA高级架构

阿里P8架构师深度概述分布式架构

作为一名架构师,我们要专业,要能看懂代码,及时光着臂膀去机房,也能独挡一面!及时同事搞不定问题,或者撂挑子,你也能给老大一个坚定的眼神:不怕,有我在!还能在会议...

2435
来自专栏纯洁的微笑

从既有系统到微服务架构

微服务近年来可谓炙手可热,合理的使用微服务架构可以解耦系统、提供更好的软件伸缩性以及提高组织的敏捷性。然而现实中较少有项目一开始就会选择使用微服务架构,绝大多数...

933
来自专栏后端技术探索

从既有系统到微服务架构

微服务近年来可谓炙手可热,合理的使用微服务架构可以解耦系统、提供更好的软件伸缩性以及提高组织的敏捷性。然而现实中较少有项目一开始就会选择使用微服务架构,绝大多数...

1322
来自专栏美图数据技术团队

日活跃数千万,10亿级APP大数据统计分析平台的架构演进

美图拥有十亿级用户,每天有数千万用户在使用美图的各个产品,从而积累了大量的用户数据。

1852

扫码关注云+社区

领取腾讯云代金券