![¿Cómo puedo hacer que check_nrpe espere a que mi script remoto termine de ejecutarse?](https://rvso.com/image/567618/%C2%BFC%C3%B3mo%20puedo%20hacer%20que%20check_nrpe%20espere%20a%20que%20mi%20script%20remoto%20termine%20de%20ejecutarse%3F.png)
Tengo un script en Python que se utiliza como complemento para NRPE. Este script verifica si un proceso se está ejecutando en una máquina virtual haciendo una línea SSH con un "proceso ps ax | grep" adjunto. Al ejecutar el script manualmente, funciona como se esperaba y devuelve una sola línea de salida para NRPE, así como un estado basado en si el proceso se está ejecutando o no.
Cuando intento ejecutar la configuración del comando para ejecutar este script (desde mi servidor Nagios),instantáneamenteobtengo el resultado "NRPE: No se puede leer el resultado", sin embargo, cuando ejecuto el script manualmente, tarda aproximadamente un segundo antes de que devuelva el resultado. Otros comandos funcionan bien, por lo que parecería que NRPE necesita esperar uno o dos segundos para obtener resultados en lugar de fallar instantáneamente, pero no he podido encontrar ninguna forma de lograrlo; ¿algun consejo?
PD: No se puede acceder a las máquinas virtuales desde ningún otro lugar que no sea la máquina host, de ahí la necesidad de que el complemento nrpe realice ssh desde el host a la VM para verificar el proceso.
Respuesta1
Puede cambiar el tiempo de espera siguiendo las instruccionesaquío tiempo de espera de búsqueda en eldocumentacion nrpe, aunque no creo que este sea tu problema, o verías un error como este:
CHECK_NRPE: Socket timeout after 270 seconds.
Probablemente también exista un complemento de nagios que devolverá los datos que desea y que ya se han escrito.
Respuesta2
¿Por qué no usar?check_proc¿enchufar?
En la máquina virtual, defina un comando para su servicio en /etc/nagios/nrpe.cfg
:
command[check_<service_name>]=/usr/lib64/nagios/plugins/check_procs -c 1:1 -C <service_name>
y desde el servidor de Nagios:
define service{
use critical-service
host_name xx
service_description <service_name>
check_command check_nrpe!check_<service_name>
event_handler autostart_<service_name>!xx
process_perf_data 0
contact_groups admin
}
un resultado de muestra:
# su - nagios -s /bin/bash
-bash-3.2$ /usr/local/nagios/libexec/check_nrpe -H xx -c check_<service_name>
PROCS OK: 1 process with command name '<service_name>'
Respuesta3
Creo que el tiempo de espera predeterminado es de unos 10 segundos, así que probablemente no sea eso.
Si está utilizando ssh para ejecutar una verificación, recuerde que nrpe probablemente se esté ejecutando como usuario "nagios" (dependiendo de las opciones de instalación). ¿Ese usuario tiene las claves y opciones ssh correctas?