Nagios Router alive Plugin
Vor einige Zeit wollte ich meinem Nagios Netzwerk Strukturen beibringen. Allerding stieß ich schnell auf das Problem das viele Router, gerade die grosser ISP’s, nicht auf ping’s antworten.
Um dennoch verlässlich prüfen zu können ob eine Internet Verbindung besteht, habe ich mich einer Eigenschaft des IP Protokolls bedient, die auch bei traceroute genutzt wird.
#!/bin/bash
GW=ISPs Router
HOP=HOPs bis Router
CHECK=$(ping -c1 -t$HOP 141.1.1.1 | grep -c "From $GW")
if [ $CHECK = 1 ]; then
echo "OK - Router alive"
exit 0
else
echo "CRITICAL - Router dead"
exit 2
fi
Das Script ping’t eine IP Adresse im Internet, welche ist im Prinzip völlig egal, wichtig ist nur das das Ziel ins Internet geroutet wird; da wir dem ICMP Packet eine so geringe TTL setzen das unser ISP Router das Packet bereits verwirft, uns das aber quittiert. Kriegen wir vom Router eine “TTL exeeded” Meldung wissen wir das die Internetverbindung verfügbar ist. Kriegen wir diese Meldung nicht können wir davon ausgehen das der Router nicht verfügbar ist.