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 popular yang boleh digunakan untuk memantau ketersediaan dan prestasi pelbagai sumber, seperti pelayan, rangkaian, dan perkhidmatan. Salah satu cara untuk memperluaskan keupayaan Nagios adalah dengan membuat plugin tersuai menggunakan skrip bash. Berikut adalah garis besar langkah -langkah yang terlibat dalam membuat plugin Nagios menggunakan skrip bash:

Adalah penting untuk diperhatikan bahawa plugin Nagios harus direka untuk berjalan dengan cepat dan cekap, kerana ia akan dilaksanakan secara berkala. Ini bermakna bahawa plugin harus mengelakkan melakukan tugas yang tidak perlu atau memakan masa, dan harus mengembalikan output secepat mungkin.

Terdapat beberapa amalan terbaik untuk diingat ketika membuat plugin Nagios:

  • Gunakan output yang jelas dan ringkas: Output plugin harus mudah difahami dan memberikan maklumat yang jelas mengenai status sumber yang dipantau. Elakkan menggunakan bahasa yang penuh dengan kompleks atau jargon, dan cuba mengekalkan output seberapa pendek yang mungkin.
  • Mengembalikan kod status yang sesuai: Plugin harus mengembalikan kod status yang betul berdasarkan status sumber yang dipantau. Sebagai contoh, jika sumber berfungsi dengan betul, plugin harus mengembalikan kod status 0 (kejayaan). Sekiranya terdapat masalah dengan sumber, plugin harus mengembalikan kod status 1 (amaran) atau 2 (kritikal) bergantung kepada keterukan isu.
  • Pulangan data prestasi: Jika relevan, plugin harus mengembalikan data prestasi dalam bentuk nama = nilai [uom]; [wadn]; [crit]; [min]; [max]. Ini membolehkan Nagios menjejaki prestasi sumber dari masa ke masa dan memberi amaran kepada pengguna jika ia jatuh di luar ambang yang boleh diterima.
  • Gunakan check_nrpe jika mungkin: Sekiranya plugin akan berjalan pada pelayan jauh, biasanya lebih cekap untuk menggunakan utiliti check_nrpe untuk melaksanakan plugin daripada menjalankannya secara langsung melalui SSH. Ini mengelakkan overhead mewujudkan sambungan SSH untuk setiap pelaksanaan plugin.

Dengan mengikuti amalan terbaik ini, anda boleh membuat plugin Nagios yang cekap dan berkesan yang akan membantu anda memantau sumber yang penting bagi organisasi anda.

Langkah 1: Tentukan tujuan plugin

Langkah pertama dalam membuat plugin Nagios adalah untuk menentukan apa yang akan digunakan oleh plugin. Adakah ia akan digunakan untuk memeriksa status perkhidmatan, memantau prestasi pelayan, atau melaksanakan tugas lain? Ini akan membantu anda merancang plugin dan menulis kod yang diperlukan.

Langkah 2: Tulis skrip shell

Sebaik sahaja anda tahu apa plugin akan digunakan, anda boleh mula menulis skrip bash. Skrip harus memasukkan logik yang diperlukan untuk melaksanakan tugas yang direka oleh plugin. Ia juga harus memasukkan output dalam format yang diharapkan oleh Nagios, yang terdiri daripada kod status (e.g., 0 Untuk kejayaan, 1 untuk amaran, 2 untuk kritikal), mesej, dan data prestasi pilihan.

sudo vim check_disk_uses.sh  

Tambahkan skrip di bawah.

#!/usr/bin/env bash ### ========================================== ============================= ### ### Plugin Nagios untuk memeriksa penggunaan cakera untuk cakera atau gunung yang diberikan Point ### ### menggunakan: ./check_disk_uses.sh / ### ### ./check_disk_uses.sh /mnt ### ### ./check_disk_uses.SH /DEV /SDA1 ### ### ========================================= ============================== #####=============== ================================================= ======== ### ### Fungsi ### ### ================================ ========================================= ### CALLULATE_DISK_USES () # Hitung Cakera Menggunakan Use_disk_space = "df -h $ mount_point | grep -v filesystem | awk" print $ 5 '| sed 's/%// g "if (($ used_disk_space> = 0 && $ used_disk_space = 81 && $ used_disk_space = 91 && $ used_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 ### ### ======================================================================= ###
12345678910111213141516171819202122223242526272829303132333435363737383940414142434445464748#!/usr/bin/env bash ### ========================================== ============================= ###### Plugin Nagios untuk memeriksa penggunaan cakera untuk cakera atau gunung tertentu Point ###### Kegunaan: ./check_disk_uses.sh / ###### ./check_disk_uses.sh /mnt ###### ./check_disk_uses.SH /DEV /SDA1 ###### ========================================== ============================== #####=============== ================================================= ========= ###### Fungsi ######==================================================== ========================================= ### CALLULATE_DISK_USES () # Hitung Cakera Menggunakan Use_disk_space = 'df -h $ mount_point | GREP -V FILESYSTEM | awk 'cetak $ 5' | sed 's/%// g' 'if (($ used_disk_space> = 0 && $ used_disk_space<=80)); then echo "OK - $USED_DISK_SPACE% of disk space used." exit 0 elif (($USED_DISK_SPACE>= 81 && $ used_disk_space<=90)); then echo "WARNING - $USED_DISK_SPACE% of disk space used." exit 1 elif (($USED_DISK_SPACE>= 91 && $ used_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 sahkan dengan menjalankannya secara manual

