Zabbix代理无法访问

其中一个由Zabbix监控的服务器无法访问。 我不知道为什么这与其他服务器正常工作。

  • 被监控服务器上的zabbix-agent服务正在运行。
  • 我们有几台服务器,全部由zabbix监控。 在/etc/zabbix/zabbix_agentd.conf我看到这个有问题的服务器和另一个正常工作之间没有区别。
  • zabbix服务器和受监视的服务器(代理服务器)都由Amazon托pipe。
  • 所有zabbix受监控的服务器都链接到一个安全组,其中有两个入站规则,用于端口10050和10051,用于zabbix-server IP。 因此,应该允许从zabbix服务器到这些服务器上的zabbix代理的传入请求。 他们在几台服务器上工作,但不在这台服务器上。
  • zabbix-server具有不同的安全组,并且没有为端口10050和10051设置规则,所以它们应该被阻止。 Iptables不返回任何规则。
  • 我可以从zabbix-server打开一个telnet会话到代理。 它自动断开连接,但连接。 所以我猜防火墙不是问题。
  • 服务器:Amazon Linux(Centos like)
  • 安装的文件: http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm : http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
  • 所有这些代理和服务器上的SELinux都被禁用。

zabbix-agent服务重启后的代理日志

  10939:20151127:093938.268 Starting Zabbix Agent [agent-server.test]. Zabbix 2.2.11 (revision 56693). 10939:20151127:093938.268 using configuration file: /etc/zabbix/zabbix_agentd.conf 10942:20151127:093938.269 agent #1 started [listener #1] 10945:20151127:093938.269 agent #4 started [active checks #1] 10941:20151127:093938.270 agent #0 started [collector] 10944:20151127:093938.270 agent #3 started [listener #3] 10943:20151127:093938.271 agent #2 started [listener #2] 10945:20151127:141742.930 active check configuration update from [zabbix-server-ip:10051] started to fail (cannot connect to [[zabbix-server-ip]:10051]: [4] Interrupted system call) 

当我telnet到代理服务器,然后inputagent.version ,它返回: ZBXD2.2.11

/etc/zabbix/zabbix_server.conf (服务器)的内容:

 ListenPort=10051 LogFile=/var/log/zabbix/zabbix_server.log LogFileSize=0 PidFile=/var/run/zabbix/zabbix_server.pid DBName=zabbix DBUser=zabbix DBPassword=****** DBSocket=/var/lib/mysql/mysql.sock SNMPTrapperFile=/var/log/snmptt/snmptt.log AlertScriptsPath=/usr/lib/zabbix/alertscripts ExternalScripts=/usr/lib/zabbix/externalscripts 

/etc/zabbix/zabbix_agentd.conf (代理)的内容

 PidFile=/var/run/zabbix/zabbix_agentd.pid LogFile=/var/log/zabbix/zabbix_agentd.log LogFileSize=0 EnableRemoteCommands=1 Server=zabbix-server-ip ListenPort=10050 StartAgents=3 # ServerActive=zabbix-server-ip # commented out Hostname=server.test Timeout=3 AllowRoot=1 Include=/etc/zabbix/zabbix_agentd.d/ 

在zabbix服务器上的Netstat

 $ sudo netstat -lpn | grep zabbix tcp 0 0 0.0.0.0:10051 0.0.0.0:* LISTEN 7624/zabbix_server tcp 0 0 :::10051 :::* LISTEN 7624/zabbix_server 

有问题的代理的Netstat

 $ sudo netstat -lpn | grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 3248/zabbix_agentd tcp 0 0 :::10050 :::* LISTEN 3248/zabbix_agentd 

Netstat在工作代理上

 $ sudo netstat -lpn | grep zabbix tcp 0 0 0.0.0.0:10050 0.0.0.0:* LISTEN 24242/zabbix_agentd tcp 0 0 :::10050 :::* LISTEN 24242/zabbix_agentd 

主动与被动代理

  • 我已经在服务器上打开有问题的代理IP的端口10051。
  • Telnet显示了从代理到服务器的工作。
  • 我用zabbix-server-ip作为值激活了ActiveServer选项。 重新启动代理程序后,日志中的错误消息已消失。
  • 问题仍然存在

接下来尝试:

  • 我已经做了同样的工作代理,可以telnet从代理到服务器。
  • ActiveServer设置为zabbix-server-ip,代理重新启动
  • StartAgents设置为0,强制使用活动代理。
  • Zabbix报告说,这台服务器是无法访问…
  • 然后我重置为被动。

总而言之,主动模式可能已经在多个服务器上的代理configuration中设置,它从来没有工作过。 所有报告都来自被动的代理人。

代理接口

  • 通过监控>最新数据打开,select主机=全部,我点击服务器名称,然后select主机清单
  • 工作代理显示自己的IP地址。
  • 有问题的代理显示zabbix-server-ip。

我不知道为什么会发生这种情况,但似乎很奇怪。

什么会导致这种连接问题? 我如何重新连接服务器与代理?

事实certificate,主机configuration中设置的IP地址(通过Web界面)是zabbix-server本身的IP地址。 这当然应该是代理服务器的地址。

如何在代理盒子上设置SELinux和iptables? 你可以从代理telnet到服务器端口10051?

您可以尝试使用代理程序上的tcpdump -i your_interface tcp port 10050检查盒子之间的连接性: tcpdump -i your_interface tcp port 10050 。 使用这个你可以看到传入/传出的数据包。

我想,你需要了解zabbix的主动和被动连接模式来解决问题。 这里从zabbix文档 :

被动和主动检查

Zabbix代理可以执行被动和主动检查。

在被动检查中,代理响应数据请求。 Zabbix服务器(或代理)请求数据,例如,CPU负载,Zabbix代理程序发回结果。

主动检查需要更复杂的处理。 代理程序必须首先从Zabbix服务器上检索一个项目列表以进行独立处理。 然后它会定期向服务器发送新的值。

现在工作的主动模式,你需要在Zabbix服务器上打开端口10051,以便客户端的代理可以连接到它。 从错误你得到,这是问题:

[zabbix-server-ip:10051]中的主动检查configuration更新启动失败(无法连接到[[zabbix-server-ip]:10051]:[4]中断的系统调用)[1096:20151127:141742.930]

你所做的testing是关于从Zabbix服务器到客户端的连接,看起来没有任何问题。 但是这对于主动模式不起作用。 从客户端代理到端口10051上的服务器的连接在您的情况下不起作用,您需要专注于此。

您提供的信息是误导性的:

zabbix-server具有不同的安全组,并且没有为端口10050和10051设置规则,所以它们应该被阻止。 Iptables不返回任何规则。

以上关于端口不能为真,因为你正在使用主动模式。 服务器必须打开端口10051供客户端连接,或者必须使用被动模式。

因此,请检查其间的防火墙规则,确保客户端/代理可以访问此端口上的服务器。 我确信其他代理(在其他工作服务器上)可以通过端口10051访问Zabbix服务器。

事实certificate,主机configuration中设置的IP地址(通过Web界面)是zabbix-server本身的IP地址。 这当然应该是代理服务器的地址。