标签:zabbix相关问题
1、问题的展现
在zabbix上有那么几个 IP 反复地报错“Zabbix agent on XXXX is unreachable for 10 minutes
”,用telnet测试客户端端口没问题,正常。过上那么或几分钟或几十分钟,就消失了,然后一会就又报警,这样下来机器的数据曲线是断断续续的,影响虽不大,不过挺烦人。SA上去也不仔细看,把服务一重启也不管有没有解决问题。
后来我自己上去,查看服务端日志。除了说“某个Key 的数据无法获得,超时而失败的”,就是另一个“first network error”的。用手工测试,使用zabbix_get去获得agent上的数据,没问题,但是会出现“延迟而失败”的情况。为啥失败,却找不到原因。
网络联通应该是没问题的,虽然报的是“first network error”.百度了一下,有说是key 错误导
致延迟了,自己在虚拟机上故意把key写错,也出不了这个错误。有说是zabbix_server端的内存不足的,我也试了下,也没出这个错误,而且server的内存本身也有监控,再说,如果是内存的问题,为什么别机器不报错,而只有这几台呢?
2、查找问题原因
考虑到这个问题,绝对是那台客户端的问题。上去查看没问题,服务也正常,跟正常机器对比配置
文件,也没问题。真个是怪了。后来想想,查看一下他跟服务端的连接情况吧,这一查不要紧,10050端口与服务器端口的连接从3W多一直刷到6W多,统计了下光10050这个竟然有2W5+处在TIME_WAIT状态,连平常我telnet 过去测试时的连接都停在那里。当我停掉zabbix_agent服务,这些状态也是不释放的。想想也是,我telnet的状态他都存了5条在里面呢,那些状态都僵死到那了,导致agent端口无法释放,过于繁忙,所以服务端跟客户端无法建立连接,最后就失败了,因为是端口超级忙,所以便返回了"first network error"的错误。在服务器端,这些连接早就已经销毁了。虽然如此,但是却仍然是可以telnet上的,而且在使用zabbix_get测试的时候也能获得一些值,但是如果连续测试就会出现无法获取的情况了。只能说agent非常忙,但是还没死。这种忙是瞎忙。
3、分析问题原因
这样问题的原因就找到了,就是因为windows 2008R2没能释放占用的端口让进程的连接都处在了TIME_WAIT状态,而导致正常的数据请求无法建立连接。这样服务器就认为是网络的错误,日志里便打印了“first network error”的错误。因为获取不到数据,zabbix页面就会显示“agent is unreachable
”了。当我百度查找相关错误时,
发现有很多类似的问题,看看官网的意思是让打补丁。如此看来 即使是重启server之后,仍然会出现此类问题的。
好吧,不管怎么说,原因找到了,是windows工程师的问题。
光是这一个进程就生成了25270多个连接。另有一台,生成了28000多个,这个命令临时抄来的。如果去掉/C参数就会刷屏从服务器端30000+的端口一直到60000+端口。
4、重新测试这个问题
正常的机器的连接情况则是:下面这样,20多个端口,也看key的情况。但是会有刷新,服务端的端口会刷新。
而后我在出错的客户端上修改了配置文件将监听端口改为10051,依然是连接越变越多
连接越来越多,然后我停止了服务
当连接达到100的时候我关闭了服务,然后他就停在这里了。正常的机器的情况是:
这个正常的机器最多时有27个连接,然后我关闭了服务,开始减少,直到没有。
因为这种链接产生时,服务器使用随机端口来这里取数据,取完数据服务器便把连接销毁了,而客户端却停在了TIME_WAIT状态,然后下一次又来了新的不一样的端口时,就又产生新的连接,然后又停在了这里,假如当新来的端口恰恰上次已经来过,那么便能顺利的取走数据了,不能的话,因为这个端口的连接过多而失败。
其他的机器没有这个问题,agent是一起部署的,而且我测试用的也是这个agent的,因此可以断定是系统的某些问题造成的。
本文出自 “海风久远” 博客,请务必保留此出处http://beyondhf.blog.51cto.com/8953234/1691308
zabbix_agent反复报警-日志显示“first network error”的问题
标签:zabbix相关问题
原文地址:http://beyondhf.blog.51cto.com/8953234/1691308