Webseiten überwachen mit Uptime Kuma
Mit Uptime Kuma kann schnell und einfach eine Überwachung für verschiedene Websites eingerichtet werden. Die vorhandenen Monitor-Typen reichen von einem einfachen Ping, über einen Port-Check bishin zum Überwachen bestimmter Services:
Profil:
Software | Uptime-kuma |
---|---|
GitHub | https://github.com/louislam/uptime-kuma |
aktuelle Version | 1.23.15 |
gefunden | 03.10.2024 |
Docker Basics
Docker ermöglicht es, Services oder Applikationen per Befehl in einem sogenannten Container zu starten.Ein Container ist eine vom Betriebssystem (OS) unabhängige isolierte Umgebung:
Beim ersten Start eines Containers, lädt Docker selbstständig alle notwendigen Quellen
aus dem Internet.
Docker kann unter Windows, macOS oder einer Linux-Distribution installiert werden,
siehe auch: Docker
Damit Uptime Kuma sicher vom Internet erreicht werden kann, setze ich Traefik als Let's Encrypt Reverse-Proxy ein. Der Reverse-Proxy stellt eine verschlüsselte HTTPS-Verbindung zur Verfügung und ermöglicht es mehrere Websites auf einem Server zu betreiben.
Alternativ zu einem Reverse-Proxy kann auch ein Cloudflare-Tunnel für das Veröffentlichen von Webservices aus dem eigenen Netzwerk verwendet werden:
Schritt für Schritt Uptime Kuma in Docker inklusive Zugriff vom Internet
Hardwareanforderung:- Für die Docker-Installation kann eine nahezu beliebige Hardware verwendet werden. Zum Beispiel ein virtueller Server eines Providers, oder für zu Hause: ein Mini-PC, Notebook, MAC, ein NAS: QNAP, Synology oder eine andere Hardware mit x68-64 Architektur auf der sich Windows oder Linux installieren lässt.
- Eigene registrierte Domain, siehe Domain und dessen Verwaltung.
- Cloudflare oder Reverse Proxy:
- Cloudflare-Tunnel Service oder alternativ:
- Port-Forwarding und Reverse Proxy mit Let's Encrypt-Zertifikat
- docker-compose.yml anlegen und anpassen
- Container starten und
- Einrichten
docker-compose.yml-Datei:
Um Uptime Kuma mittels docker compose zu starten, kann das offizielle Docker Image verwendet werden. Das Image können mit einer simplen docker-compose.yml Datei heruntergeladen, erstellt und gestartet werden. Die Datei kann mit einem beliebigen Texteditor wie folgt befüllt und dann angepasst werden:
Dateiname: docker-compose.yml, Inhalt:
services:
uptime-web:
image: louislam/uptime-kuma
container_name: uptime-kuma
restart: always
expose:
- 3001
#Für einen direkten Test-Zugriff, in den folgenden 2 Zeilen "#" entfernen. Aufruf: http://localhost:3001 oder http://ServerIP:3001
#ports:
#- "3001:3001"
#Labels für ReverseProxy, siehe: https://www.libe.net/traefik
labels:
- "traefik.enable=true"
- "traefik.http.routers.uptime.rule=Host(`uptime.domain.tld`)"
- "traefik.http.routers.uptime.entrypoints=web"
- "traefik.http.routers.uptime.entrypoints=websecure"
- "traefik.http.routers.uptime.tls.certresolver=myresolver"
- "traefik.http.services.uptime.loadbalancer.server.port=3001"
volumes:
- ./data:/app/data
#Ohne dem Einsatz eines Reverse Proxy (https://www.libe.net/traefik) fehlt voraussichtlich das Netzwerk webproxy
#und die folgenden Zeilen können entfernt oder auskommentiert werden. Alternativ kann das Netzwerk mit "docker network create webproxy" erstellt werden
networks:
default:
name: webproxy
external: true
Für einen direkten Zugriff über die IP-Adresse oder localhost - auch ohne Reverse Proxy, DNS oder öffentlicher IP - kann die auskommentierte Port-Einstellung für Testzwecke aktiviert werden, indem „#“ vor „ports“ und „-"3001:3001"“ entfernt wird. Für den Internetzugriff über den Traefik Reverse Proxy, muss in den Labels die Domäne mit den zuvor erstellten DNS-Einträgen ersetzt werden (im Beispiel: uptime.domain.tld). Das Beispiel verwendet Bind-Mounts und keine Volumes für das permanente Speichern der Daten. Siehe: Docker Daten speichern: Docker Volumes vs. Host-Ordner
Container starten
Der Start erfolgt aus dem Ordner der docker-compose.yml-Datei mit dem Befehl„"docker compose up“:
docker compose up -d
Inbetriebnahme / erster Aufruf der Weboberfläche
Alarme: Benachrichtigung für die folgenden Dienste:
- Alerta
- AlertNow
- AliyunSMS
- Apprise (Unterstützung für 50+ Benachrichtigungsdienste)
- Bark
- ClickSend SMS
- DingDing
- Discord
- Feishu
- Google Chat (nur Google Workspace)
- Gorush
- Gotify
- Home Assistant
- Line Messenger
- LineNotify
- LunaSea
- Matrix
- Mattermost
- ntfy
- Octopush
- OneBot
- PagerDuty
- PromoSMS
- Pushbullet
- Push by Techulus
- Push Deer
- Pushover
- Pushy
- Rocket.chat
- SerwerSMS.pl
- Signal
- Slack
- E-Mail (SMTP)
- Stackfield
- Microsoft Teams
- Telegram
- Webhook
- WeCom
Für eine Signal-Integration, siehe: Signal cli rest API
Fazit
Mit Uptime Kuma ist es sehr schnell möglich eine einfache Überwachung für Geräte einzurichten und die Verfügbarkeit zu messen. Zudem bietet Uptime Kuma die Möglichkeit Benachrichtigungen über eine Vielzahl von Anbietern zu versenden.
{{percentage}} % positiv