Estoy usando algunos scripts basados en Perl para las comprobaciones de servicio en Nagios y obtengo (Service check did not exit properly)
y (null)
como resultado en Nagios, pero el script funciona muy bien en la línea de comandos.
He visto soluciones en línea que sugieren deshabilitar el intérprete interno de Perl configurando enable_embedded_perl=0
la configuración de Nagios o especificando la ruta a un intérprete explícitamente. Esto no ayudó con el problema.
¿Qué más podría ser?
nagios
debian-wheezy
Der Hochstapler
fuente
fuente
Respuestas:
Nagios incluye su propio intérprete perl incrustado. Su complemento probablemente no sea compatible con epn.
Es posible que desee deshabilitarlo globalmente, o simplemente deshabilitarlo para su secuencia de comandos. La parte inferior de esa página de documentos le muestra cómo hacerlo.
Básicamente, agregue
# nagios: -epn
su propia línea en algún lugar dentro de las primeras diez líneas de su secuencia de comandos. Esto debería solucionar tu problema.También podrías hacerlo compatible , pero casi seguro que no vale la pena.
fuente
# nagios: -epn
, según los documentos y según mis pruebas.check_disk_smb
ycheck_file_age
, o si configurouse_embedded_perl_implicitly=0
Algunas secuencias de comandos Perl de Nagios Exchange intentarán incluir el
utils.pm
módulo Perl. Encontrarás una línea como esta en algún lugar:Al instalar Nagios en Debian, la ubicación predeterminada del
utils.pm
archivo es/usr/lib/nagios/plugins/utils.pm
. Entonces lause lib
directiva debería ser:Ejecutar el comando desde la línea de comando probablemente funcionó porque estabas
/usr/lib/nagios/plugins/
editando tu complemento.fuente
Prefijar el comando con
/usr/bin/perl
.Esta solución es más una solución alternativa, probablemente no sea una buena idea hacerlo, pero al menos su complemento debería funcionar de la misma manera que cuando lo inicia desde el terminal.
NOTA: En mi experiencia,
# nagios -epn
funciona con bastante frecuencia, pero a veces no parece ser suficiente. Noté que cuando esto sucede, los complementos defectuosos informan muchas advertencias (cuando se invoca el scriptperl -w
).fuente