diff options
Diffstat (limited to 'mrpe/check_olsr-neigh.sh')
-rwxr-xr-x | mrpe/check_olsr-neigh.sh | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/mrpe/check_olsr-neigh.sh b/mrpe/check_olsr-neigh.sh new file mode 100755 index 0000000..0365eac --- /dev/null +++ b/mrpe/check_olsr-neigh.sh @@ -0,0 +1,44 @@ +#!/bin/bash + +readonly NAGIOS_OK=0 +readonly NAGIOS_WARNING=1 +readonly NAGIOS_CRITICAL=2 +readonly NAGIOS_UNKNOWN=3 + +function main { + local warn_level="$1" + local crit_level="$2" + + curlout=$(curl --connect-timeout 5 --max-time 10 -s http://localhost:2006/neigh) + if [ $? -ne 0 ]; then + echo "UNKNOWN - failed to fetch olsr neighbours" + return "$NAGIOS_UNKNOWN" + fi + + local neighs=$(echo "$curlout" | awk '($0 != "" && NR > 2) { print($1) }') + local neighs_len=$(echo -n "$neighs" | wc -l) + + local code="$NAGIOS_OK" + local state="OK" + local tag="" + + if [ $neighs_len -le $crit_level ]; then + code="$NAGIOS_CRITICAL" + state="CRIT" + tag="(!!)" + elif [ $neighs_len -le $warn_level ]; then + code="$NAGIOS_WARNING" + state="WARN" + tag="(!)" + fi + + echo "$state - $neighs_len$tag olsr neighbours found." + exit "$code" +} + +if [ -z "$1" ] || [ -z "$2" ]; then + echo "UNKNOWN - please specify warn and critical values for neighbour counts" + exit "$NAGIOS_UNKNOWN" +fi + +main "$1" "$2" |