Zabbix常见问题整理
前言
根据安装和使用Zabbix中遇到的常见报错提示,结合Zabbix官网和Google到的一些解决方案,简单做下分享
Zabbix常见问题整理
更新历史
2019年07月11日 - 增加[Z3005] query failed: [1062] Duplicate entry错误解决方案
2019年03月05日 - 完善内容
2018年11月02日 - 初稿
阅读原文 - https://wsgzao.github.io/post/zabbix-faq/
扩展阅读
Zabbix - https://www.zabbix.com/
官方文档
Frequently asked questions / Troubleshooting
https://www.zabbix.org/wiki/Troubleshooting
https://www.zabbix.com/documentation/current/manual/appendix/faq
FAQ
常见错误建议先查看log,常见的问题通常由权限,防火墙,数据库,参数错误,性能瓶颈等问题导致
zabbix_get [7189]: Check access restrictions in Zabbix agent configuration
zabbix 的服务器端与客户端连接的主要工具就是 zabbix 里 bin 文件夹下的 zabbix_get 文件,这个命令只能在 zabbix 的 server 端使用
Assuming that agent dropped connection because of access permissions(由于访问权限导致 agent 连接失败)
问题实现:zabbix_server 和 zabbix_agent 在同一台机器,server 监听全网地址,agent 监听内网地址。导致上面的报错发生
解决方案:把 zabbix_agentd.conf 中 的 server 把 zabbix_server 的公网和内网地址都加行。然后 agent 就可以正常获取到值了
1 | zabbix_get -s 127.0.0.1 -p 10050 -k system.hostname |
解决zabbix中文乱码问题
方法一:下载文泉驿字体
yum -y install wqy-microhei-fonts
cp /usr/share/fonts/wqy-microhei/wqy-microhei.ttc /usr/share/fonts/dejavu/DejaVuSans.ttf
方法二:从Windows中拷贝
cd /usr/share/zabbix/fonts
从 windows 拷贝 simhei.ttf 字体到当前目录
替换配置文件
vim /usr/share/zabbix/include/defines.inc.php
define(‘ZBX_GRAPH_FONT_NAME’, ‘simhei’)
Zabbix报No route to host
原来是被客户端的防火墙档掉了,关闭客户端防火墙或者配置相应规则即可
No active checks on server: host [] not found
查看监控机上的 / tmp/zabbix_server.log,显示日志:
cannot send list of active checks to [192.168.0.1]: host [Zabbix server] not found
查看被监控机上的 / tmp/zabbix_agentd.log,显示日志:
No active checks on server: host [Zabbix server] not found
这是因为通过 zabbix dashboard 页面配置的被监控主机名跟被监控主机上 zabbix_agentd.conf 中配置的 Hostname 不一致。修改为一致的名字后,重启 zabbix_agentd 即可。
Zabbix alerter processes more than 75% busy
zabbix 服务器邮件进程繁忙导致的,一般是因为在设置动作的时候,间隔太短,在一些特殊情况下,产生大量告警,例如几万封邮件,服务器发邮件,邮件进程发挂了。
建议通过导流解决。改发邮件的脚本,将邮件的动作改为打印时间,如下,待邮件都释放完了,再改回来。
Zabbix discoverer processes more than 75% busy
配置了自动发现的任务。每个自动发现的任务都会在一定时间内占用一个自动发现的进程。而默认配置项为 1,所以报警
修改配置文件的 StartDiscoverers 选项
StartDiscoverers=10
Zabbix poller processes more than 75% busy
轮询的负载量高,网上大多数说法是增加启动的 StartPollers 进程数,个人建议分析自己的items监控项设置是否合理,templates模板应用是否恰当。
调整 StartPollers 数量
StartPollers=500
StartPollersUnreachable=100
Zabbix housekeeper processes more than 75% busy
为了防止数据库持续增大,zabbix 有个自动删除历史数据的机制,就是 housekeeper,而 mysql 数据库删数据的时候,性能会降低,就会报这个错。建议禁用采取数据库分区表优化自动清理。
HousekeepingFrequency=0 #间隔时间
2816:20170725:174352.675 [file:dbconfig.c,line:652] zbx_mem_realloc(): out of memory (requested 162664 bytes)
2816:20170725:174352.675 [file:dbconfig.c,line:652] zbx_mem_realloc(): please increase CacheSize configuration parameter
提示内存溢出,需要调整 zabbix 服务器配置 zabbix_server.conf
CacheSize=8G
PHP Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 11 bytes)
zabbix 某些页面无法打开,查看 php 日志发现,当访问这个页面是,报错内存不足,不清楚是否内存泄露,最简单的方法是调大 php 进程的可用内存,memory_limit 默认值为 128M
grep ‘memory_limit’ /etc/httpd/conf.d/zabbix.conf
php_value memory_limit 512M
Too many processes on zabbix server
zabbix 服务器进程太多报警,默认超过 300 个进程就报警。感觉默认值太小了,zabbix 配置调优后,进程就 500 多个了,所以我把触发值改为 600.
Zabbix value cache working in low memory mode
zabbix 历史记录cache大小默认值较低,如果出现这个报错调高ValueCacheSize即可
查看日志发现 zabbix-server 取到了数据插入数据库的 event_recovery 表时失败。
1 | [root@zabbix]# tailf zabbix_server.log |
经查看表结构确定了该表只是记录了事件恢复的全部数据信息,与 user、correlation、events 表相关联。
所以备份 event_recovery 表并 truncate 删除重建 event_recovery
1 | root@zabbix:~# mysqldump -zabbix -p'zabbix' zabbix event_recovery > event_recovery.sql |
zabbix_server.conf 中英文解释
1 | # This is a configuration file for Zabbix server daemon |