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-Code | Status |
| In Ordnung | |
| 1 | WARNUNG |
| 2 | Kritisch |
| 3 | UNBEKANNT |
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!



