Jak utworzyć własną wtyczkę Nagios za pomocą skryptu Bash Shell

Jak utworzyć własną wtyczkę Nagios za pomocą skryptu Bash Shell

Nagios to popularny system monitorowania open source, którego można wykorzystać do monitorowania dostępności i wydajności różnych zasobów, takich jak serwery, sieci i usługi. Jednym ze sposobów rozszerzenia możliwości Nagios jest tworzenie niestandardowych wtyczek za pomocą skryptów Bash. Oto ogólny zarys kroków związanych z tworzeniem wtyczki Nagios za pomocą skryptu Bash:

Należy zauważyć, że wtyczka Nagios powinna być zaprojektowana do szybkiego i wydajnego działania, ponieważ będzie wykonywana w regularnych odstępach czasu. Oznacza to, że wtyczka powinna unikać wykonywania niepotrzebnych lub czasochłonnych zadań i powinna jak najszybciej zwracać wyjście.

Podczas tworzenia wtyczki Nagios należy pamiętać o kilku najlepszych praktykach:

  • Użyj wyraźnego i zwięzłego wyjścia: Wyjście wtyczki powinno być łatwe do zrozumienia i dostarczyć jasnych informacji o statusie monitorowanego zasobu. Unikaj używania języka kompleksowego lub wypełnionego żargonem i staraj się zachować wyjście tak krótkie, jak to możliwe.
  • Zwróć odpowiednie kody stanu: Wtyczka powinna zwrócić prawidłowy kod stanu na podstawie statusu monitorowanego zasobu. Na przykład, jeśli zasób działa poprawnie, wtyczka powinna zwrócić kod stanu 0 (sukces). Jeśli wystąpił problem z zasobem, wtyczka powinna zwrócić kod stanu 1 (ostrzeżenie) lub 2 (krytyczny) w zależności od nasilenia problemu.
  • Zwracaj dane wydajności: W razie potrzeby wtyczka powinna zwrócić dane wydajności w postaci nazwy = wartość [uoM]; [ostaruj]; [crit]; [min]; [Max]. Pozwala to Nagios śledzić wydajność zasobu w czasie i powiadomić użytkownika, jeśli zostanie on poza akceptowalnymi progami.
  • Jeśli to możliwe, użyj Check_NRPE: Jeśli wtyczka będzie uruchomiona na zdalnym serwerze, na ogół bardziej wydajne jest korzystanie z narzędzia Check_NRPE do wykonywania wtyczki, zamiast uruchamiać ją bezpośrednio nad SSH. Unika to kosztów ustanowienia połączenia SSH dla każdego wykonania wtyczki.

Postępując zgodnie z tymi najlepszymi praktykami, możesz stworzyć wydajne i skuteczne wtyczki Nagios, które pomogą Ci monitorować zasoby, które są ważne dla Twojej organizacji.

Krok 1: Określ cel wtyczki

Pierwszym krokiem w tworzeniu wtyczki Nagios jest ustalenie, do czego zostanie użyta wtyczka. Czy zostanie użyty do sprawdzenia statusu usługi, monitorowania wydajności serwera lub wykonania innego zadania? Pomoże to zaprojektować wtyczkę i napisać niezbędny kod.

Krok 2: Napisz skrypt powłoki

Gdy dowiesz się, do czego zostanie użyta wtyczka, możesz zacząć pisać skrypt bash. Skrypt powinien zawierać niezbędną logikę do wykonania zadania, do którego jest zaprojektowana. Powinien także zawierać dane wyjściowe w formacie oczekiwanym przez Nagios, który składa się z kodu stanu (e.G., 0 dla sukcesu, 1 do ostrzeżenia, 2 dla krytycznych), komunikat i opcjonalne dane dotyczące wydajności.

sudo vim check_disk_uses.cii  

Dodaj poniższy skrypt.

#!/usr/bin/env bash ### ======================================================================================================== ============================== ### ### wtyczka Nagios do sprawdzenia zastosowań dysku dla danego dysku lub mocowania Point ### ### używa: ./check_disk_uses.cii / ### ### ./check_disk_uses.sh /mnt ### ### ./check_disk_uses.sh /dev /sda1 ### ### ============================================================================================================================ =============================== ### ### ============================ ================================================== ========= ### ### Funkcje ### ### ====================================================== ========================================== ### Calculate_disk_uses () # Oblicz dysk Użyj użyty_disk_space = "df -h $ Mount_point | grep -v FileSystem | awk" print 5 $ '| SED 's/%// g "if (($ używane_disk_space> = 0 && $ używany_disk_space = 81 && $ używany_disk_space = 91 && $ używany_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 ### ======================================================================================================== ============================== ###### wtyczka Nagios do sprawdzenia zastosowań dysku dla danego dysku lub mocowania Point ###### używa: ./check_disk_uses.cii / ###### ./check_disk_uses.sh /mnt ###### ./check_disk_uses.sh /dev /sda1 ###### ============================================================================================================================= =============================== ### ### ============================ ================================================== ========= ###### ####### ======================================================== ========================================== ### Calculate_disk_uses () # Oblicz dysk używa użyty_disk_space = 'df -h $ Mount_point | GREP -V FILKESystem | awk 'drukuj 5 $' | sed 's/%// g' 'if (($ sose_disk_space> = 0 && $ używany_disk_space<=80)); then echo "OK - $USED_DISK_SPACE% of disk space used." exit 0 elif (($USED_DISK_SPACE>= 81 && $ używany_disk_space<=90)); then echo "WARNING - $USED_DISK_SPACE% of disk space used." exit 1 elif (($USED_DISK_SPACE>= 91 && $ używane_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 ###### ======================================================================= ###

