1. Mr.xu 博客网 & Mr. Xu's blog首页
  2. 经验/教程

Zabbix Server “Zabbix poller processes more than 75% busy” 警报问题解决

    虽然Zabbix的监控警报各种有,但Kaijia使用碰到最多的几个莫过于内存耗尽,网络不通,IO太慢,最近在 zabbix 服务器上发现还有这个“Zabbix poller processes more than 75% busy”了。

    一开始的时候因为这个即不影响使用也持续一会儿就自行解决就没有多在意。然后随着数据库的增大,Zabbix消耗的内存可是越来越多,Poller processes(轮询)开始天天Busy了,最终Kaijia不得不把Zabbix挪到了另外一台服务器上。

    但这并没有彻底解决问题,警报仍然三天两头来几个。之后Kaijia开启了Zabbix警报的邮件功能,于是开始频繁收到这类邮件,于是Kaijia决定解决这个问题。Google了一下资料,没有找到很权威的答案,造成轮询忙的问题有很多中,支撑Zabbix的MySQL卡住了,Zabbix服务器的IO卡住了都有可能,Zabbix进程分配到内存不足都有可能。一个简单的方法是增加Zabbix Server启动时初始化的进程数量,这样直接增加了轮询的负载量,从比例上来讲忙的情况就少了。

QQ截图20170608134441.jpg

图一:修改前

    增加初始化进程的方法非常简单,编辑Zabbix Server的配置文件/etc/zabbix/zabbix_server.conf,找到配置StartPollers的段落:

### Option: StartDiscoverers
#       Number of pre-forked instances of discoverers.
#
# Mandatory: no
# Range: 0-250
# Default:
# StartDiscoverers=1

    取消StartPollers=一行的注释或者直接在后面增加:这里笔者根据自身服务器的性能进行修改,一点一点从低往高的加。

StartDiscoverers=20

    将StartPollers改成多少取决于服务器的性能和监控的数量,Kaijia将StartPollers设置成12之后就再没有遇到过警报。如果内存足够的话可以设置更高。设置完成之后运行:

service zabbix-server restart

QQ截图20170608134701.jpg

图二:修改后

    重启Zabbix。当然另外一种从整体上降低Zabbix服务器负载的方法就是定期重启Zabbix,这种方法可以用Cron实现,运行:

crontab -e

    在调出的Cron编辑器中增加一个计划:

@daily service zabbix-server restart > /dev/null 2>&1
    这个计划会每天自动重启Zabbix服务以结束僵尸进程并清理内存等。
    目前笔者这样配置Zabbix后还没有再次遇到过“Zabbix poller processes more than 75% busy”的问题。

原创文章,作者:Admin,如若转载,请注明出处:http://www.xuxiaokun.com/208.html,由 Mr.xu 博客网 & Mr. Xu's blog 整理。

联系笔者

笔者期待与您共勉 · 互赢

有言必答:点击这里给我发消息

商务洽谈:交互沟通 · 共赢互利

邮件:admin@xuxiaokun.com

线上沟通:周一至周五 9:30 - 17:30

其余时间Mail或QQ我,有言必应。

微信关注
微信关注
投递稿件
分享本页
返回顶部