In dieser Anleitung zeige ich euch, wie ihr innerhalb weniger Minuten Uptime Kuma mittels Docker und Traefik bereitstellen könnt.
Bei Uptime Kuma handelt es sich um ein Monitoring Tool, das eure Webseiten oder Dienste überwachen und euch bei einem Ausfall informieren kann (z.B. per Mail).
Updates
Datum | Änderungen |
---|---|
07.09.2022 | Docker-Socket für Docker-Monitoring (ab Version 1.18) hinzugefügt |
01.06.2023 | Anpassungen an neue Traefik Labels @christian |
1. Vorraussetzung
- Docker mit Docker Compose installiert (Anleitung für Ubuntu / Debian)
- Traefik v2 + 3 – Reverse-Proxy mit CrowdSec im Stack einrichten
2. Verzeichnis anlegen
Als ersten Schritt legen wir uns ein Verzeichnis für Uptime Kuma an:
mkdir -p /opt/containers/uptime
3. Anlegen der docker-compose.yml
nano /opt/containers/uptime/docker-compose.yml
Inhalt der docker-compose.yml
version: '3.3' services: uptime-kuma: image: louislam/uptime-kuma container_name: uptime-kuma restart: unless-stopped volumes: - /etc/localtime:/etc/localtime:ro - /etc/timezone:/etc/timezone:ro - /var/run/docker.sock:/var/run/docker.sock:ro - ./data:/app/data labels: - "traefik.enable=true" - "traefik.http.routers.uptime.entrypoints=websecure" - "traefik.http.routers.uptime.rule=Host(`uptime.euredomain.de`)" - "traefik.http.routers.uptime.tls=true" - "traefik.http.routers.uptime.tls.certresolver=http_resolver" - "traefik.http.routers.uptime.service=uptime" - "traefik.http.services.uptime.loadbalancer.server.port=3001" - "traefik.docker.network=proxy" - "traefik.http.routers.uptime.middlewares=default@file" networks: - proxy networks: proxy: external: true
Notwendige Anpassungen:
- Eure Domain bei Traefik anpassen (“uptime.euredomain.de”)
4. Uptime Kuma starten
docker compose -f /opt/containers/uptime/docker-compose.yml up -d
Nach einer kurzen Wartezeit könnt ihr nun die gewählte Domain “uptime.euredomain.de” aufrufen.
Wählt dort beim ersten Besuch euren Benutzernamen und euer Passwort. Danach könnt ihr euch mit dem gewählten User einloggen und die ersten Checks einrichten. Wie das ganze in Aktion aussehen kann, könnt ihr euch bei der Live-Demo hier ansehen.
5. Quellen
https://github.com/louislam/uptime-kuma/blob/master/docker/docker-compose.yml
Hallo,
gestern ich habe den Uptime Kuma mal wieder eingerichtet, da ich gerne eine Übersicht über meine laufenden und fehlerhaften Container haben möchte. Update-Kuma läuft nur lokal ohne Traefik. Bei mir laufen unter Proxmox mehrere Docker-Instanzen in verschiedenen VMs und möchte nun Uptime Kuma auf einer Instanz installieren und sicher auf die Instanz eines anderen Servers via TLS zugreifen. Leider schaffe ich das nicht. Ich habe bisher folgendes gemacht:
Jetzt liegen die erstellten Zertifikate in meinem Ordner vor:
Danach habe ich meine /etc/docker/daemon.json angepasst und folgende Zeilen hinzugefügt:
Zusätzlich noch den Systemd-Service angepasst, da es sonst zu Duplikat-Meldungen kam:
wurde zu
Nun noch via folgenden Befehlen alles neu eingelesen und gestartet:
Alles scheint problemlos zu funktionieren. Keine Fehlermeldungen in den Logs zu sehen und der Rest läuft auch. Also bis hier hin sollte es ja passen.
Das war jetzt auf dem Host, auf den der andere zugreifen können soll, nennen wir ihn A. Auf dem anderen (B) ist also Update-Kuma installiert.
Unter Einstellungen kann man in Update-Kuma ja Docker-Hosts hinzufügen. Das habe ich mit dem lokalen Host auf B gemacht und jetzt möchte ich über TLS noch Host A hinzufügen.
Laut Anleitung, bindet man ja einen lokalen Ordner unter /app/data ein. In diesem Ordner wird ein Ordner docker-tls erstellt und in diesen sollen die Zertifikate jeweils in Unterordner mit der Hostnamen. Also zum Beispiel docker-tls/192.168.1.74 oder docker-tls/host-a.
Da ich vorher beim Erstellen der Zertifkate meine IP-Adresse benutzt habe, gehe ich davon aus, dass der Unterordner also meine IP-Adresse ist. Da ich nicht weiß welche Zertfikatsdateien benötigt werden, habe ich einfach alle Dateien aus dem Zertifkats-Ordner von Host A in den Unterordner auf Host B kopiert.
Und hier komme ich nicht weiter, ich habe keinen Plan, was noch zu tun ist. Ich füge unter Update-Kuma meinen Host A über TLS hinzu und gebe als Verbindungstyp tcp/http ein und dann als Docker-Daemon https://<meineip>:2376. Wenn ich auf testen klicke bekomme ich dann immer die Fehlermeldung: “Hostname/IP does not match certificate’s altnames: IP: <meineip> ist not in the certs list.
Ähnliche Meldungen habe ich per Suchmaschine gefunden, aber nie gab es Antworten. Wahrscheinlich hat es gar nichts mit Update-Kuma selber zu tun, sondern irgendwas übergeordnetes, allgemeines mit Verschlüsselungen. Ich weiß es einfach nicht.
Ich habe keinen Plan, was da fehlen könnte und hoffe, dass ihr mir da helfen könnt. Wo ist mein Fehler? Was übersehe oder missverstehe ich? 🤔
Vielen Dank schon mal im Voraus 🙂
Hat von Euch das schon jemand hinbekommen, dass beim Stoppen eines Containers, wenn Uptime Kuma das meldet, könnte er doch einfach den Container wieder anstarten. Kann Uptime Kuma das?
Hallo ihr, ich bin etwas verwirrt – ich bekomme auf
uptime.meinedomain.de
kein Zertifikat. Ich bin alles durchgegangen, finde den Fehler aber leider nicht. Bei anderen Apps (Portainer/Nextcloud…) hatte ich das Problem nicht. Mein “traefik-crowdsec-stack” scheint also eigentlich zu funktionieren …Danke für die Anleitung.
Hat Supper funktioniert.
Nur für Seiten auf dem selben Server, musste ich das ipv6 netzwerk, wo auch immer das herkommt, joinen 🙂
Hallo Zusammen
Installation an sich hat wunderbar funktioniert. Ich errreiche nur keine Seite vom gleichen Server im Monitor. Es kommt timeout of 48000ms exceeded. Hat jemand eine Idee oder Tipp, an was es liegen könnte?
Hach wie schön, wollte gerade dazu auch eine schreiben! Jetzt kann ich einfach deine durcharbeiten👌
Hallo,
leider bekomme ich, wenn ich die Seite aufrufe nur einen 404 Error angezeigt.
Hat jemand eine Idee?
VG
Matthias
Funktioniert einwandfrei, vielen Dank….
Herzlichen Glückwunsch zu deiner ersten Anleitung
Brthld 🎉
Hat alles geklappt. Danke für die Anleitung 🙂