Langkah 3: Uji skrip

Sebelum menggunakan skrip sebagai plugin Nagios, penting untuk mengujinya untuk memastikan ia berfungsi dengan betul dan menghasilkan output yang diharapkan. Anda boleh menguji skrip dengan menjalankannya dari baris arahan dan mengesahkan bahawa ia menghasilkan output yang betul.

Bash check_disk_uses.sh /  

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

Langkah 4: Pasang plugin

NRPE adalah pelaksanaan plugin jauh Nagios yang berjalan pada mesin klien, menerima permintaan dari pelayan Nagios, proses yang meminta, dan menghantar hasilnya kembali ke pelayan Nagios.

  1. Sekiranya anda tidak memasang NRPE pada sistem anda. Gunakan arahan berikut untuk memasang klien NRPE pada sistem berasaskan debian anda.
    Kemas kini sudo apt  sudo apt memasang nagios-nrpe-server  

    Perintah di atas adalah untuk sistem berasaskan Debian. Untuk memasang NRPE pada sistem berasaskan Redhat, lawati tutorial ini.

  2. Setelah skrip diuji dan berfungsi dengan betul, anda boleh memasangnya sebagai plugin Nagios dengan menyalinnya ke "/Usr/local/nagios/libexec" Direktori di pelayan Nagios.
    sudo mv check_disk_uses.sh/usr/lib/nagios/plugin/check_disk_uses.sh  sudo chmod +x/usr/lib/nagios/plugins/check_disk_uses.sh  
  3. Kemudian, edit fail konfigurasi NRPE "/Etc/nagios/nrpe.CFG ” dan tambahkan arahan anda untuk memantau beberapa cakera 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 boleh menghubungi 'check_disk_uses' perintah dari pelayan Nagios menggunakan 'check_nrpe' perintah dan dapatkan hasilnya kembali.

Langkah 5: Uji dengan check_nrpe Perintah

Sekarang, jalankan arahan di bawah dari pelayan Nagios anda, di mana 192.168.10.100 adalah IP sistem klien NRPE.

./check_nrpe -h 192.168.10.100 -C check_disk_uses  Ok - 22% ruang cakera yang digunakan. 

Langkah 6: Konfigurasikan Nagios untuk menggunakan plugin ini

Setelah memasang plugin, anda perlu mengkonfigurasi Nagios untuk menggunakannya. Ini melibatkan membuat definisi arahan dalam fail konfigurasi Nagios (e.g., /usr/local/nagios/etc/objek/perintah.cfg) dan mencipta definisi perkhidmatan untuk menentukan bagaimana dan bila plugin harus dijalankan.

  1. Edit pertama "/Etc/nagios/objek/perintah.CFG ” Fail konfigurasi dan tentukan arahan di bawah: 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 Cari Perkhidmatan Baru untuk Mengurus Perkhidmatan itu: Tentukan Perkhidmatan Gunakan Generik-Perkhidmatan Host_Name 192.168.10.100 perkhidmatan_description CHECK_COMMAND CHECK_DISK_USES
    123456Tentukan perkhidmatan menggunakan host_name perkhidmatan generik 192.168.10.100 perkhidmatan_description CHECK_COMMAND CHECK_DISK_USES

  3. Untuk mengesahkan fail konfigurasi, jalankan 'Nagios -v' perintah seperti:
    /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.cfg  

    Sekiranya sebarang ralat dipaparkan, selesaikannya sebelum memulakan semula perkhidmatan Nagios.

  4. Akhirnya mulakan semula perkhidmatan Nagios untuk menerapkan perubahan.
    Perkhidmatan Nagios dimulakan semula  

Kesimpulan

Ini adalah garis besar dengan contoh dunia sebenar proses yang terlibat dalam membuat plugin Nagios menggunakan skrip bash. Mungkin terdapat langkah atau pertimbangan tambahan bergantung kepada keperluan khusus plugin anda.