Website-Suche

Wie man Nagios-Plugins mit Python auf Ubuntu 12.10 erstellt


Einführung

Python ist ein beliebter Befehlsprozessor, der standardmäßig auf Linux verfügbar ist.

Wir haben zuvor behandelt, wie man den Nagios-Überwachungsserver auf Ubuntu 12.10 x64 installiert.

Diesmal werden wir diese Idee erweitern und Nagios-Plugins mit Python erstellen.

Diese Plugins werden auf dem VPS des Kunden ausgeführt und über NRPE aktiviert.

Schritt 1 - Installieren Sie NRPE auf dem Client-VPS

apt-get install -y python nagios-nrpe-server
useradd nrpe && update-rc.d nagios-nrpe-server defaults

Schritt 2 - Erstellen Sie Ihr Python-Skript

Es wäre eine gute Idee, Ihre Plugins im selben Verzeichnis wie andere Nagios-Plugins (/usr/lib/nagios/plugins/ zum Beispiel) zu behalten.

Für unser Beispiel werden wir ein Skript erstellen, das die aktuelle Festplattennutzung überprüft, indem es "df" aus der Shell aufruft und eine Warnung ausgibt, wenn mehr als 85 % genutzt sind:

#!/usr/bin/python
import os, sys
used_space=os.popen("df -h / | grep -v Filesystem | awk '{print $5}'").readline().strip()

if used_space < "85%":
        print "OK - %s of disk space used." % used_space
        sys.exit(0)
elif used_space == "85%":
        print "WARNING - %s of disk space used." % used_space
        sys.exit(1)
elif used_space > "85%":
        print "CRITICAL - %s of disk space used." % used_space
        sys.exit(2)
else:
        print "UKNOWN - %s of disk space used." % used_space
        sys.exit(3)

Wir werden dieses Skript in /usr/lib/nagios/plugins/usedspace.py speichern und es ausführbar machen:

chmod +x /usr/lib/nagios/plugins/usedspace.py

Das gesamte Nagios NRPE-Plugin reduziert sich darauf, Rückgabewerte zu verwenden, um Benachrichtigungen auszulösen.

Du führst dein Logikniveau in das Skript ein, und wenn du eine Warnung auslösen möchtest (ob es OK, WARNUNG, KRITISCH oder UNBEKANNT ist) - gibst du einen Exit-Code an.

Beziehen Sie sich auf die folgenden Nagios-Austrittscodes:

Nagios Ausstiegscodes

Exit-CodeStatus
In Ordnung
1WARNUNG
2Kritisch
3UNBEKANNT

Schritt 3 - Fügen Sie Ihr Skript zur NRPE-Konfiguration auf dem Client-Host hinzu

Löschen Sie die ursprüngliche /etc/nagios/nrpe.cfg und fügen Sie die folgenden Zeilen hinzu:

log_facility=daemon
pid_file=/var/run/nagios/nrpe.pid
server_port=5666
nrpe_user=nrpe
nrpe_group=nrpe
allowed_hosts=198.211.117.251
dont_blame_nrpe=1
debug=0
command_timeout=60
connection_timeout=300
include_dir=/etc/nagios/nrpe.d/

command[usedspace_python]=/usr/lib/nagios/plugins/usedspace.py

Wo 198.211.117.251 unser Überwachungsserver aus früheren Artikeln ist. Ändern Sie diese in Ihre eigenen Werte.

Stellen Sie sicher, dass Sie den Nagios NRPE-Dienst neu starten:

service nagios-nrpe-server restart

Schritt 4 - Fügen Sie Ihr neues Kommando zu den Nagios-Überprüfungen auf dem Nagios-Überwachungsserver hinzu

Definieren Sie einen neuen Befehl in /etc/nagios/objects/commands.cfg

define command{
        command_name    usedspace_python
        command_line    $USER1$/check_nrpe -H $HOSTADDRESS$ -c usedspace_python
        }

Wie Sie sehen können, verwendet es NRPE, um TCP-Verbindungen zu Port 5666 herzustellen und den Befehl 'usedspace_python' auszuführen, den wir in /etc/nagios/nrpe.cfg auf diesem Remote-Host definiert haben.

Fügen Sie diese Überprüfung zu Ihrer Nagios-Konfigurationsdatei für den Client-VPS hinzu.

Für unser Beispiel werden wir einen Server namens UbuntuDroplet überwachen und /etc/nagios/servers/UbuntuDroplet.cfg bearbeiten.

define service {
        use                             generic-service
        host_name                       UbuntuDroplet
        service_description             Custom Disk Checker In Python
        check_command                   usedspace_python
        }

Nagios neu starten:

service nagios restart

Überprüfen Sie, ob die neue Überprüfung funktioniert:

Und du bist fertig!