Acontece que o endereço IP definido na configuração do host (através da interface web) era o do próprio zabbix-server. Este deve ser o endereço do agente-servidor.
Um dos servidores monitorados pelo Zabbix não está acessível. Eu não tenho idéia porque isso funciona normalmente com outros servidores.
/etc/zabbix/zabbix_agentd.conf
não vejo diferença entre este servidor problemático e outro que funciona normalmente. http://repo.zabbix.com/zabbix/2.2/rhel/6/x86_64/zabbix-release-2.2-1.el6.noarch.rpm
Log do agente após a reinicialização do serviço do 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)
Quando faço telnet para o servidor-agente, insira agent.version
, ele retorna: ZBXD2.2.11
Conteúdo de /etc/zabbix/zabbix_server.conf
(servidor):
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
Conteúdo de /etc/zabbix/zabbix_agentd.conf
(agente)
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/
Netstat no servidor zabbix
$ 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 no agente problemático
$ 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 no agente de trabalho
$ 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
Agente ativo vs passivo
ActiveServer
com o valor zabbix-server-ip como valor. A mensagem de erro desapareceu no log depois de reiniciar o agente. Próxima tentativa:
ActiveServer
é definido com o zabbix-server-ip, o agente é reiniciado StartAgents
está definido como 0, para forçar a utilização do agente ativo. Em suma, o modo ativo pode ter sido definido na configuração do agente em vários servidores, nunca funcionou. Todos os relatórios são de agentes passivos.
Interfaces de agente
Eu não sei porque isso acontece, mas parece estranho.
O que pode causar esse problema de conexão? Como posso reconectar o servidor com o agente?
Acontece que o endereço IP definido na configuração do host (através da interface web) era o do próprio zabbix-server. Este deve ser o endereço do agente-servidor.
Que tal a configuração atual do SELinux e iptables na caixa do agente? Você pode do agente telnet para o servidor pela porta 10051?
Você pode tentar verificar a conectividade entre caixas usando o tcpdump no agente: tcpdump -i your_interface tcp port 10050
. Usando isso, você pode ver os pacotes de entrada / saída.
Eu acho que você precisa entender o modo ativo e passivo de conexão do zabbix para resolver o problema. Aqui de documentação do zabbix :
Passive and active checks
Zabbix agents can perform passive and active checks.
In a passive check the agent responds to a data request. Zabbix server (or proxy) asks for data, for example, CPU load, and Zabbix agent sends back the result.
Active checks require more complex processing. The agent must first retrieve a list of items from Zabbix server for independent processing. Then it will periodically send new values to the server.
Agora, o modo ativo para funcionar, você precisa ter a porta 10051 aberta no servidor Zabbix, para que os agentes dos clientes possam se conectar a ela. Do erro que você está recebendo, este é o problema:
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)
Os testes que você fez são sobre a conexão do servidor Zabbix para o cliente e parece funcionar sem nenhum problema. Mas isso não é suficiente para o modo ativo funcionar. A conexão do agente cliente para o servidor na porta 10051 não está funcionando no seu caso e você precisa se concentrar nisso.
As informações que você forneceu são enganosas:
The zabbix-server has a different security group, and no rules set for ports 10050 and 10051, so they should be blocked. Iptables returns no rules.
O acima sobre a porta não pode ser verdade, como você está usando o modo ativo. O servidor deve ter a porta 10051 aberta para os clientes se conectarem ou você deve usar o modo passivo.
Portanto, verifique as regras de firewall necessárias entre elas e certifique-se de que o cliente / agente possa alcançar o servidor nessa porta. Tenho certeza de que o outro agente (no outro servidor em funcionamento) pode acessar o servidor Zabbix na porta 10051.
Tags monitoring zabbix zabbix-agent