Saya memiliki masalah dengan NRPE ini, semua hal yang saya temukan sejauh ini di internet sepertinya menunjukkan hal-hal yang sudah saya coba.
# /usr/local/nagios/plugins/check_nrpe -H nrpeclient
memberi
NRPE v2.12
seperti yang diharapkan.
Menjalankan perintah dengan tangan (sebagaimana didefinisikan dalam nrpe.cfg pada "nrpeclient", memberikan respons yang diharapkan
nrpe.cfg:
command[check_openmanage]=/usr/lib/nagios/plugins/additional/check_openmanage -s -e -b ctrl_driver=0 bat_charge
"Expected response"
Tetapi jika saya mencoba menjalankan perintah dari server Nagios saya mendapatkan yang berikut:
# /usr/local/nagios/plugins/check_nrpe -H comxps -c check_openmanage
NRPE: Unable to read output
Adakah yang bisa memikirkan tempat lain yang mungkin membuat kesalahan dengan ini? Saya telah melakukan hal yang sama pada beberapa server lain tanpa masalah. Satu-satunya perbedaan yang dapat saya pikirkan adalah kotak ini berbasis RHEL 5, sedangkan yang lain berbasis RHEL 5.
Dua bit di atas yang telah saya uji adalah apa yang tampaknya kebanyakan orang menyarankan ketika orang memiliki masalah ini.
Saya harus menyebutkan bahwa saya mendapatkan kesalahan aneh di log ketika saya memulai kembali nrpe
:
nrpe[14534]: Unable to open config file '/usr/local/nagios/etc/nrpe.cfg' for reading
nrpe[14534]: Continuing with errors...
nrpe[14535]: Starting up daemon
nrpe[14535]: Warning: Daemon is configured to accept command arguments from clients!
nrpe[14535]: Listening for connections on port 5666
nrpe[14535]: Allowing connections from: bodbck,combck,nam-bck
Meskipun, itu jelas membaca /usr/local/nagios/etc/nrpe.cfg
file itu untuk mendapatkan hal-hal yang dibicarakannya lebih jauh ke bawah ..
Jawaban:
Anda memiliki masalah hak.
Ubah perintah menjadi:
(tambahkan sudo)
Kemudian, tambahkan pengguna nagios ke sudoers:
Atau Anda bisa chmod file ... Itu juga berfungsi.
Jika Anda menggunakan CentOS, Red Hat, Scientific atau Fedora, pastikan untuk menonaktifkan
Defaults requiretty
di file sudoers.sumber
Jawaban singkat: jika Anda menggunakan plugin Bash, pastikan Anda memiliki shebang yang menyatakan penerjemah mana yang harus digunakan:
#!/bin/bash
Saya menghadapi masalah yang sama dengan plugin Nagios yang saya tulis sendiri. Script berjalan seperti yang diharapkan ketika diluncurkan secara lokal, bahkan ketika berjalan sebagai pengguna
nagios
menggunakan pernyataan berikut:Tetapi peluncuran jarak jauh menggunakan NRPE dari server Nagios3 tidak berhasil:
Saya akhirnya menyelesaikan kasus ini dengan menambahkan shebang dalam skrip saya, karena menjalankan skrip melalui NRPE tidak menggunakan penerjemah yang sama seperti saat menjalankan
sudo sudo -s -u nagios
.sumber
#!/bin/bash -el
eval "$(rbenv init -)"
/usr/lib/nagios/plugins/check_something $@
Dalam kasus saya masalahnya sederhana - pengguna nagios tidak dapat menjalankan skrip. Setelah chmod mulai bekerja. Sudo tidak perlu. Itu bahkan jahat :)
sumber
check_nrpe mendapatkan 'NRPE: Tidak dapat membaca keluaran' meskipun cek bekerja secara lokal karena plugin yang saya gunakan tidak bekerja dengan baik dengan SELinux. Nonaktifkan dan pastikan untuk menghapus konteks file:
sumber
Periksa jalur, izin, selinux, iptables.
Milik saya adalah masalah jalur di klien: nrpe.cfg, periksa jalur perintah ke nama plugin check_ *. Ini dapat membingungkan, (lib / local) (libexec / plugins) sebagai nama path. Saya keliru menarik dan meletakkan path dari file nrpe cfg yang sudah dikomentari sebelumnya untuk membuat perintah. Instal make atau yum plugin install meletakkan ini di direktori difft.
commaneted: / usr / local / nagios / libexec / check_disk
melawan
realpath: / usr / lib / nagios / plugins / check_disk
Dari server saya bisa mengkonfirmasi itu bukan masalah firewall, bisa telnet ke port 5666, bisa menjalankan check_nrpe selimut dan mendapatkan status sebagai nilai kembali. Bisa menjalankan perintah secara lokal tetapi nrpe memiliki jalur yang salah pada klien di nrpe.cfg.
sumber
Dalam kasus saya, hanya satu plugin gagal sementara beberapa lainnya berfungsi dengan baik. Ternyata menjadi masalah LOCALE.
Plugin itu
check_mem.sh
dan itu dilakukan grep untukMem
dalam output darifree
. Tetapi seluruh sistem LOCALE kembaliSpeicher
(Jerman)Mem
, jadi semua nilai yang diterima adalah string kosong.sumber
Ini adalah masalah izin, cukup berikan eksekusi skrip dan itu akan beres:
berikut sebuah contoh: Sebelum / Remote host :
Server NRPE :
Setelah: Remote Host :
Masalah terpecahkan.
sumber
Dalam kasus saya file log yang dipantau dimiliki oleh root: adm, jadi menambahkan pengguna nagios ke grup admin membuat perintah check_log berhasil, tetapi hanya ketika dieksekusi langsung pada host yang dipantau. Itu terus gagal menggunakan check_nrpe di server Nagios sampai saya me-restart layanan nagios-nrpe-server pada host yang dipantau, misalnya
Jadi rupanya memulai kembali layanan diperlukan untuk membuat perubahan izin berlaku untuk NRPE, tapi butuh beberapa saat untuk mencari tahu.
sumber
Dalam hal plugin NRPE khusus, pastikan untuk mencetak beberapa output bersama dengan nilai keluar. Jika tidak ada output dari skrip NRPE akan mengeluh mengatakan "NRPE tidak dapat membaca output" . Anda dapat mengaktifkan debugging di nrpe.cfg dan mengamati kesalahan ini.
sumber
Dalam kasus saya masalahnya adalah selinux terkait (menjalankan RHEL 6.5, selinux diatur ke menegakkan).
Menginstal nagios-plugins- * via yum akan membuat file plugin Anda di / usr / lib64 / nagios / plugins. Jika Anda memeriksa fcontext pada file-file plugin tersebut (ls -lZ), Anda akan melihat file-file tersebut memiliki tipe konteks yang diatur ke "nagios_system_plugin_exec_t", yang merupakan tipe konteks yang diharapkan check_nrpe.
Dalam kasus saya, saya telah membuat skrip khusus "check_mem.sh" menggunakan "vi". File yang dihasilkan memiliki tipe konteks diatur ke "lib_t". Ini menyebabkan nrpe mengeluarkan "NRPE: Tidak dapat membaca keluaran".
Mengubah konteks file ke "nagios_system_plugin_exec_t" memecahkan masalah:
chcon -t nagios_system_plugin_exec_t /usr/lib64/nagios/plugins/check_mem.sh
Pemecahan masalah selinux yang biasa akan mengarahkan saya ke masalah ini juga (memeriksa /var/log/audit/audit.log), tapi itu tentu saja hal terakhir yang saya pikirkan
Sunting: chcon hanya sementara mengubah konteks. Untuk mengubahnya terus-menerus gunakan
semanage fcontext -a -t nagios_system_plugin_exec_t /usr/lib64/nagios/plugins/check_mem.sh restorecon -vF /usr/lib64/nagios/plugins/check_mem.sh
sumber
Bisa jadi Anda belum menginstal plugin Nagios Anda, NRPE tidak dapat menemukannya, atau mengaksesnya.
Saya tidak pernah harus menambahkan perintah saya ke Sudoers. Pastikan perintah dimiliki oleh pengguna Nagios dan dapat dibaca.
sumber
Saya pikir Anda harus menambahkan plugin di direktori lokal Anda
/usr/lib64/nagios/plugins/*
. Saya memiliki masalah yang sama seperti Anda dan saya dapat menyelesaikannya dengan solusi ini.sumber
Saya punya masalah yang Anda tulis. Tes yang saya jalankan adalah dari perl. Masukkan baris ini ke dalam file
/etc/nagios/nrpe.cfg
untuk membuatnya berfungsi.sumber
Ada artikel yang sangat bagus yang mencakup seluruh instalasi dan konfigurasi agen NRPE dengan banyak contoh check_commands, saya menggunakan artikel ini kapan pun saya perlu menginstal NRPE pada server baru. Lebih dari itu, di akhir halaman Anda dapat menemukan skrip keren yang secara otomatis menginstal dan mengkonfigurasi NRPE untuk Anda (berdasarkan variabel yang Anda atur), artikel tersebut dapat ditemukan: Di sini
sumber
Ini biasanya terjadi ketika server NRPE dimulai dengan pengguna nrpe, bukan nagios.
Mengubah
nrpe_user
nilai menjadi nagios dalam/etc/nagios/nrpe.cfg
file harus menyelesaikan masalah Anda.The
nrpe_group
dapat diubah juga jika diperlukan.sumber
Satu hal lagi yang perlu diperiksa adalah bahwa jika perintah Anda digunakan
sudo -u <another user>
untuk menjalankan perintah,libexec
direktori (dan direktori di atasnya) harus dapat dibaca oleh pengguna yang sudoed.Sebagai contoh jika perintah Anda adalah:
Pengguna kucing jantan harus dapat mengakses file itu.
Salah satu cara untuk memperbaikinya adalah:
Mengganti bagian terakhir dengan tempat tinggal executable Anda
sumber
Saya memiliki masalah yang sama dan saya berhasil menyelesaikannya dengan mematikan proses nagios (pada mesin yang dipantau):
Semua baik-baik saja setelah itu.
sumber
Baru saja mengalami masalah ini di FreeBSD. Setelah membenturkan kepala ke dinding selama satu jam, saya menyadari bahwa masalahnya
/usr/local/nagios/etc/nrpe.cfg
adalah menunjuk ke lokasi yang salah untuk sudo.Untuk menemukan lokasi yang benar untuk diarahkan untuk menjalankan perintah sudo:
# whereis sudo
Saya kemudian mengubah command_prefix di nrpe.cfg dari:
command_prefix=/usr/local/sudo
untuk:
command_prefix=/usr/local/bin/sudo
Kemudian berlari
service nrpe restart
dan masalahnya selesai.Bisa jadi masalah serupa pada sistem operasi lain, hanya hal lain untuk memeriksa apakah Anda telah memeriksa semua masalah izin yang mungkin dan Anda masih mendapatkan masalah ini.
sumber
Plugin Nagios tidak ada pada klien nrpe.
Jangan gunakan yum install nagios-plugins (nagios-plugins-2.0.3-1.el6.x86_64). Itu tidak menginstal semua plugin. Unduh nagios-plugins-1.4.11.tar.gz dan ikuti instruksi dalam dokumen ini.
http://www.thegeekstuff.com/2008/06/how-to-monitor-remote-linux-host-using-nagios-30/
sumber
Saya punya masalah ini dan saya menyelesaikan menonaktifkan selinux
setenforce 0
sumber