![CentOS: Não é possível ler a saída do agente nrpe/snmp no servidor remoto, mas funciona localmente, o que estou fazendo de errado?](https://rvso.com/image/617262/CentOS%3A%20N%C3%A3o%20%C3%A9%20poss%C3%ADvel%20ler%20a%20sa%C3%ADda%20do%20agente%20nrpe%2Fsnmp%20no%20servidor%20remoto%2C%20mas%20funciona%20localmente%2C%20o%20que%20estou%20fazendo%20de%20errado%3F.png)
Instalei o NRPE e o SNMP em algum servidor porque gostaria de monitorar este servidor com o Nagios. Tenho algumas verificações que já estão sendo executadas corretamente e recebo a saída conforme planejado. Hoje instalei o check_ifstatus
comando Nagios para monitorar o estado das placas de interface de rede em um dos meus mysql
servidores. Ao executar check_ifstatus
localmente no servidor, obtenho as informações relevantes corretamente:
[root@dbr4 nagios]# /usr/lib64/nagios/plugins/check_ifstatus -H localhost
OK: host 'localhost', interfaces up: 4, down: 0, dormant: 0, excluded: 0, unused: 0 |up=4,down=0,dormant=0,excluded=0,unused=0
[root@dbr4 nagios]#
mas quando executo o comando no meu servidor Nagios recebo o seguinte erro:
[root@monitorvm ~]# /usr/lib64/nagios/plugins/check_ifstatus -H amadbr4
CRITICAL: No response from remote host 'dbr4' for 1.3.6.1.2.1.2.2.1.8 with snmp version 1
[root@monitorvm ~]#
Isso significa que preciso ativar o snmp no servidor que desejo verificar? Existe uma maneira de usar o NRPE para executar essa verificação? SELINUX está desabilitado em todas as máquinas.
Responder1
Por que você está usando o NRPE para verificar coisas via SNMP? Você pode verificá-los diretamente na caixa do Nagios, assumindo que o snmp está escutando em uma interface externa (o que você parece querer, a julgar pelos comentários do netstat, apesar de procurar a porta errada).
Você não deveria usar -n a menos que tenha compilado o NRPE sem suporte SSL.
(Além disso, você não precisa especificar-p 5666, já que esse é o padrão. Mesmo com-t 10.)
- Certifique-se de que o IP da sua caixa Nagios esteja na lista Allow_Hosts.
- Veja se você consegue se comunicar com o daemon NRPE executando "check_nrpe -H dbr4" sem mais argumentos. Você deve recuperar o número da versão do NRPE
- Verifique se a linha "command[check_ifstatus]" em nrpe.cfg corresponde ao seu teste manual.
Responder2
A resposta de Keith é a mais correta; você não precisa usar o NRPE para fazer verificações de SNMP e isso adiciona complexidade desnecessária.
Dito isto, o problema imediato mais provável aqui é o SELinux, a menos que você saiba que o desligou. Execute getenforce
no host NRPE; se disser "Aplicando", o SELinux está habilitado. Se o SELinux estiver habilitado, execute o check_nrpe
comando em seu host Nagios e verifique /var/log/audit/audit.log
o host NRPE. Se houver linhas com "type = AVC" que dizem "avc: negado", você provavelmente está atingindo uma restrição do SELinux.
A maneira fácil de evitar isso é desligar o SELinux editando /etc/selinux/config
e configurando SELINUX
para permissive
(se você planeja reativar o SELinux neste sistema em algum momento) ou disabled
(se tiver certeza de que não deseja executar o SELinux neste sistema novamente) . Obviamente, você perderá os benefícios do SELinux se fizer isso, é claro.
Você pode resolver isso alterando o contexto SELinux do check_ifstatus
plugin. Você pode verificar seu contexto com ls -Z
. No meu sistema (com a política direcionada padrão), possui o contexto "system_u:object_r:nagios_system_plugin_exec_t:s0", do qual "nagios_system_plugin_exec_t" é a parte importante. Se configurá-lo para "nagios_system_plugin_exec_t" (com chcon -t nagios_system_plugin_exec_t check_ifstatus
) não funcionar, tente com "nagios_unconfined_plugin_exec_t". Se alguma dessas alterações funcionar, você terá que torná-las permanentes com semanage fcontext -a -t nagios_system_plugin_exec_t '/usr/lib(64)?/nagios/plugins/check_ifstatus'
.
Se nada disso funcionar, você provavelmente está enfrentando algumas limitações nos processos que usam o endereço de loopback e terá que examinar as mensagens AVC e criar suas próprias políticas SELinux. Não fiz isso o suficiente para oferecer conselhos (além de "verificar o SNMP diretamente do seu host Nagios; é para isso que serve o SNMP"), mas há algumas referências on-line sobre como fazer isso. Você pode querer dar uma olhada em audit2allow
, que ajuda no processo de fazer adaptações a uma política SELinux.