![CentOS: No se puede leer la salida del agente nrpe/snmp en el servidor remoto, aunque funciona localmente, ¿qué estoy haciendo mal?](https://rvso.com/image/617262/CentOS%3A%20No%20se%20puede%20leer%20la%20salida%20del%20agente%20nrpe%2Fsnmp%20en%20el%20servidor%20remoto%2C%20aunque%20funciona%20localmente%2C%20%C2%BFqu%C3%A9%20estoy%20haciendo%20mal%3F.png)
Instalé NRPE y SNMP en algún servidor porque me gustaría monitorear este servidor con Nagios. Tengo algunas comprobaciones que ya se están ejecutando correctamente y obtengo el resultado previsto. Hoy instalé el check_ifstatus
comando Nagios para monitorear el estado de las tarjetas de interfaz de red en uno de mis mysql
servidores. Mientras ejecuto check_ifstatus
localmente en el servidor, obtengo la información relevante correctamente:
[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]#
pero cuando ejecuto el comando desde mi servidor Nagios me sale el siguiente error:
[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 ~]#
¿Significa que tengo que habilitar snmp en el servidor que quiero verificar? ¿Existe alguna forma de utilizar NRPE para ejecutar esta verificación? SELINUX está deshabilitado en todas las máquinas.
Respuesta1
¿Por qué utiliza NRPE para verificar cosas a través de SNMP? Puede verificarlos directamente desde el cuadro de Nagios, suponiendo que snmp esté escuchando en una interfaz externa (lo cual parece querer, a juzgar por los comentarios de netstat, a pesar de buscar el puerto incorrecto).
No deberías usar -n a menos que hayas compilado NRPE sin soporte SSL.
(Además, no es necesario especificar-p 5666, ya que ese es el valor predeterminado. Lo mismo con-t 10.)
- Asegúrese de que la IP de su caja Nagios esté en la lista de hosts_permitidos.
- Vea si puede hablar con el demonio NRPE ejecutando "check_nrpe -H dbr4" sin más argumentos. Deberías recuperar el número de versión NRPE.
- Verifique que su línea "command[check_ifstatus]" en nrpe.cfg coincida con su prueba manual.
Respuesta2
La respuesta de Keith es la más correcta; no es necesario utilizar NRPE para realizar comprobaciones SNMP y añade una complejidad innecesaria.
Dicho esto, el problema inmediato más probable aquí es SELinux, a menos que sepas que lo has desactivado. Ejecutar getenforce
en el host NRPE; si dice "Aplicar", SELinux está habilitado. Si SELinux está habilitado, ejecute el check_nrpe
comando desde su host Nagios y luego verifique /var/log/audit/audit.log
el host NRPE. Si hay líneas con "type=AVC" que dicen "avc: denegado", probablemente esté alcanzando una restricción de SELinux.
La manera fácil de evitar esto es desactivar SELinux editando /etc/selinux/config
y configurando SELINUX
( permissive
si planea volver a habilitar SELinux en este sistema en algún momento) o disabled
(si está seguro de que no querrá volver a ejecutar SELinux en este sistema) . Obviamente, si hace esto, perderá los beneficios de SELinux.
Es posible que pueda solucionar este problema cambiando el contexto SELinux del check_ifstatus
complemento. Puedes comprobar su contexto con ls -Z
. En mi sistema (con la política de destino estándar), tiene el contexto "system_u:object_r:nagios_system_plugin_exec_t:s0", del cual "nagios_system_plugin_exec_t" es la parte importante. Si configurarlo en "nagios_system_plugin_exec_t" (con chcon -t nagios_system_plugin_exec_t check_ifstatus
) no funciona, prueba con "nagios_unconfined_plugin_exec_t". Si alguno de esos cambios funciona, tendrás que hacerlos permanentes con semanage fcontext -a -t nagios_system_plugin_exec_t '/usr/lib(64)?/nagios/plugins/check_ifstatus'
.
Si nada de eso funciona, probablemente se esté encontrando con algunas limitaciones en los procesos que usan la dirección de bucle invertido y tendrá que mirar los mensajes AVC y diseñar sus propias políticas SELinux. No he hecho lo suficiente para ofrecer consejos (aparte de "verifique SNMP directamente desde su host Nagios; para eso sirve SNMP"), pero hay un puñado de referencias en línea sobre cómo hacer esto. Es posible que desee investigar audit2allow
, que ayuda en el proceso de realizar adaptaciones a una política SELinux.