MikroTik RouterOS mit Checkmk überwachen – check_ros

Die installierte RouterOS Version und anstehende Updates möchte ich mit Checkmk überwachen.

20.01.2022 - Skript für RouterOS 7 angepasst
05.06.2020 - Anleitung aktualisiert (Checkmk Raw 1.6.0)

Der Checkmk 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.

Auf dem MikroTik Router 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];    # for RouterOS 6.x
:local installedVersion [/system package get routeros version];   # for RouterOS 7.x
:local boardName [/system resource get board-name];

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

Auf dem Checkmk Server das ~/local/lib/nagios/plugins/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/SITENAME/var/log/mikrotik/check_mikrotik-routeros_$1.log"
routeros=`ssh cmk@$1 /system script run check_routeros | tail -n 1 >$logfile`

if grep -q "available" $logfile;
        then
          cat $logfile
          echo "https://mikrotik.com/download" "MikroTik RouterOS"
          exit 1
         else
          cat $logfile
          exit 0
fi

Das script in der WinBox.

Einen neuen klassischen host check anlegen.

Die Ausgabe des checks.

Den check lasse ich auch nur einmal täglich laufen. (siehe Checkmk Intervall für bestimmte service checks anpassen)

Schreibe einen Kommentar