Cara membuat plugin nagios sendiri menggunakan skrip shell bash

Cara membuat plugin nagios sendiri menggunakan skrip shell bash

Nagios adalah sistem pemantauan sumber terbuka yang populer yang dapat digunakan untuk memantau ketersediaan dan kinerja berbagai sumber daya, seperti server, jaringan, dan layanan. Salah satu cara untuk memperluas kemampuan Nagios adalah dengan membuat plugin khusus menggunakan skrip bash. Berikut adalah garis besar umum dari langkah -langkah yang terlibat dalam membuat plugin Nagios menggunakan skrip bash:

Penting untuk dicatat bahwa plugin Nagios harus dirancang untuk berjalan dengan cepat dan efisien, karena akan dieksekusi secara berkala. Ini berarti bahwa plugin harus menghindari melakukan tugas yang tidak perlu atau memakan waktu, dan harus mengembalikan output secepat mungkin.

Ada beberapa praktik terbaik yang perlu diingat saat membuat plugin Nagios:

  • Gunakan output yang jelas dan ringkas: Output plugin harus mudah dipahami dan memberikan informasi yang jelas tentang status sumber daya yang dipantau. Hindari menggunakan bahasa yang kompleks atau jargon, dan cobalah untuk menjaga output sesingkat mungkin.
  • Mengembalikan kode status yang sesuai: Plugin harus mengembalikan kode status yang benar berdasarkan status sumber daya yang dipantau. Misalnya, jika sumber daya berfungsi dengan benar, plugin harus mengembalikan kode status 0 (sukses). Jika ada masalah dengan sumber daya, plugin harus mengembalikan kode status 1 (peringatan) atau 2 (kritis) tergantung pada tingkat keparahan masalah.
  • Mengembalikan data kinerja: Jika relevan, plugin harus mengembalikan data kinerja dalam bentuk nama = nilai [uom]; [warn]; [crit]; [min]; [max]. Ini memungkinkan Nagios untuk melacak kinerja sumber daya dari waktu ke waktu dan mengingatkan pengguna jika berada di luar ambang batas yang dapat diterima.
  • Gunakan check_nrpe jika memungkinkan: Jika plugin akan berjalan di server jarak jauh, umumnya lebih efisien untuk menggunakan utilitas check_nrpe untuk menjalankan plugin daripada menjalankannya langsung di atas SSH. Ini menghindari overhead membangun koneksi SSH untuk setiap eksekusi plugin.

Dengan mengikuti praktik terbaik ini, Anda dapat membuat plugin Nagios yang efisien dan efektif yang akan membantu Anda memantau sumber daya yang penting bagi organisasi Anda.

Langkah 1: Tentukan tujuan plugin

Langkah pertama dalam membuat plugin Nagios adalah menentukan apa yang akan digunakan plugin. Apakah akan digunakan untuk memeriksa status layanan, memantau kinerja server, atau melakukan beberapa tugas lain? Ini akan membantu Anda merancang plugin dan menulis kode yang diperlukan.

Langkah 2: Tulis skrip shell

Setelah Anda tahu apa yang akan digunakan plugin, Anda dapat mulai menulis skrip bash. Script harus menyertakan logika yang diperlukan untuk melakukan tugas yang dirancang plugin untuk dilakukan. Ini juga harus menyertakan output dalam format yang diharapkan oleh Nagios, yang terdiri dari kode status (e.G., 0 untuk sukses, 1 untuk peringatan, 2 untuk kritis), pesan, dan data kinerja opsional.

sudo vim check_disk_uses.SH  

Tambahkan skrip di bawah ini.

#!/usr/bin/env bash ### ========================================= ================================ ### ### Plugin Nagios untuk memeriksa penggunaan disk untuk disk atau pemasangan yang diberikan atau pemasangan Point ### ### Menggunakan: ./check_disk_uses.SH / ### ### ./check_disk_uses.sh /mnt ### ### ./check_disk_uses.sh /dev /sda1 ### ### ========================================= ================================= ### ### ============== ==================================================== ========= ### ### Fungsi ### ### ============================== ============================================= ### Calculate_disk_uses () # Hitung disk menggunakan bekas_disk_space = "df -h $ mount_point | grep -v Filesystem | awk" print $ 5 '| Sed 'S/%// G "if (($ bekas_disk_space> = 0 && $ bekas_disk_space = 81 && $ bekas_disk_space = 91 && $ bekas_disk_space <=100)); then echo "CRITICAL - $USED_DISK_SPACE% of disk space used." exit 2 else echo "UNKNOWN - $USED_DISK_SPACE% of disk space used." exit 3 fi ### ======================================================================= ### ### SCRIPT EXECUTION STARTS HERE ### ### ======================================================================= ### if [[ -z "$1" ]] then echo "Missing parameters! Syntax: ./'basename $0' mount_point/disk" exit 3 else MOUNT_POINT=$1 fi calculate_disk_uses ### ======================================================================= ### ### END OF SCRIPT ### ### ======================================================================= ###
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748#!/usr/bin/env bash ### ========================================= ================================ ###### Plugin Nagios untuk memeriksa penggunaan disk untuk disk atau pemasangan yang diberikan atau pemasangan Point ###### Menggunakan: ./check_disk_uses.SH / ###### ./check_disk_uses.sh /mnt ###### ./check_disk_uses.sh /dev /sda1 ###### ========================================= ================================= ### ### ============== ==================================================== ========= ###### Per fungsi ###### =============================== ============================================= ### Calculate_disk_uses () # Hitung disk menggunakan bekas_disk_space = 'df -h $ mount_point | GREP -V Filesystem | awk 'cetak $ 5' | Sed 'S/%// G' 'if (($ User_disk_space> = 0 && $ bekas_disk_space<=80)); then echo "OK - $USED_DISK_SPACE% of disk space used." exit 0 elif (($USED_DISK_SPACE>= 81 && $ bekas_disk_space<=90)); then echo "WARNING - $USED_DISK_SPACE% of disk space used." exit 1 elif (($USED_DISK_SPACE>= 91 && $ bekas_disk_space <=100)); then echo "CRITICAL - $USED_DISK_SPACE% of disk space used." exit 2 else echo "UNKNOWN - $USED_DISK_SPACE% of disk space used." exit 3 fi ### ======================================================================= ###### SCRIPT EXECUTION STARTS HERE ###### ======================================================================= ### if [[ -z "$1" ]] then echo "Missing parameters! Syntax: ./'basename $0' mount_point/disk" exit 3else MOUNT_POINT=$1fi calculate_disk_uses ### ======================================================================= ###### END OF SCRIPT ###### ======================================================================= ###

