Bagaimana saya bisa menyelesaikan hasil "(Pemeriksaan layanan tidak keluar dengan benar)" dan "(null)" dengan layanan saya?


10

Saya menggunakan beberapa skrip berbasis Perl untuk pemeriksaan layanan di Nagios dan saya dapatkan (Service check did not exit properly)dan (null)sebagai hasilnya dalam Nagios, tetapi skrip bekerja dengan baik pada baris perintah.

Saya telah melihat solusi online yang menyarankan untuk menonaktifkan interpreter Perl internal dengan menetapkan enable_embedded_perl=0dalam konfigurasi Nagios atau dengan menentukan jalur ke penerjemah secara eksplisit. Ini tidak membantu masalah ini.

Apa lagi itu?


Bisakah Anda menunjukkan contoh bagaimana "berfungsi dengan baik" melalui CLI?
Keith

Jawaban:


11

Nagios mencakup penerjemah perl tertanam miliknya. Plugin Anda mungkin tidak kompatibel dengan epn.

Anda mungkin ingin menonaktifkannya secara global, atau cukup menonaktifkannya untuk skrip Anda. Bagian bawah halaman dokumen menunjukkan kepada Anda bagaimana melakukan ini.

Pada dasarnya, tambahkan # nagios: -epnbarisnya sendiri di suatu tempat dalam sepuluh baris pertama skrip Anda. Ini akan memperbaiki masalah Anda.

Anda juga bisa membuatnya patuh , tetapi hampir pasti tidak sepadan dengan masalahnya.


Ya terima kasih atas sarannya. Meskipun saya secara eksplisit menyatakan bahwa ini tidak memiliki dampak pada masalah spesifik yang saya hadapi.
Der Hochstapler

Ini adalah tekad nyata untuk nagios. tanpa -epn, plugin disertakan dan dijalankan secara internal oleh nagios. dengan -epn, ia dimuat sebagai executable eksternal, mirip dengan binari atau skrip bash. Lihat halaman: nagios.sourceforge.net/docs/3_0/embeddedperl.html dan pertimbangkan keluhan
epn

1
Usus besar diperlukan dalam # nagios: -epn, per dokumen dan per pengujian saya.
idupree

1
Anehnya, versi Ubuntu LTS (18.04) saat ini dari nagios-plugins-standard (2.2-3ubuntu2) memiliki masalah ini. Hal-hal berfungsi jika saya memodifikasi plugin yang terpengaruh, misalnya check_disk_smbdan check_file_age, atau jika saya mengaturuse_embedded_perl_implicitly=0
Akom

Perbaiki untuk saya! Terima kasih ...
Oscar Bravo

3

Beberapa skrip Perl dari Nagios Exchange akan mencoba memasukkan utils.pmmodul Perl. Anda akan menemukan garis seperti ini di suatu tempat di dalamnya:

use lib "/usr/local/nagios/libexec";

Saat memasang Nagios di Debian, lokasi default utils.pmfile adalah /usr/lib/nagios/plugins/utils.pm. Jadi use libarahannya harus:

use lib "/usr/lib/nagios/plugins";

Menjalankan perintah dari baris perintah kemungkinan besar berhasil karena Anda masuk /usr/lib/nagios/plugins/ , mengedit plugin Anda.


2

Awali perintah dengan /usr/bin/perl.

Solusi ini lebih merupakan solusi, mungkin bukan ide yang baik untuk melakukannya tetapi setidaknya plugin Anda harus bekerja dengan cara yang sama ketika Anda meluncurkannya dari terminal.

CATATAN: Dalam pengalaman saya # nagios -epncukup sering bekerja, tetapi kadang-kadang tampaknya tidak cukup. Saya perhatikan bahwa ketika ini terjadi, plugin yang salah melaporkan banyak peringatan (ketika skrip dipanggil dengan perl -w).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.