玩过zabbix的童鞋都知道在关于zabbix_agent客户端监控主要有俩种模式,一种是主动模式,一种是被动模式。
主动模式:zabbix_agent主动收集主机上面的信息,将它提交给server端
被动模式:zabbix_server主动去zabbix_agent上面抓取数据信息
今天中午我们公司的agent.ping这个监控项发生报警,在这个监控项我们采用的是zabbix_agent(active)模式,即由客户端自己收集数据发送给server端,因为之前我们一直是zabbix_agent的模式,中午将它更改未主动模式,结果就有20多台服务器报警zabbix agent on #### unreachable for 5 minute,当看到这个信息之后,我立马就去观察zabbix_agent端的日志,在日志中全部显示的是
1800:20150902:191605.465 active check configuration update from [:10051] started to fail (cannot connect to [[10.10.251.5]:10051]: [0x0000274D] 由于目标计算机积极拒绝,无法连接。)
1800:20150902:192312.403 active check configuration update from [:10051] is working again
1800:20150907:111627.125 active check configuration update from [:10051] started to fail (cannot connect to [[10.10.251.5]:10051]: [0x0000274D] 由于目标计算机积极拒绝,无法连接。)
1800:20150907:120350.378 active check configuration update from [:10051] is working again
1800:20150909:094456.703 active check configuration update from [:10051] started to fail (ZBX_TCP_READ() failed: [0x0000274C] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。)
1800:20150909:094717.398 active check configuration update from [:10051] is working again
全部是如上的这种错误,但是打开任意一台主机的图形数据,发现图形数据还是连续的,并没有出现昨天的那种产生图形中断的情况,就在这个时候我想到在百度上面开启zabbix_agent(active)模式,上面特意强调了俩个参数,一个是ServerActive和Hostname这俩个参数,ServerActive这个参数指的是客户端将自己收集到的数据发送给谁,Hostname则是显示这个数据是由谁发送的。然后我就随意打开几台主机,果然发现它们的配置文件里面Hostname这个参数未空,并且在zabbix WEB界面上的Hostname填写的都是主机的主机名,然后我把配置文件里面的Hostname和WEB界面端的Hostname全部更改未主机的IP,过了一段时间之后,报警就消失了。
最后我总结了一下,在zabbix添加和安装的时候就有强调web界面和配置文件中Hostname主机名必须保持一致,否则zabbix WEB界面有可能接收不到数据,估计当初zabbix的添加人员或许注意到了这个问题,但是由于使用的是zabbix_agent模式,再加上zabbix并没有产生报警,所以将这个问题给忽视不计了,结果等到我们由于zabbix压力增大进行优化之后才会导致这种事情发生。