Zapisz swój skrypt i zweryfikuj, uruchamiając go ręcznie

Krok 3: Przetestuj skrypt

Przed użyciem skryptu jako wtyczki Nagios, ważne jest, aby go przetestować, aby upewnić się, że działa poprawnie i tworzy oczekiwane wyjście. Możesz przetestować skrypt, uruchamiając go z wiersza poleceń i sprawdzając, czy tworzy prawidłowe wyjście.

bash check_disk_uses.cii /  

Powinno to działać poprawnie, przed skonfigurowaniem go z serwerem Nagios.

Krok 4: Zainstaluj wtyczkę

NRPE to zdalne wykonanie wtyczki Nagios, która działa na maszynach klientów, akceptuje żądania z serwera Nagios, przetwarza żądanie i wysyła wynik z powrotem na serwer Nagios.

  1. Jeśli nie masz zainstalowanego NRPE w swoim systemie. Użyj następujących poleceń, aby zainstalować klienta NRPE w systemach opartych na debian.
    Aktualizacja sudo apt  sudo apt instal Nagios-NRPE-SERVER  

    Powyższe polecenia dotyczą systemów opartych na debian. Aby zainstalować NRPE w systemie opartym na Redhat, odwiedź ten samouczek.

  2. Po prawidłowym przetestowaniu skryptu możesz zainstalować go jako wtyczkę Nagios, kopiując ją do „/Usr/local/nagios/libexec” katalog na serwerze Nagios.
    sudo mv check_disk_uses.sh/usr/lib/nagios/wtyczki/check_disk_uses.cii  sudo chmod +x/usr/lib/nagios/wtyczki/check_disk_uses.cii  
  3. Następnie edytuj plik konfiguracyjny NRPE „/Etc/nagios/nrpe.CFG ” i dodaj swoje polecenie, aby monitorować niektóre dyski systemu. polecenie [check_disk_uses] =/usr/lib/nagios/wtyczki/check_disk_uses.sh /dev /sda1
    1polecenie [check_disk_uses] =/usr/lib/nagios/wtyczki/check_disk_uses.sh /dev /sda1

Możesz zadzwonić „check_disk_uses” polecenie z serwera Nagios za pomocą „check_nrpe” polecić i odzyskać wyniki.

Krok 5: test z Check_nrpe Komenda

Teraz uruchom poniższe polecenie z serwera Nagios, gdzie 192.168.10.100 to adres IP systemu klienta NRPE.

./check_nrpe -h 192.168.10.100 -C check_disk_uses  OK - 22% używanej przestrzeni dysku. 

Krok 6: Skonfiguruj Nagios, aby użyć tej wtyczki

Po zainstalowaniu wtyczki musisz skonfigurować Nagios, aby z niej korzystać. Obejmuje to tworzenie definicji polecenia w pliku konfiguracyjnym Nagios (e.G., /usr/local/nagios/etc/obiektu/polecenia.CFG) i tworzenie definicji usługi, aby określić, w jaki sposób i kiedy należy uruchomić wtyczkę.

  1. Najpierw edytuj „/Etc/nagios/obiekty/polecenia.CFG ” Plik konfiguracyjny i zdefiniuj poniższe polecenie: Zdefiniuj polecenie Command_name Check_Disk_uses Command_Line $ user1 $/Check_Nrpe -h $ hostAddress $ -c Check_Disk_uses
    1234Zdefiniuj polecenie Command_name Check_Disk_uses Command_Line $ user1 $/Check_Nrpe -h $ hostAddress $ -c Check_Disk_uses

  2. Następnie utwórz nową usługę, aby zarządzać tą usługą: Zdefiniuj usługę Użyj ogólnej nazwy_nomierności hosta 192.168.10.100 serwis_description Check Check_Command Check_Disk_uses
    123456Zdefiniuj usługę Użyj ogólnej nazwy Hostu 192.168.10.100 serwis_description Check Check_Command Check_Disk_uses

  3. Aby zweryfikować pliki konfiguracyjne, uruchom „nagios -v” polecenie jak:
    /usr/local/nagios/bin/nagios -v/usr/local/nagios/etc/nagios.CFG  

    Jeśli wyświetlony zostanie jakikolwiek błąd, napraw go przed ponownym uruchomieniem usługi Nagios.

  4. Wreszcie uruchom ponownie usługę Nagios, aby zastosować zmiany.
    Uruchom nagiety serwisowe  

Wniosek

Jest to ogólny zarys z rzeczywistym przykładem procesu związanego z tworzeniem wtyczki Nagios za pomocą skryptu Bash. Mogą wystąpić dodatkowe kroki lub rozważania w zależności od konkretnych wymagań wtyczki.