Uptime Kuma ist ein freies Monitoring-Werkzeug, das sich auf Verfügbarkeitsprüfungen und Statusseiten spezialisiert hat. Es ist in Node.js geschrieben, läuft als einzelner Dienst mit SQLite-Datenbank und ist bewusst einfach zu bedienen – ohne Plugins, ohne Agenten, ohne Cluster.

Was es prüft

Uptime Kuma kennt über 80 Monitor-Typen. Die wichtigsten Gruppen:

  • HTTP(s): Statuscode, Schlüsselwort im Inhalt, JSON-Abfrage per Pfad, maximale Antwortzeit. Auch Keywords und JSON Query lassen sich direkt in der Oberfläche setzen – ohne Skript.
  • TCP-Port: Ist der Port offen und nimmt Verbindungen an?
  • Ping und DNS: Erreichbarkeit auf Netzebene sowie Auflösung von Namen, inklusive Prüfung auf bestimmte Datensätze.
  • Dienste: MySQL, PostgreSQL, Redis, MongoDB, Message Queue, Docker-Container-Status und gRPC.
  • Push: Ein Skript oder Gerät meldet sich selbst in einem festen Intervall. Bleibt die Meldung aus, gilt der Dienst als ausgefallen. Das ist die praktischste Möglichkeit, geplante Sicherungen oder Batch-Läufe zu überwachen – sie melden Erfolg, statt auf Fehler geprüft zu werden.
  • Gruppen und Abhängigkeiten: Monitore lassen sich gruppieren und als „Parent“ verknüpfen. Ist der übergeordnete Router nicht erreichbar, werden die dahinterliegenden Alarme für die Dauer dieser Störung unterdrückt – dasselbe Prinzip wie Inhibition beim Alertmanager.

Zustände und Benachrichtigungen

Jeder Monitor hat einen Status: Up, Down, Pending (noch keine Aussage), Maintenance (geplante Wartung) und Paused. Bei einer Änderung verschickt Uptime Kuma eine Nachricht über einen von über 90 Benachrichtigungskanälen – E-Mail, Telegram, Matrix, Discord, Webhook, Pushover und weitere. Beschriftungen (Tags) und individuelle Nachrichtentexte lassen sich je Monitor setzen.

Statusseiten

Ein wesentliches Merkmal sind integrierte Status Pages: Eine öffentliche Seite mit gewählten Monitoren, eigenen Domains und optionalem Passwortschutz. Damit lässt sich Dritten – etwa Kunden oder einem Team – der Betriebszustand zeigen, ohne Zugriff auf die Verwaltungsoberfläche zu geben. Die Seite zeigt einen Verlaufsbalken über die letzten Tage, typischerweise 90 Tage.

Betrieb

# Mit Docker (verbreitetste Variante)
docker run -d --name uptime-kuma \
  -p 3001:3001 -v uptime-kuma:/app/data \
  --restart unless-stopped louislam/uptime-kuma:1

# Zustand und Sicherung: alles liegt unter /app/data
#   kuma.db  (SQLite) enthält Monitore, Verlauf, Einstellungen
# Für ein Upgrade das Volume behalten und das Image neu ziehen.

Vor jedem Versionswechsel eine Kopie von kuma.db anlegen. Die Datenbank enthält den gesamten Verlauf; ein fehlgeschlagenes Upgrade ohne Sicherung kostet ihn vollständig.

Grenzen

  • Kein Metrik-Monitoring: Uptime Kuma beantwortet „antwortet der Dienst?“, nicht „wie hoch war die CPU-Last heute Nacht?“. Für Verläufe und Schwellwerte sind Prometheus, Zabbix oder Netdata die richtigen Werkzeuge.
  • SQLite als Datenhaltung: Für ein paar hundert Monitore unproblematisch, bei sehr vielen Prüfungen und langer Historie wird die Datei zum Engpass.
  • Ein einzelner Prozess: Ohne Ausfallsicherheit. Wer die Überwachung selbst hochverfügbar braucht, betreibt zwei Instanzen oder ein anderes Werkzeug.

Trotz dieser Grenzen ist Uptime Kuma für die allermeisten kleinen und mittleren Umgebungen die pragmatischste Lösung: In zehn Minuten einsatzbereit, verständliche Oberfläche, sofort brauchbare Statusseite. Verwandte Grundlagen: Monitoring, Health-Check, Monitoring mit Prometheus und Grafana, Observability.