监控系统用的是zabbix,机器一多,告警邮件就多,每次看邮件都很烦躁,于是有了想要收敛下告警邮件的想法。
根据峰云大神的博客收敛的思路,自己动手实现了这个收敛平台。
1、重复性的邮件统一发
2、根据报警内容再做相关报警检查,减少误报可能
3、web展示,未处理未恢复每天定时通知
流程和框架:
接口:nginx + django
队列:redis
定时任务:redis
数据库:mysql
实现方式:
1、按照就的发邮件的脚本的方式,之前是触发sendmail,现在是出发curl 访问接口
/usr/bin/curl –connect-timeout 10 -d “subject=$2&content=$3&mailto=$1&cate=zabbix” XXXXX/api/push
2、将上面的信息 rpush到redis队列
3、后端起一个进程处理这些redis队列,实现收敛逻辑,二次检测、入库
4、如果是压缩邮件内容,放进redis,通过redis键空间通知实现定时任务功能,记录告警次数
邮件内容 :
样式抄onealert的,
平台的展示内容还在完善中
收敛策略也在完善
峰云大神的博客真的学到好多东西,感谢大神!