SECTOR NORD AG Tipp des Monats


[SNAG-View] Nagios-Community Plugins installieren

von Andreas Gerliz

Neben den Standard-Nagios-Plugins, die bei jeder SNAG-View oder Nagios-Installation mitinstalliert werden, bietet die Nagios-Community viele weitere Plugins für viele Anwendungszwecke an:
https://exchange.nagios.org/directory/Plugins 

Hier können verschiedenste spezielle Plugins für z.B. Fortigate-Firewall-Checks oder auch Mail-Queuestatus-Checks gefunden werden.
Grundsätzlich sind diese Plugins Nagios-konform und damit SNAG-View-kompatibel.

Sollten Abhängigkeiten für bestimmte Plugins fehlen, diese bitte nicht installieren!
In diesem Fall kontaktieren Sie uns, damit wir prüfen können, ob die notwendigen Pakete nachinstalliert werden können.

In einem Beispiel werden wir nun das Nagios-Community-Plugin "check_file_content" auf dem SNAG-View-Server installieren und später einen entsprechenden Service dafür einrichten.
Das Plugin prüft eine Datei, ob sie ein bestimmtes Pattern enthält bzw. nicht enthält. 

https://exchange.nagios.org/directory/Plugins/Log-Files/Check-File-Content/details

 

  • Nagios-Community-Plugin herunterladen und im Plugin-Verzeichnis des SNAG-View hinterlegen:

    ~# cd /tmp/
    /tmp/# unzip master.zip
    /tmp/# cd ./nagios-check_file_content-master/
    /tmp/nagios-check_file_content-master/# ll
    -rwxr-xr-x 1 root root  2653 Dec 18 11:51 check_file_content.pl
    -rw-r--r-- 1 root root 18025 May 27  2016 LICENSE
    -rw-r--r-- 1 root root   466 May 27  2016 README.md
     
     
    /tmp/nagios-check_file_content-master/# cp check_file_content.pl /var/lib/nagios/libexec-customer/
  • Berechtigung erteilen, damit Nagios das Plugin ausführen darf:

    /tmp/nagios-check_file_content-master/# cd /var/lib/nagios/libexec-customer/
    /var/lib/nagios/libexec-customer/# chmod --reference=/var/lib/nagios/libexec/check_nrpe ./check_file_content.pl
    /var/lib/nagios/libexec-customer/# chown --reference=/var/lib/nagios/libexec/check_nrpe ./check_file_content.pl

    Damit bekommt das Plugin die gleichen Berechtigungen und Eigentümer wie das Nagios-Standard-Plugin "check_nrpe".
     

  • Auf den Nagios-User wechseln und testen, ob das Plugin aufgerufen werden kann:

    /var/lib/nagios/libexec-customer/# su - nagios
    -bash-4.2$ cd libexec-customer/
    -bash-4.2$ ./check_file_content.pl
    Usage : check_file_content.pl -f file -i include -e exclude -n lines_number [-h]
     
    Options :
     -f
        Full path to file to analyze
     -n
        Number of lines to find (default is 1)
     -i
        Include pattern (can add multiple include)
     -e
        Exclude pattern (can add multiple include)
     -h, --help
        Print this help screen
     
    Example : check_file_content.pl -f /etc/passwd -i 0 -e root -n 5
  • Einen Test gegen das Logfile /var/log/snagview/application.log laufen lassen, dass das Pattern 'listening' mindestens einmal enthalten soll:

    -bash-4.2$ ./check_file_content.pl -f /var/log/snagview/application.log -i listening -n 1
    OK for /var/log/snagview/application.log (2 found)

 

Das Plugin liefert ein korrektes Ergebnis zurück und funktioniert somit. Nun kann es im SNAG-View-Frontend als Service angelegt werden.

  1. Im Frontend F4 drücken, um den Objektadmin zu öffnen.
  2. Objekttype "Checkcommand" auswählen.
  3. Grünen Plus-Button zum Erstellen eines neuen Checkcommands anklicken
  4. Konfiguration wie folgt ausfüllen:

→ Bezeichnung frei wählbar
→ Befehlszeile startet mit $USER2$, da dies das Makro für /var/lib/nagios/libexec-customer ist
→ Parameter als Argumente mitgegeben, damit diese später dynamisch setzbar sind
→ Parameter der Reihenfolge nach benamen

Nun kann ein Service für z.B. den SNAG-View-Host erstellt werden.
Dazu den Host SNAG-View editieren und im Reiter Services "Neuen Service erstellen" klicken und entsprechend ausfüllen:

→ Bezeichnung frei wählbar
→ Standard-Service-Template nutzen (Basistemplate)
→ Checkcommand auswählen
→ Parameter entsprechend eintragen

Wenn die neuen Konfigurationen abgespeichert wurden, muss der Export ausgeführt werden.
Danach sollte der Service beim Host SNAG-View erscheinen und einmal manuell ausgeführt werden.
Das Ergebnis sieht in meinem Fall dann wie folgt aus: