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=0la 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: -epnsu 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_smbycheck_file_age, o si configurouse_embedded_perl_implicitly=0Algunas secuencias de comandos Perl de Nagios Exchange intentarán incluir el
utils.pmmódulo Perl. Encontrarás una línea como esta en algún lugar:Al instalar Nagios en Debian, la ubicación predeterminada del
utils.pmarchivo es/usr/lib/nagios/plugins/utils.pm. Entonces lause libdirectiva 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 -epnfunciona 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