Estou usando alguns scripts baseados em Perl para verificações de serviço no Nagios e recebo (Service check did not exit properly)
e, (null)
como resultado, no Nagios, mas o script funciona muito bem na linha de comando.
Vi soluções online sugerindo desativar o interpretador Perl interno, definindo-o enable_embedded_perl=0
na configuração do Nagios ou especificando explicitamente o caminho para um intérprete. Isso não ajudou no problema.
O que mais poderia ser?
nagios
debian-wheezy
Der Hochstapler
fonte
fonte
Respostas:
O Nagios inclui seu próprio interpretador perl incorporado. Seu plug-in provavelmente não é compatível com epn.
Você pode desativá-lo globalmente ou apenas desativá-lo para o seu script. A parte inferior da página de documentos mostra como fazer isso.
Basicamente, adicione
# nagios: -epn
sua própria linha em algum lugar das dez primeiras linhas do seu script. Isto deve corrigir o seu problema.Você também pode torná-lo compatível , mas quase certamente não vale a pena.
fonte
# nagios: -epn
, de acordo com os documentos e os meus testes.check_disk_smb
echeck_file_age
, ou se eu definiruse_embedded_perl_implicitly=0
Alguns scripts Perl do Nagios Exchange tentam incluir o
utils.pm
módulo Perl. Você encontrará uma linha como esta em algum lugar:Ao instalar o Nagios no Debian, o local padrão do
utils.pm
arquivo é/usr/lib/nagios/plugins/utils.pm
. Portanto, ause lib
diretiva deve ser:A execução do comando na linha de comando provavelmente funcionou porque você estava participando
/usr/lib/nagios/plugins/
, editando seu plug-in.fonte
Prefixe o comando com
/usr/bin/perl
.Esta solução é mais uma solução alternativa, provavelmente não é uma boa ideia fazê-lo, mas pelo menos o seu plugin deve funcionar da mesma maneira que quando você o inicia a partir do terminal.
NOTA: Na minha experiência,
# nagios -epn
funciona com bastante frequência, mas às vezes não parece suficiente. Percebi que, quando isso acontece, os plugins com defeito relatam muitos avisos (quando o script é chamadoperl -w
).fonte