Zum Hauptinhalt springen

Uptime Kuma Smart-Home-Integration, kostenlos und Open Source

Uptime Kuma-Integration für Gladys Assistant

Sieh deine selbst gehosteten Dienste in Gladys und reagiere, wenn einer ausfällt.

Uptime Kuma überwacht deine Websites und Dienste (HTTP, TCP-Port, Ping, DNS, Docker-Container…). Diese Integration bringt seine Monitore in Gladys: Jeder wird ein Gerät, das zeigt, ob der Dienst in Betrieb ist, seine Antwortzeit und, bei einer HTTPS-Website, die verbleibenden Tage bis zum Ablauf des Zertifikats. Szenen können reagieren, wenn irgendein Dienst ausfällt oder wieder da ist, ohne eine Szene pro Gerät, und ein Widget im Dashboard fasst alles zusammen.

Getestet mit echten Uptime-Kuma-Servern 1.23.17 und 2.5.6 (Docker); noch nicht mit jeder Installation: Rückmeldungen sind willkommen in den Issues.

Was du brauchst​

  • Gladys Assistant 5.1.0 oder neuer.
  • Uptime Kuma 1.23 oder 2.x, vom Gladys-Rechner aus erreichbar (im lokalen Netzwerk oder im Internet über HTTPS).
  • Einen API-Schlüssel von Uptime Kuma (oder dessen Authentifizierung deaktiviert).

Die Integration liest nur: Einen Monitor pausieren oder fortsetzen bleibt Sache von Uptime Kuma (dafür bräuchte es dein Administratorpasswort, das Gladys nicht abfragt).

Erste Schritte​

1. Einen API-Schlüssel erstellen​

Öffne in Uptime Kuma Einstellungen → API-Schlüssel, klicke auf API-Schlüssel hinzufügen, gib einen Namen ein (zum Beispiel Gladys) und kein Ablaufdatum, dann Generieren. Kopiere den Schlüssel (er beginnt mit uk): Uptime Kuma zeigt ihn nur einmal an.

Sobald ein Schlüssel existiert, verlangt Uptime Kuma auf /metrics einen Schlüssel statt deines Passworts: Werkzeuge, die es mit dem Passwort lesen (Prometheus…), brauchen dann ebenfalls einen Schlüssel.

2. Die Integration konfigurieren​

In Gladys, Integrationen → Uptime Kuma → Konfiguration:

  • Adresse von Uptime Kuma: die Adresse, mit der du Uptime Kuma öffnest, mit Port, zum Beispiel http://192.168.1.2:3001 oder https://status.example.com. Eine aus dem Browser kopierte URL (…/dashboard/3) funktioniert auch.
  • API-Schlüssel: der Schlüssel aus Schritt 1.
  • Name (optional): wird in den Meldungen und im Widget statt der Adresse angezeigt.
  • Ein zweites Uptime Kuma kann hinzugefügt werden, zum Beispiel auf einem gemieteten Server, der dein Zuhause von außen überwacht.
  • Aktualisierungsintervall: standardmäßig 30 Sekunden (15 Sekunden bis 5 Minuten).
  • Zertifikatswarnung: die verbleibenden Tage, ab denen „Zertifikat läuft bald ab“ auslöst (standardmäßig 14).
  • Selbstsignierte Zertifikate akzeptieren: nur für eine https://-Adresse, deren Zertifikat auch dein Browser nicht anerkennt.
  • Sprache der Namen: die Sprache der Funktionsnamen und der Szenen-Ergebnisse (standardmäßig Französisch).

Speichere und klicke dann auf Verbindung testen: Jedes Uptime Kuma antwortet mit seiner Version und der Zahl seiner Monitore.

3. Die Monitore hinzufügen​

Öffne den Tab Entdecken: Alle Monitore von Uptime Kuma werden dort vorgeschlagen. Füge die hinzu, die du in Gladys sehen willst; nichts wird an deiner Stelle hinzugefügt. Ein später in Uptime Kuma angelegter Monitor erscheint dort bei der nächsten Abfrage.

