一、告警现象
告警主机: 172.18.20.15 告警时间: 2021.03.08 02:23:43 告警等级: Average 告警信息: Zabbix alerter processes more than 75% busy 告警项目: zabbix[process,alerter,avg,busy] 问题详情: Zabbix busy alerter processes, in %:100 % 当前状态: PROBLEM:100 % 事件ID: 408627698
二、排查思路
1. 告警分析
告警显示的zabbix 内部alerter process 超过75%, 已经达到100%。 alerter process 是用于在触发告警时发送通知的进程,当产生大量的告警时, 该进程繁忙就会告警。 但结合我们自己的情况, 每次出现告警时, 伴随的其他告警并多。 所以先是查询了一番,有如下的回复,另外根据以下的回复, 并没有看出异常。
(1)Zabbix的后端数据库卡了
(2)Zabbix服务器的IO卡顿
(3)Zabbix进程分配到内存不足
2. 进一步在查询, 看到可以通过修改StartAlerters的数量来调整,紧接在zabbix_server.conf 中修改。
### Option: StartAlerters # Number of pre-forked instances of alerters. # Alerters send the notifications created by action operations. # # Mandatory: no # Range: 0-100 # Default: StartAlerters=10
3. 然而在zabbix_server.conf 的配置文件中, 并没有看到 StartAlerters这个参数, 于是手动加了以下配置,并重启zabbix 服务,重启之后发现zabbix 服务无法启动。
StartAlerters=10
4. 在zabbix 上的官网上看到, 只有zabbix 4.0 以上的版本才支持修改StartAlerters 的数量,当前使用的是3.0的版本
5. 到这一步,已经没有招了,难道要准备升级版本 ?这动作太大了, 而且没有找到根本原因, 根据以往对网络设备升级经验来看, 升级版本很多时候并没有用, 只是作为尝试的方法。 所以升级版本暂时放弃,那到底是啥原因呢.....
6. 重新整理了一下告警思路,下图可做参考
7. 周末在家继续排查,想起最近没有收到zabbix 每天早上发送的定时邮件,所以判断是因为在出现告警时,大量的邮件无法发出, 导致alerter process 高。 那么接下来就是查看发送邮件的脚本。
8. 通过查看发送邮件的脚本,才知道之前更换了告警邮箱,原邮箱支持免密登录,新的邮箱不支持免密登录, 开启使用用户名和密码登录后,可以正常发邮件。
smtp = smtplib.SMTP()
smtp.connect(mail_host)
smtp.login(mail_user, mail_pwd)
9. 观察两天,未收到告警,判断修复
内容来源:博客园-呆人(https://www.cnblogs.com/dairenblog/p/14510277.html)
错误信息