MikroTik RouterOS mit Nagios überwachen – check_routeros

artpic_check_mikrotik-routeros1

Den Status über die installierte RouterOS Version und anstehende Updates möchte ich mit Nagios (Check_MK) überwachen.

Der Nagios Server führt das check_routeros script vom MikroTik Router über SSH aus und speichert die Ausgabe in einem logfile pro Router welches dann lokal für das Monitoring weiterverarbeitet wird.

In der WinBox unter System → Scripts, das check_routeros script:

## check for update
/system package update
check-for-updates

## some variables
:local installedVersion [/system package get system version];
:local boardName [/system resource get board-name];

:if ([get installed-version] != [get latest-version]) do={
:put ("RouterOS $installedVersion - $boardName ** update to Version $[/system package update get latest-version] available **")
 } else={
 :put ("RouterOS $installedVersion - $boardName")
 }
}

Auf dem Nagios Server das check_mikrotik-RouterOS script:

#!/bin/sh

print_usage() {
        echo ""
        echo "Usage: $0 HOSTNAME (or IP)"
        echo ""
}

if [ "$#" -ne "1" ]; then
        print_usage;
        exit;
fi

logfile="/opt/omd/sites/nagios/var/log/mikrotik/check_mikrotik-routeros_$1.log"
routeros=`ssh nagios@$1 /system script run check_routeros | tail -n 1 >$logfile`

if grep -q "available" $logfile;
        then
          cat $logfile
          exit 1
         else
          cat $logfile
          exit 0
fi

Neuen klassischen host check anlegen → check_mikrotik-RouterOS $HOSTADDRESS$

Da dieser check nicht alle 5 Minuten laufen muss habe ich in der ~/etc/check_mk/main.mk das check Intervall auf 12 Stunden erhöht.

# service check alle 12 Stunden für check_RouterOS
extra_service_conf ["normal_check_interval"] = [
   ( "720", ALL_HOSTS, ["check_RouterOS"] ),
]

Schreibe einen Kommentar