”咦?zabbix agent is not available “
看样子,应该是这台服务器上的 zabbix_agent 进程挂了,看一下 zabbix_agentd 进程状态
zabbix_agent 进程在呀
cmd 命令看下这台 agent 与 proxy 的网络连接
netstat -an | find '192.168.149.128'
发现网络连接是有的,但是连接的状态引起了咸鱼的注意
”怎么全是 TIME_WAIT 状态?“
这台 agent 设置的是主动模式,在主动模式下,agent 会与 zabbix server(proxy)的 10051 端口连接,然后把数据主动传给 zabbix server(proxy)
咸鱼发现,这台 agent 与 proxy 的连接的状态全是 TIME_WAIT ,要不重启一下 zabbix_agent 看看,将这些连接都释放掉
”WTF?释放不了?“,咸鱼发现重启 zabbix_agent 之后之前已建立的TIME_WAIT状态连接并未得到释放
而且日志提示:
......active check configuration update from [192.168.149.128:10051] started to fail (cannot connect to [[192.168.149.128]:10051]: [0x00002747] 由于系统缓冲区空间不足或队列已满,不能执行套接字上的操作。)
定位问题
咸鱼根据 zabbix 日志给出的信息以及 cmd 命令的结果,大致知道了是什么原因
这台 agent 上存在大量的 TIME_WAIT 状态的 TCP 连接释放不了导致系统的套接字资源被耗尽,agent 无法与 proxy 建立正常连接
那什么是 TIME_WAIT 连接?
一般来讲,客户端(client)与服务端(server)之间的某个进程要进行通信时&