Zabbix alerter processes more than 75% busy告警处理

一、告警现象

告警主机:   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.  重新整理了一下告警思路,下图可做参考

8. 周末在家继续排查,想起最近没有收到zabbix 每天早上发送的定时邮件,所以判断是因为在出现告警时,大量的邮件无法发出, 导致alerter process 高。 那么接下来就是查看发送邮件的脚本。

 

9.  通过查看发送邮件的脚本,才知道之前更换了告警邮箱,原邮箱支持免密登录,新的邮箱不支持免密登录, 开启使用用户名和密码登录后,可以正常发邮件。 

smtp = smtplib.SMTP()
smtp.connect(mail_host)
smtp.login(mail_user, mail_pwd)

 

10. 观察两天,未收到告警,判断修复

 

三、总结

1. 故障解决方法, 其实很简单,但需要追根问底的精神

2. 对一个陌生的技术,需要系统的学习和理解

3. 网上查询只能做为参考, 要结合实际情况

 

posted @ 2021-03-10 10:59  呆人  阅读(887)  评论(1)    收藏  举报