Zabbix服务器内网监控外网Agent主机问题

2021-08-12 10:32:31 浏览数 (1)

前言

Zabbix服务器使用了Docker搭建在笔者使用的笔记本上,Zabbix被监控主机为笔者的阿里云服务器,此时Zabbix环境已搭建完成,在Zabbix服务器web界面也已添加监控主机,但是被监控主机报如下错误: Assuming that agent dropped connection because of access permission

解决过程

笔者在解决这个错误时找出存在的几个问题,以下的解决方案描述:

1、Zabbix服务器在公司内网,被监控主机在外网

这是因为Zabbix服务器的网络环境造成的,由于Zabbix服务器搭建在笔者的笔记本上,笔记本的网络是连接的WiFi局域网,所以在被监控主机上的Zabbix_agent服务配置上需要修改zabbix_agent配置文件的Server参数或者ServerActive参数指定Zabbix服务器的公网IP。

这时候问题来了,我怎么知道Zabbix服务器,也就是笔记本的公网IP?

后来找的一个办法,就是在Zabbix服务器通过telnet工具连接到被监控主机的10050端口,再在被监控主机查看10050端口被谁访问了,就得到了Zabbix服务器的公网IP: Zabbix服务器:

代码语言:javascript复制
➜  ~ telnet x.x.x.x 10050
Trying x.x.x.x...
Connected to x.x.x.x.
Escape character is '^]'.
Connection closed by foreign host.

被监控主机:

代码语言:javascript复制
[root@ali_server_ltd ~]# netstat -an | grep 10050
tcp   0    0 0.0.0.0:10050          0.0.0.0:*       LISTEN
tcp   0    0 192.168.1.223:10050    y.y.y.y:27242   TIME_WAIT

x.x.x.x : 被监控主机ip y.y.y.y : Zabbix服务器的公网IP

接着修改被监控主机的zabbix_agent配置文件指定Zabbix服务器IP:

代码语言:javascript复制
[root@ali_server_ltd ~]# vim /usr/local/etc/zabbix_agentd.conf
……
Server=127.0.0.0,y.y.y.y
……
ServerActive=127.0.0.0,y.y.y.y

重启zabbix_agent服务器即可。

2、Zabbix服务器中被监控主机的Hostname参数不一致

也就是需要确定被监控主机的zabbix_agentd.conf配置文件中的Hostname参数与服务端Zabbix server页面的上的机器名一致, 否则有可能导致服务端不知道把数据保存在哪一台。

修改为一致后重启zabbix_agent服务即可。

3、被监控主机的安全组、防火墙设置

由于被监控主机是阿里云服务器,在默认情况下需要设置安全组才能将端口开放。 登录阿里云平台修改安全组策略:

被监控主机如开启了防火墙,也需要开放10050端口。

代码语言:javascript复制
firewall-cmd --zone=public --add-port=10050/tcp --permanent
firewall-cmd --reload

解决了上面的问题之后,再在Zabbix服务器端web界面查看:

绿了,可用性为正常状态。 最新数据中可以查看到数据:

结尾

在搭建这个监控过程中却是费了不少劲,通过查找资料和不断尝试,也最终能找到问题所在了。

0 人点赞