Das Gerät jedes Monitors​

FunktionWert
In BetriebAn, wenn der Dienst läuft, Aus, wenn er ausgefallen ist
AntwortzeitDie letzte Prüfung, in Millisekunden (nicht bei Gruppen-Monitoren)
Tage bis zum ZertifikatsablaufFür die Monitore einer https://-Website; negativ nach dem Ablauf

Solange Uptime Kuma eine fehlgeschlagene Prüfung wiederholt („ausstehend“) oder ein Monitor in Wartung ist, bleibt der letzte Wert: Nur „in Betrieb“ und „ausgefallen“ zählen. Solange ein Monitor ausgefallen ist, behält seine Antwortzeit den letzten Wert. Ein pausierter Monitor sendet nichts.

Eine Antwortzeit ändert sich bei jeder Prüfung: Gladys erhält sie höchstens einmal pro Minute und Monitor, damit hundert Monitore weit unter den 300 Werten pro Minute bleiben, die Gladys annimmt.

Dashboard​

Füge das Widget Uptime Kuma zu einem Dashboard hinzu. Es zeigt:

  • die Zahl der ausgefallenen Dienste (rot, sobald es einen gibt) und der Dienste in Betrieb;
  • das Zertifikat, das zuerst abläuft, in Tagen (orange ab der Warnschwelle);
  • eine Zeile pro Monitor, Probleme zuerst: ausgefallen, ausstehend, Wartung, pausiert, dann die Antwortzeit der laufenden Dienste — höchstens zehn Zeilen, dann die Zahl der übrigen;
  • ein Uptime Kuma, das nicht antwortet;
  • eine Taste Aktualisieren, die Uptime Kuma neu liest.

Standardmäßig zeigt das Widget alle Monitore außer Gruppen (diese wiederholen ihre Mitglieder). In seinen Einstellungen beschränkt Monitore es auf die gewählten Geräte (nur in Gladys angelegte Geräte sind wählbar, Gruppen eingeschlossen).

Szenen​

Auslöser​

Die Auslöser gelten für alle Monitore, ob in Gladys angelegt oder nicht. Lass Monitore leer, um auf jeden zu reagieren, oder wähle einige aus.

  • Ein Dienst fällt aus: Ein Monitor wechselt von „in Betrieb“ (oder „Wartung“) zu „ausgefallen“, nachdem Uptime Kuma alle Wiederholungen verbraucht hat. Variablen: Name des Monitors, Monitortyp, URL oder Host, Name des Uptime Kuma.
  • Ein Dienst ist wieder da: Ein ausgefallener Monitor ist wieder in Betrieb. Variablen: dieselben, dazu die Dauer des Ausfalls in Minuten und die Antwortzeit.
  • Zertifikat läuft bald ab: Das Zertifikat eines Monitors erreicht die in der Konfiguration gewählte Zahl verbleibender Tage. Einmal pro Zertifikat; erneut nach einer Verlängerung. Variablen: Name des Monitors, Typ, URL, verbleibende Tage, Name des Uptime Kuma.
  • Uptime Kuma antwortet nicht mehr: Uptime Kuma selbst antwortet nicht mehr (zwei Abfragen in Folge), also wird nichts mehr überwacht. Variablen: Name des Uptime Kuma, Fehler.

Ein Wechsel während eines Neustarts von Gladys oder der Integration wird trotzdem gemeldet, einmal. Ein Monitor, der beim allerersten Start der Integration schon ausgefallen ist, meldet nichts.

Ein Gruppen-Monitor fällt mit seinen Mitgliedern aus: Wähle die Monitore im Filter, um zwei Nachrichten für einen einzigen Ausfall zu vermeiden.

Aktionen​

  • Status eines Dienstes: liest einen Monitor für die nächsten Aktionen der Szene: in Betrieb (ja/nein), der Status in Worten („In Betrieb“, „Ausgefallen“, „Ausstehend“, „Wartung“, „Pausiert“), der Name des Monitors, die Antwortzeit und die Tage bis zum Zertifikatsablauf.
  • Ausgefallene Dienste zählen: die Zahl der ausgefallenen, laufenden und aller Dienste (ohne Gruppen) und die Namen der ausgefallenen, für eine Nachricht.

