文章目录
开发背景
报警服务架构
报警控制器 报警检验器
报警策略
报警流程
1事件判断 2条件判断 3报警处理
报警算法
最小值 最大值 环比 TopN BottomN
总结
开发背景
TalkingData拥有千台以上服务器的大数据业务集群,所以对于系统的监控能力、指标的实时分析和历史报警信息追查也就有一定的要求,而且由于机器数量较多,我们也需要一些灵活的报警策略应对不同的情况。
目前业界已经存在很多的报警系统,例如:Zabbix、Nagios、Promethus等等,但是以上系统分别有一些不足,Zabbix对于监控项目的批量修改会比较麻烦,Nagios 看不到历史数据,只能看到报警事件,很难追查故障原因,Promethus缺少Web操作界面,不太易于使用。
我们之前版本的监控系统有诸多弊病,主要是非常难于部署安装,而且对于更改某一台主机的监控项会非常苦难,所以最后选择了用Go语言开发下一个版本的监控系统,主要是因为可以满足用户的定制化的需求并且具备高易用性。此外,相比一些付费的报警系统,自研报警系统又可以节约成本,加上我们都是由Go语言开发的系统,开发好的项目直接编译成二进制文件后会非常容易部署。
报警服务架构