Pregunta: Cuando ejecuto el comando check_nrpe con algunos argumentos, aparece el mensaje "CHECK_NRPE:recibió 0 bytes del demonio. Verifique los registros del servidor remoto para ver si hay mensajes de error”. ¿Cómo soluciono este problema?
Respuesta: El tema es muy sencillo. check_nrpe no toma ningún argumento por defecto. Debe habilitar los argumentos de la línea de comando para check_nrpe como se muestra a continuación.
Verifique el mensaje de error check_nrpe
Solo con fines de prueba, supongamos que está ejecutando el siguiente comando check_nrpe que muestra el mensaje "CHECK_NRPE:0 bytes recibidos del daemon. ” mensaje de error.
$ /usr/local/nagios/libexec/check_nrpe -H 192.168.1.20 -c check_disk -a 60 80 /dev/sdb1 CHECK_NRPE: Received 0 bytes from daemon. Check the remote server logs for error messages.
Si ve /var/log/messages en el host remoto (en el ejemplo anterior, que es 192.168.1.20), verá el error nrpe "Error:¡La solicitud contenía argumentos de comando! ” como se muestra a continuación, lo que indica que check_nrpe no está habilitado para tomar los argumentos del comando.
$ tail -f /var/log/messages Dec 5 11:11:52 dev-db xinetd[2536]: START: nrpe pid=24187 from=192.168.101.108 Dec 5 11:11:52 dev-db nrpe[24187]: Error: Request contained command arguments! Dec 5 11:11:52 dev-db nrpe[24187]: Client request was invalid, bailing out... Dec 5 11:11:52 dev-db xinetd[2536]: EXIT: nrpe status=0 pid=24187 duration=0(sec)
Habilitar argumentos del comando check_nrpe
Para habilitar los argumentos de comando en NRPE, debe hacer las dos cosas siguientes.
1. Configure NRPE con –enable-command-args
Por lo general, cuando instala NRPE en el host remoto, hará ./configure sin ningún argumento. Para habilitar la compatibilidad con argumentos de comando en el demonio NRPE, debe instalarlo con –enable-command-args como se muestra a continuación.
[remotehost]# tar xvfz nrpe-2.12.tar.gz [remotehost]# cd nrpe-2.12 [remotehost]# ./configure --enable-command-args [remotehost]# make all [remotehost]# make install-plugin [remotehost]# make install-daemon [remotehost]# make install-daemon-config [remotehost]# make install-xinetd
2. Modifique nrpe.cfg y establezca dont_blame_nrpe
Modifique /usr/local/nagios/etc/nrpe.cfg en el servidor remoto y establezca la directiva dont_blame_nrpe en 1 como se muestra a continuación.
$ /usr/local/nagios/etc/nrpe.cfg dont_blame_nrpe=1
Ejecutar check_nrpe con argumentos de comando
Después de los dos cambios anteriores, si ejecuta check_nrpe para este host remoto en particular, ya no verá el mensaje de error como se muestra a continuación.
$ /usr/local/nagios/libexec/check_nrpe -H 192.168.1.20 -c check_disk -a 60 80 /dev/sdb1 DISK OK - free space: / 111199 MB (92% inode=99%);| /=9319MB;101662;114370;0;127078
Advertencia de seguridad
Habilitar argumentos de línea de comando NRPE es un riesgo de seguridad. Si no sabe lo que está haciendo, no habilite esto.
Probablemente a estas alturas ya se haya dado cuenta de que no puede culpar a NRPE si algo sale mal. Después de todo lo que hiciste, estableciste dont_blame_nrpe en 1.