Simpan skrip Anda dan verifikasi dengan menjalankannya secara manual

Langkah 3: Uji skrip

Sebelum menggunakan skrip sebagai plugin Nagios, penting untuk mengujinya untuk memastikan bahwa itu berfungsi dengan benar dan menghasilkan output yang diharapkan. Anda dapat menguji skrip dengan menjalankannya dari baris perintah dan memverifikasi bahwa itu menghasilkan output yang benar.

bash check_disk_uses.SH /  

Ini harus berfungsi dengan baik, sebelum mengkonfigurasinya dengan server Nagios.

Langkah 4: Pasang plugin

NRPE adalah eksekusi plugin jarak jauh Nagios yang berjalan pada mesin klien, menerima permintaan dari server Nagios, memproses permintaan, dan mengirimkan hasilnya kembali ke server Nagios.

  1. Jika Anda tidak menginstal NRPE di sistem Anda. Gunakan perintah berikut untuk menginstal klien NRPE di sistem berbasis Debian Anda.
    pembaruan apt sudo  sudo apt instal nagios-nrpe-server  

    Perintah di atas adalah untuk sistem yang berbasis di Debian. Untuk menginstal NRPE pada sistem berbasis Redhat, kunjungi tutorial ini.

  2. Setelah skrip diuji dan berfungsi dengan benar, Anda dapat menginstalnya sebagai plugin Nagios dengan menyalinnya ke “/USR/LOCAL/NAGIOS/LIBEXEC” direktori di server nagios.
    sudo mv check_disk_uses.sh/usr/lib/nagios/plugins/check_disk_uses.SH  sudo chmod +x/usr/lib/nagios/plugins/check_disk_uses.SH  
  3. Kemudian, edit file konfigurasi NRPE “/Etc/nagios/nrpe.CFG ” dan tambahkan perintah Anda untuk memantau beberapa disk sistem Anda. Perintah [check_disk_uses] =/usr/lib/nagios/plugins/check_disk_uses.sh /dev /sda1
    1Perintah [check_disk_uses] =/usr/lib/nagios/plugins/check_disk_uses.sh /dev /sda1

Anda bisa memanggil 'check_disk_uses' Perintah dari server nagios menggunakan 'check_nrpe' Perintah dan dapatkan hasilnya.

Langkah 5: Uji dengan check_nrpe Memerintah

Sekarang, jalankan perintah di bawah ini dari server nagios Anda, di mana 192.168.10.100 adalah IP dari sistem klien NRPE.

./check_nrpe -h 192.168.10.100 -C check_disk_uses  OK - 22% ruang disk yang digunakan. 

Langkah 6: Mengkonfigurasi Nagios untuk menggunakan plugin ini

Setelah menginstal plugin, Anda perlu mengkonfigurasi nagios untuk menggunakannya. Ini melibatkan pembuatan definisi perintah dalam file konfigurasi nagios (e.G., /usr/local/nagios/etc/objek/perintah.CFG) dan membuat definisi layanan untuk menentukan bagaimana dan kapan plugin harus dijalankan.

  1. Pertama mengedit “/Etc/nagios/objek/perintah.CFG ” file konfigurasi dan tentukan perintah di bawah ini: tentukan perintah command_name check_disk_uses command_line $ user1 $/check_nrpe -h $ hostaddress $ -c check_disk_uses
    1234Tentukan perintah command_name check_disk_uses command_line $ user1 $/check_nrpe -h $ hostaddress $ -c check_disk_uses

  2. Kemudian buat layanan baru Temukan untuk mengelola layanan itu: tentukan layanan gunakan layanan generik host_name 192.168.10.Layanan 100 Service_Description Check_command check_disk_uses
    123456Tentukan layanan Gunakan host-service generik host_name 192.168.10.Layanan 100 Service_Description Check_command check_disk_uses

  3. Untuk memverifikasi file konfigurasi, jalankan 'nagios -v' perintah seperti:
    /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.CFG  

    Jika ada kesalahan yang ditampilkan, perbaiki sebelum memulai kembali layanan Nagios.

  4. Akhirnya restart layanan Nagios untuk menerapkan perubahan.
    Layanan Nagios restart  

Kesimpulan

Ini adalah garis besar umum dengan contoh dunia nyata dari proses yang terlibat dalam membuat plugin Nagios menggunakan skrip bash. Mungkin ada langkah atau pertimbangan tambahan tergantung pada persyaratan spesifik plugin Anda.