Anbindung von MikroTik RouterOS 7 an Uptime Kuma¶
Dieses Dokument beschreibt, wie ein MikroTik RouterOS 7 Gerät so konfiguriert wird, dass es seine Erreichbarkeit und Latenzzeit regelmäßig an einen Uptime Kuma Server meldet.
Hintergrund¶
Unter RouterOS 6 konnte man für Skripte den Befehl /tool flood-ping verwenden.
In RouterOS 7 ist dieser Befehl jedoch nicht mehr in Scripts erlaubt und führt zu der Fehlermeldung:
failure: not allowed by device-mode (/tool/flood-ping; line X)
Die Lösung ist, stattdessen den Befehl /ping zu verwenden und die Ergebnisse in einer Schleife auszuwerten.
Beispielskript für RouterOS 7¶
# Ziel und Uptime-Kuma-Key anpassen
:local host "1.1.1.1"
:local kumaKey "<key>"
:local kumaUrl "https://uptimeserver.example.com/api/push/$kumaKey"
:local count 5
:local success 0
:local totalRtt 0
# Ping-Schleife
:for i from=1 to=$count do={
:local rtt [/ping address=$host count=1 interval=0.5s]
:if ($rtt != 0) do={
:set success ($success + 1)
:set totalRtt ($totalRtt + $rtt)
}
}
:if ($success > 0) do={
:local avgRtt ($totalRtt / $success)
/tool fetch url=("$kumaUrl?status=up&msg=OK&ping=$avgRtt") mode=https keep-result=no
} else={
/tool fetch url=("$kumaUrl?status=down&msg=No%20reply") mode=https keep-result=no
}
Funktionsweise¶
- Das Script sendet 5 Pings an die Zieladresse (Standard:
1.1.1.1). - Erfolgreiche Pings werden gezählt und die Antwortzeiten summiert.
- Wenn mindestens ein Ping erfolgreich war → Status UP mit Durchschnitts-RTT.
- Wenn alle Pings fehlschlagen → Status DOWN.
Scheduler-Eintrag¶
Damit Uptime Kuma regelmäßig Updates erhält, sollte das Script per Scheduler gestartet werden.
Beispiel: Ausführung alle 60 Sekunden.
/system scheduler add name="uptime-kuma" interval=1m on-event=yourScriptName
Zusammenfassung¶
flood-pingist in RouterOS 7 nicht mehr scriptfähig.- Lösung:
/pingin einer Schleife + Auswertung. - Ergebnis wird via
/tool fetchan Uptime Kuma übermittelt.
Mit diesem Ansatz lässt sich jedes MikroTik-Gerät zuverlässig in Uptime Kuma integrieren.