ZABBIX官方文档3.4更新中提到了之前所有版本都存在瓶颈,乐维团队觉得这个更新作用非常大就此做一些告警测试,官方原话:
在以前的版本中使用单个告警器进程来发送问题通知,告警是一个一个的发出,在大规模的环境中有大量事件紧挨连续发生的情况下,告警可能会发生延迟。类似地,在实时性较高和实时性较低的媒体类型(如短信和电子邮件)混合存在的环境中,可能会存在延时,邮件的发送需要等待短信发送完成。
在新版本中,并行处理告警功能已经实现,有一个新的告警管理器进程,如果需要,可以向多个“worker”进程分发告警。媒体类型被并行处理,每个媒体类型可以配置最大并发会话数,但服务器上的告警器进程总数只能由新的StartAlerters 参数限制,每个触发器生成的告警都会顺序的进行处理。
有三个可用的新告警处理选项在媒体类型配置中: 并发会话, 重试 和 重试间隔:
1.1 实验环境
实验环境:
zabbix3.2.4 IP:192.168.1.2
zabbix3.4.0 IP:192.168.1.3
单次告警49个
收发人员微信9人,邮件7人
Web和zabbix_server_conf配置保持一致
推送脚本一致,接口一致
zabbix3.4.0 IP:192.168.1.3上调整StartAlerters 参数
1.2 zabbix3.2.4单途径告警测试
说明:3.4前的版本在出现大量告警时都会出现大的延时情况,这里触发下下3.2.4的告警处理情况做对比。
1、配置好告警推送
这里采用微信告警。
2、手动关闭告警
(不得不说这个功能虽然是为了填补zabbix有时候没能自动关毕问题的坑,另外用来做告警推送测试是个很有用的功能。)
其中:
基础告警49
微信发送9人
总计发出告警:441封
3、 等待执行发送结果
开始执行:
这里可以看到huawei的告警还没有推送完,cisco的告警一直在排队,此时已经过了1分钟。
结束:
这里可以看到完全推送完441封告警到微信人员上zabbix3.2.4需要3分钟多,这里还没有算上网络延时,有些告警1分钟采集频率,所以3分钟后推送到相关人员相对来说还是太久了。
4、 查看zabbix图形
这里可以看到告警串行的瓶颈已经触碰到。
1.3 zabbix3.4.0单途径单并发告警测试
1、配置好告警推送
这里采用微信告警。
2、配置微信告警并发进程数
这里配置为单进程。
3、手动关闭告警
其中:
基础告警49
微信发送9人
总计发出告警:441封
4.等待执行结果
这里可以看到单并发下和3.2.4的效果是一样的。
1.4 zabbix3.4.0单途径多并发告警测试
1、配置好告警推送
这里采用微信告警。
2、配置微信告警并发进程数
这里配置成无限制。
3、手动关闭问题
其中:
基础告警49
微信发送9人
总计发出告警:441封
4、等待执行结果
在此可以看到,出乎意料的快呀,30秒不到居然全部发完了。
再测试一组:
同样也是30秒内(截图手慢了点),个人微信也全部收到。
1.5 zabbix3.4.0双途径多并发告警测试
1、配置好告警推送
这里采用微信告警和邮件告警。
2、配置微信和邮件告警并发进程数
这里配置成无限制。
3.关闭问题
其中:
基础告警49
微信发送9人
邮件发送7人
总计发出告警:784封
4.执行结果
这里可以看出多一个途径后不能在30秒内全部发完了。
这里可以看出1分钟内可以全部发送完毕800多封告警(其中两个用户没有配置邮箱所以显示失败),同时微信和邮件也全部收到。
邮箱部分邮件被自动识别为垃圾邮件删除了。
5.查看zabbix图形
这里可以看出在zabbix_server_conf设置并发进程参数为30足够应付上千封邮件的推送。
1.6 并发告警总结
通过zabbix3.2.4和3.4.0的对比可以看出zabbix3.4版本对告警优化比之前的版本快了不止5、6倍,如果您所在的环境配置了大量用户接收告警的或多种途径接收的话,九一乐维团队非常建议使用zabbix3.4版本。