Używam skryptów opartych na Perlu do sprawdzania usług w Nagios i otrzymuję, (Service check did not exit properly)
aw (null)
rezultacie w Nagios, ale skrypt działa świetnie w wierszu poleceń.
Widziałem rozwiązania online sugerujące wyłączenie wewnętrznego interpretera Perla poprzez ustawienie enable_embedded_perl=0
w konfiguracji Nagios lub wyraźne określenie ścieżki do interpretera. To nie pomogło w rozwiązaniu problemu.
Co jeszcze może to być?
nagios
debian-wheezy
Der Hochstapler
źródło
źródło
Odpowiedzi:
Nagios zawiera własny wbudowany interpreter perla. Twoja wtyczka prawdopodobnie nie jest zgodna z Epn.
Możesz wyłączyć to globalnie lub po prostu wyłączyć w skrypcie. Dół tej strony z dokumentami pokazuje, jak to zrobić.
Zasadniczo dodaj
# nagios: -epn
własną linię gdzieś w pierwszych dziesięciu liniach skryptu. To powinno rozwiązać twój problem.Możesz także sprawić, by był zgodny , ale prawie na pewno nie jest to warte kłopotu.
źródło
# nagios: -epn
dokumentach i na moich testach.check_disk_smb
Icheck_file_age
, lub jeśliuse_embedded_perl_implicitly=0
Niektóre skrypty Perla z Nagios Exchange będą próbowały dołączyć
utils.pm
moduł Perla. Gdzieś w nim znajdziesz taką linię:Podczas instalowania Nagios na Debianie domyślna lokalizacja
utils.pm
pliku to/usr/lib/nagios/plugins/utils.pm
. Tak więcuse lib
dyrektywa powinna być:Wykonanie polecenia z wiersza poleceń najprawdopodobniej działało, ponieważ byłeś w trakcie
/usr/lib/nagios/plugins/
edytowania wtyczki.źródło
Przedrostek polecenia za pomocą
/usr/bin/perl
.To rozwiązanie jest raczej obejściem, prawdopodobnie nie jest to dobry pomysł, ale przynajmniej wtyczka powinna działać tak samo jak po uruchomieniu z terminala.
UWAGA: Z mojego doświadczenia
# nagios -epn
wynika, że działa dość często, ale czasem nie wydaje się to wystarczające. Zauważyłem, że kiedy tak się dzieje, wadliwe wtyczki zgłaszają wiele ostrzeżeń (gdy wywoływany jest skryptperl -w
).źródło