Beide lesen Uptime Kuma neu, wenn die letzte Abfrage älter als 15 Sekunden ist.

Szenen-Ideen​

  • Alarm bei jedem Ausfall: Auslöser „Ein Dienst fällt aus“ (Monitore leer) → eine Nachricht „⚠️ … ist ausgefallen“ senden, mit den Variablen „Name des Monitors“ und „URL oder Host“. Eine zweite Szene auf „Ein Dienst ist wieder da“ sendet „✅ … ist nach … min wieder da“ mit „Dauer des Ausfalls (Minuten)“.
  • Morgenbericht: jeden Tag um 8:00 → „Ausgefallene Dienste zählen“ → eine Nachricht „… Dienst(e) ausgefallen: …“ mit „Ausgefallene Dienste“ und „Namen der ausgefallenen Dienste“ senden.
  • Rechtzeitig verlängern: Auslöser „Zertifikat läuft bald ab“ → eine Nachricht mit „Name des Monitors“ und „Verbleibende Tage“ senden.
  • Der Internet-Router ist ausgefallen: Auslöser „Ein Dienst fällt aus“ auf dem Monitor deines Routers → eine Lampe rot einschalten.

Fehlerbehebung​

  • „API-Schlüssel abgelehnt“: Prüfe den Schlüssel (er beginnt mit uk) und ob er unter Einstellungen → API-Schlüssel aktiv ist. Uptime Kuma lehnt mit demselben Fehler auch ab, wenn mehr als 60 API-Anfragen pro Minute ankommen, geteilt mit allen Werkzeugen, die seine Metriken lesen: Verlängere das Aktualisierungsintervall, wenn ein anderes Werkzeug es auch liest.
  • „Ein API-Schlüssel ist nötig“: Die Authentifizierung von Uptime Kuma ist aktiv und kein Schlüssel ist konfiguriert.
  • „Antwortet nicht“: Prüfe Adresse und Port (standardmäßig 3001) vom Gladys-Rechner aus. localhost ist der Container der Integration selbst: Verwende die IP-Adresse des Rechners, auf dem Uptime Kuma läuft.
  • „Zertifikat abgelehnt“: Das HTTPS-Zertifikat ist selbstsigniert oder abgelaufen; aktiviere „Selbstsignierte Zertifikate akzeptieren“ oder nutze die http://-Adresse im lokalen Netzwerk.
  • „Kein Uptime Kuma unter dieser Adresse“: Die Adresse führt zu einem anderen Dienst, oder Uptime Kuma 2 wartet noch auf die Wahl seiner Datenbank.
  • Ein Monitor fehlt im Tab „Entdecken“: Er ist in Uptime Kuma pausiert.
  • Ein Gerät wird nach dem Wechsel auf Uptime Kuma 2 erneut vorgeschlagen: Unter 1.x angelegte Geräte behalten ihre Identität; ein während des Updates umbenannter Monitor kann nicht erkannt werden und wird als neues Gerät vorgeschlagen.

Grenzen​

  • Nur lesend: Monitore werden in Uptime Kuma pausiert, fortgesetzt und bearbeitet.
  • Uptime Kuma wird im Aktualisierungsintervall gelesen: Ein kürzerer Ausfall kann unbemerkt bleiben, und die Dauer eines Ausfalls ist nur auf dieses Intervall genau bekannt.
  • Unter Uptime Kuma 1.x haben Monitore in den Metriken keine Kennung: Ein in Uptime Kuma 1.x umbenannter Monitor wird ein neues Gerät. Unter 2.x ist Umbenennen folgenlos.
  • Die Tags von Uptime Kuma, die Verfügbarkeitsprozente und die Statusseiten werden nicht genutzt.
  • Uptime Kuma beantwortet höchstens 60 API-Anfragen pro Minute; zwei Instanzen, alle 15 Sekunden gelesen, brauchen davon 8.

