Zabbix Item mit traceroute Routen überwachen monitoren
Aus znilwiki
Bei einem Kunden sollte eine Route zu einem anderen Standort überwacht werden.
Er wollte einen Alarm wenn der Datenverkehr über die DSL-Ersatzleitung statt über die Glasfaserleitung geht.
Die aktuelle Route konnte mit einem traceroute
abgefragt werden, in diesem Falle ist dann der 3. Eintrag anders:
traceroute -n 172.16.0.1
Ausgabe:
traceroute to 172.16.0.1 (172.16.0.1), 30 hops max, 60 byte packets 1 192.168.1.254 0.620 ms 0.606 ms 0.598 ms 2 192.168.2.254 0.478 ms 0.485 ms 0.478 ms 3 192.168.254.92 1.947 ms 2.059 ms 1.862 ms 4 10.10.20.4 9.042 ms 9.519 ms 9.177 ms 5 10.10.20.5 16.638 ms 16.713 ms 16.762 ms 6 10.11.2.1 19.569 ms 19.919 ms 19.797 ms 7 172.16.0.1 18.947 ms 18.878 ms 18.814 ms
In diesem Fall war die 3. Zeile interessant.
Eine .92
bedeutete "Glasfaser" und .91
stand für DSL.
Für die Überwachung habe ich im externalscripts
Verzeichnis von Zabbix das folgende Bash Skript angelegt:
nano znil.traceroute.sh
Inhalt:
#!/bin/bash
# Parameter 1: Ziel IP-Adresse
# Parameter 2: Nummer des Eintrages der zurück gegeben werden soll
traceroute -n $1 | grep " $2 " | cut -d ' ' -f 4
Nun noch ausführbar machen:
chmod +x znil.traceroute.sh
Das Skript funktioniert wie folgt:
./znil.traceroute.sh Ziel-IP Nummer-des-Hops
Für obiges Beispiel also
./znil.traceroute.sh 172.16.0.1 3
liefert uns die Rückgabe
192.168.254.92
Als Item in Zabbix funktioniert das wie folgt:
znil.traceroute.sh[Ziel-IP,Nummer-des-hops]
Mit einem Value-Mapping wird die Anzeige eindeutig:
Dazu habe ich die IP's einfach entsprechend angelegt: