最近发现以前部署的Zabbix Server突然连不上几台AWS的机器了。刚部署完成的时候是可以连接上的。所以借着这次查找并解决问题的过程,简单了解了一下Zabbix Agent的工作模式。
Zabbix Agent的工作模式Zabbix-Agent的工作模式可以分为主动模式(Active)和被动模式(Passive)。
主动模式: Zabbix-Agent主动连接Zabbix-Server,对Zabbix-Server的性能开销较少,适合大规模环境使用。
被动模式:Zabbix-Server向Zabbix-Agent请求数据,Zabbix-Agent被动接受数据请求后回应,属于一对一的响应模式。比如有100个监控项,Zabbix-Server需要向Zabbix-Agent 请求100次,同时,Zabbix-Agent在响应Zabbix-Server时,对监控项数据采集也需要消耗时间,Zabbix-Server 只能耗着时间安静地等待Zabbix-Agent。
相对于主动模式的高效,被动模观时间开销和发送数据量上都处于劣势,对Zabbix-Server的性能开销较大,适合小规模环境使用。
解决Agent无法连接的问题查看一下zabbix相关的进程,发现zabbix进程还运行着。那应该还是连接不上的问题。
ps aux | ag zabbix
root 19035 0.0 0.0 13424 768 pts/0 S+ 15:08 0:00 ag zabbix zabbix 55291 0.0 0.0 85036 1308 ? SN 14:48 0:00 /usr/sbin/zabbix_agentd -c /etc/zabbix/zabbix_agentd.conf zabbix 55292 0.0 0.0 85036 1888 ? SN 14:48 0:00 /usr/sbin/zabbix_agentd: collector [idle 1 sec] zabbix 55293 0.0 0.0 85036 2220 ? SN 14:48 0:00 /usr/sbin/zabbix_agentd: listener #1 [waiting for connection] zabbix 55294 0.0 0.0 85036 2220 ? SN 14:48 0:00 /usr/sbin/zabbix_agentd: listener #2 [waiting for connection] zabbix 55295 0.0 0.0 85036 2220 ? SN 14:48 0:00 /usr/sbin/zabbix_agentd: listener #3 [waiting for connection] zabbix 55296 0.0 0.0 85036 2300 ? SN 14:48 0:00 /usr/sbin/zabbix_agentd: active checks #1 [idle 1 sec] zabbix 55297 0.0 0.0 85036 2300 ? SN 14:48 0:00 /usr/sbin/zabbix_agentd: active checks #2 [getting list of active checks]
同时,从进程输出中看到了Zabbix Agent的配置文件。进到配置文件中就看到了工作模式的配置和agent相关的日志文件了。
这里的Server配置项用于设置被动模式连接的Zabbix-Server的IP地址,ServerActive配置项用于设置主动模式连接的Zabbix-Server的IP地址。
vim /etc/zabbix/zabbix_agentd.conf
LogFile=/tmp/zabbix_agentd.log Include=/etc/zabbix/zabbix_agentd.d/ Server=xxxx,xxxx,xxxx ServerActive=xxxx HostnameItem=system.hostname AllowKey=system.run[*] Hostmetadata=aws prod linux PidFile=/run/zabbix/zabbix_agentd.pid UnsafeUserParameters=1
再看一下日志文件里的内容,这里也写的很明显了,Agent拒绝接收了从Server发过来的连接请求。涉及到host敏感信息,这里把host信息全都用xxxx替代了。
59371:20220130:142059.118 failed to accept an incoming connection: connection from "xxxx" rejected, allowed hosts: "xxxx,xxxx,xxxx"
看了一下conf中的Server和ServerActive的配置,确实没有写上对应的Server host。所以这里应该是配置文件被谁改过了。接下来我们把Zabbix Server的host添加到配置文件(Server配置项),然后再重启zabbix-agent,这样之后就可以连上了。
重启命令:
systemctl restart zabbix-agent
日志文件里的内容:
24531:20220130:142705.998 Starting Zabbix Agent [xxxx]. Zabbix 5.4.9 (revision d81e50696f). 24531:20220130:142705.998 **** Enabled features **** 24531:20220130:142705.998 IPv6 support: YES 24531:20220130:142705.998 TLS support: YES 24531:20220130:142705.998 ************************** 24531:20220130:142705.998 using configuration file: /etc/zabbix/zabbix_agentd.conf 24531:20220130:142705.998 agent #0 started [main process] 24532:20220130:142705.999 agent #1 started [collector] 24533:20220130:142705.999 agent #2 started [listener #1] 24534:20220130:142705.999 agent #3 started [listener #2] 24535:20220130:142706.000 agent #4 started [listener #3] 24536:20220130:142706.000 agent #5 started [active checks #1] 24537:20220130:142706.000 agent #6 started [active checks #2]
接下来也可以在Zabbix网页上看到相应的监控信息了。
参考- https://blog.csdn.net/qq_34556414/article/details/107348514
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)