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?

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?

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_ifstatuscomando Nagios para monitorar o estado das placas de interface de rede em um dos meus mysqlservidores. Ao executar check_ifstatuslocalmente 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.)

  1. Certifique-se de que o IP da sua caixa Nagios esteja na lista Allow_Hosts.
  2. 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
  3. 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 getenforceno host NRPE; se disser "Aplicando", o SELinux está habilitado. Se o SELinux estiver habilitado, execute o check_nrpecomando em seu host Nagios e verifique /var/log/audit/audit.logo 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/confige configurando SELINUXpara 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_ifstatusplugin. 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.

informação relacionada