Ich verwende einige Perl-basierte Skripte für Serviceprüfungen in Nagios und erhalte (Service check did not exit properly)
und (null)
als Ergebnis in Nagios, aber das Skript funktioniert hervorragend in der Befehlszeile.
Ich habe Online-Lösungen gesehen, die vorschlagen, den internen Perl-Interpreter zu deaktivieren, indem Sie enable_embedded_perl=0
die Nagios-Konfiguration festlegen oder den Pfad zu einem Interpreter explizit angeben. Dies hat bei dem Problem nicht geholfen.
Was könnte es sonst sein?
nagios
debian-wheezy
Der Hochstapler
quelle
quelle
Antworten:
Nagios enthält einen eigenen eingebetteten Perl-Interpreter. Ihr Plugin ist wahrscheinlich nicht epn-kompatibel.
Möglicherweise möchten Sie es global deaktivieren oder es einfach für Ihr Skript deaktivieren. Am Ende dieser Dokumentseite erfahren Sie, wie Sie dies tun.
Fügen Sie
# nagios: -epn
im Grunde genommen eine eigene Zeile irgendwo in den ersten zehn Zeilen Ihres Skripts hinzu. Dies sollte Ihr Problem beheben.Sie könnten es auch konform machen , aber es ist mit ziemlicher Sicherheit die Mühe nicht wert.
quelle
# nagios: -epn
gemäß den Dokumenten und meinen Tests benötigt.check_disk_smb
undcheck_file_age
, oder wenn ichuse_embedded_perl_implicitly=0
Einige Perl-Skripte von Nagios Exchange versuchen, das
utils.pm
Perl-Modul einzuschließen. Irgendwo darin finden Sie eine Zeile wie diese:Bei der Installation von Nagios unter Debian ist der Standardspeicherort der
utils.pm
Datei/usr/lib/nagios/plugins/utils.pm
. Dieuse lib
Richtlinie sollte also lauten:Das Ausführen des Befehls über die Befehlszeile hat höchstwahrscheinlich funktioniert, weil Sie
/usr/lib/nagios/plugins/
Ihr Plugin bearbeitet haben.quelle
Stellen Sie dem Befehl das Präfix vor
/usr/bin/perl
.Diese Lösung ist eher eine Problemumgehung. Es ist wahrscheinlich keine gute Idee, dies zu tun, aber zumindest sollte Ihr Plugin genauso funktionieren wie beim Starten über das Terminal.
HINWEIS: Nach meiner Erfahrung
# nagios -epn
funktioniert es ziemlich oft, aber manchmal scheint es nicht genug zu sein. Ich habe festgestellt, dass die fehlerhaften Plugins in diesem Fall viele Warnungen melden (wenn das Skript mit aufgerufen wirdperl -w
).quelle