工作的时候回遇到各种各样的问题。
今天遇到一个关于zabbix的问题。
"Zabbix agent on host.name is unreachable for 5 minutes"
遇到这个问题的时候,首先考虑的是不是网络问题导致的,tcpdump 就出来了,首先在server端和agent端 进行了抓包。
tcpdump -nn -i bond0 src host agent_IP
tcpdump -nn -i bond0 src host server_IP
抓包后发现两边都可以正常的接收到对方的包,没有问题
然后在看了下server和agent的网络连接
netstat -n |grep agent_IP
发现第二列,也就是Recv-Q列的值已经上万,心想,为什么接受队列会积压这么多消息。zabbix得server端没有处理agent端发来的消息?
赶紧查看zabbix_server.log,N多条下面的内容:
value cache is fully used: please increase ValueCacheSize configuration parameter
cache不够用了? 看zabbix_server.conf中的配置
ValueCacheSize=256M
也不小啊,作为一个测试环境,监控30台机器,不至于这么不堪啊。
忽然想到是不是内存不够用了
free -m
Mem这一行,内存一共48G左右,剩余200M的内存,够吃紧的。
重启zabbix server 吧
重启完,问题解决了。
以前没遇到过内存吃紧的问题,也没想到内存吃紧会导致 zabbix 报告 agent on host.name is unreachable 的问题。
应该还有server运行时间太长,有些内存没有释放的问题,定期重启srver应该会避免这个问题。
记下来,涨经验。