Konfigurationseinstellungen​

Diese Einstellungen fragt Uptime Kuma in seinem Konfigurationsbildschirm in Gladys ab.

EinstellungTypPflichtfeldBeschreibung
Dein Uptime KumasectionNeinÖffne in Uptime Kuma Einstellungen → API-Schlüssel, erstelle einen Schlüssel und füge ihn unten mit der Adresse von Uptime Kuma ein. Lege dann die Monitore, denen du folgen willst, im Tab „Entdecken“ an: Die Szenen-Auslöser gelten für alle Monitore, angelegt oder nicht.
Adresse von Uptime KumastringNeinDie Adresse, mit der du Uptime Kuma öffnest, mit Port (standardmäßig 3001).
API-SchlüsselsecretNeinBeginnt mit „uk“. Lass das Feld nur leer, wenn die Authentifizierung von Uptime Kuma deaktiviert ist.
Name (optional)stringNeinWird in den Meldungen und im Widget statt der Adresse angezeigt.
Zweites Uptime Kuma (optional)sectionNeinZum Beispiel eine Instanz auf einem gemieteten Server, die dein Zuhause von außen überwacht.
Adresse des zweiten Uptime KumastringNein
Zweiter API-SchlüsselsecretNein
Zweiter Name (optional)stringNein
OptionensectionNeinUptime Kuma beantwortet höchstens 60 API-Anfragen pro Minute, geteilt mit allen Werkzeugen, die seine Metriken lesen.
AktualisierungsintervallselectNeinWie oft Uptime Kuma gelesen wird. Ein kürzerer Ausfall kann unbemerkt bleiben.
ZertifikatswarnungselectNeinVerbleibende Tage, ab denen „Zertifikat läuft bald ab“ auslöst, einmal pro Zertifikat.
Selbstsignierte Zertifikate akzeptierenbooleanNeinNur für eine https://-Adresse, deren Zertifikat auch dein Browser nicht anerkennt.
Sprache der NamenselectNeinSprache der Funktionsnamen (beim Hinzufügen eines Geräts festgelegt) und der Szenen-Ergebnisse.

So installierst du Uptime Kuma in Gladys​

  1. Öffne in Gladys Integrationen: Uptime Kuma erscheint im Katalog neben den nativen Integrationen, mit einem Community-Badge.
  2. Klicke auf Installieren. Gladys lädt das Docker-Image (ghcr.io/guim31/gladys-uptime-kuma:1.0.1) herunter, startet es in einer vom Kern isolierten Sandbox und erzeugt die Oberfläche der Integration (Geräte, Erkennung und Konfiguration).
  3. Öffne den Bildschirm Konfiguration der Integration, fülle die Einstellungen aus und speichere.
  4. Du kannst sie auch direkt über die URL ihres Repositorys installieren: https://github.com/guim31/gladys-uptime-kuma.

Uptime Kuma benötigt Gladys >=5.1.0. Der Katalog in Gladys wird stündlich aktualisiert, eine neue Version ist also spätestens eine Stunde nach ihrer Veröffentlichung verfügbar.

Du nutzt Gladys noch nicht? Es ist kostenlos und Open Source: folge der Installationsanleitung, um loszulegen.

Über externe Integrationen​

Uptime Kuma ist eine externe Integration: eine Community-Integration, die als Docker-Container verpackt und auf GitHub veröffentlicht wird. Gladys installiert sie mit einem Klick und führt sie in einer vom Kern isolierten Sandbox aus. Sie wird von guim31 veröffentlicht und gepflegt, nicht vom Gladys-Kernteam.

Abonniere den Newsletter von Gladys Assistant

Ein paar E-Mails im Monat zu neuen Releases und Neuigkeiten aus dem Projekt. Verschickt von Pierre-Gilles Leymarie, dem Gründer des Projekts. Jederzeit abbestellbar 🙂