Uptime Kuma: eigenes Website-Monitoring auf einem VPS einrichten
Eine Website kann defekt sein und trotzdem weiterhin 200 OK zurückgeben. Auch ein Backup kann ohne sichtbare Fehlermeldung nicht mehr erstellt werden. Uptime Kuma erkennt beide Fälle: Das Tool prüft Websites, APIs, Ports und Hintergrundaufgaben und sendet bei einem Problem eine Benachrichtigung.
Im Folgenden zeigen wir, wo das Monitoring betrieben werden sollte, welchen VPS es benötigt und wie Sie Uptime Kuma 2 installieren, HTTPS aktivieren, Telegram anbinden und eine Statusseite erstellen.
Uptime Kuma in sieben Schritten
- Einen kleinen VPS getrennt von den überwachten Projekten bereitstellen.
- Eine Subdomain wie
monitor.example.comauf diesen VPS verweisen lassen. - Docker installieren und Uptime Kuma 2 starten.
- Den internen Port
3001nach außen schließen und HTTPS einrichten. - HTTP-, DNS-, TCP- oder Push-Monitore erstellen.
- Telegram und bei Bedarf eine Statusseite konfigurieren.
- Updates und ein externes Backup des Datenverzeichnisses einrichten.
Was ist Uptime Kuma?
Uptime Kuma ist ein kostenloses, quelloffenes Self-Hosted-Tool. Das Dashboard und der Verlauf der Prüfungen werden auf Ihrem eigenen Server gespeichert.
Es überwacht HTTP(S), TCP-Ports, Ping, DNS, WebSocket, Text und JSON in Antworten, Push-Signale sowie Docker-Container. Das kleinste Prüfintervall beträgt 20 Sekunden. Darüber hinaus stehen zahlreiche Benachrichtigungskanäle, 2FA, Latenzdiagramme, die Überwachung von TLS-Zertifikaten und mehrere Statusseiten zur Verfügung.
So erkennen Sie einen Fehler trotz 200 OK
Eine einfache HTTP-Prüfung sieht nur den Antwortcode. Ein Webserver kann jedoch eine leere Seite oder eine Fehlerseite der Anwendung anzeigen und trotzdem einen erfolgreichen Status zurückgeben.
Für eine genauere Kontrolle verwenden Sie:
- Keyword — sucht nach einer erwarteten Formulierung, etwa dem Namen der Website oder dem Text „Kundenbereich“;
- JSON Query — prüft einen Wert in der API-Antwort, zum Beispiel
status: healthy.
Damit bestätigt das Monitoring nicht nur, dass der Port erreichbar ist, sondern auch ein grundlegendes Anzeichen dafür, dass die Anwendung korrekt funktioniert.
Push-Monitor für Backups und Cronjobs
Ein Push-Monitor fragt keinen Dienst ab, sondern wartet auf ein regelmäßiges Signal von diesem Dienst. Ein Backup-Skript oder Cronjob ruft nach erfolgreichem Abschluss eine eindeutige URL auf. Trifft das Signal nicht rechtzeitig ein, meldet Uptime Kuma einen Fehler.
So lässt sich ein „stilles“ Problem erkennen: Die Website funktioniert, aber das tägliche Backup wurde seit mehreren Tagen nicht mehr erstellt.
Was Uptime Kuma nicht ersetzt
Uptime Kuma überwacht in erster Linie die Verfügbarkeit und die Antwortzeit. Für CPU, RAM, Festplatte, Protokolle und Container-Metriken sollten Sie es mit Prometheus, Netdata, Zabbix oder einem anderen System ergänzen: Kuma erkennt das Problem von außen, während die Metriken bei der Ursachenanalyse helfen.
Warum das Monitoring auf einem separaten VPS laufen sollte
Wird Uptime Kuma gemeinsam mit der Website installiert, können ein Ausfall des VPS, des Netzwerks oder des Rechenzentrums sowohl das Projekt als auch das Monitoring lahmlegen. Die Benachrichtigung wird dann möglicherweise nicht gesendet.
Betreiben Sie das Dashboard auf einem separaten VPS und bei wichtigen Projekten in einer anderen Region oder bei einem anderen Anbieter. Außerdem ist es sinnvoll, Kuma selbst durch einen externen Dienst überwachen zu lassen: Auch das Monitoring muss überwacht werden.
Serveranforderungen von Uptime Kuma
Das Projekt nennt keine strikte offizielle Mindestanforderung für CPU und RAM. Eine praktische Startkonfiguration für eine kleine Installation ist:
- 1 vCPU;
- 1 GB RAM;
- 10 GB SSD;
- Ubuntu 24.04 LTS;
- IPv4;
- eine Domain oder Subdomain für HTTPS.
Diese Konfiguration reicht in der Regel für einige Dutzend einfache Prüfungen aus. Für Hunderte Monitore, eine lange Aufbewahrung des Verlaufs oder Browser-Prüfungen sind 2 GB RAM oder mehr sinnvoll.
Uptime Kuma auf einem VPS installieren
In diesem Beispiel werden Ubuntu 24.04 und die Subdomain monitor.example.com verwendet.
1. DNS und Firewall konfigurieren
Erstellen Sie einen DNS-A-Eintrag, der auf die IPv4-Adresse des VPS verweist. Stellen Sie eine SSH-Verbindung her und öffnen Sie die erforderlichen Ports:
ssh root@SERVER_IP
apt update && apt upgrade -y
ufw allow OpenSSH
ufw allow 80/tcp
ufw allow 443/tcp
ufw --force enableSchließen Sie die aktuelle SSH-Sitzung erst, nachdem Sie eine neue Verbindung getestet haben.
2. Docker und Docker Compose installieren
apt install -y ca-certificates curl
install -m 0755 -d /etc/apt/keyrings
curl -fsSL https://download.docker.com/linux/ubuntu/gpg \
-o /etc/apt/keyrings/docker.asc
chmod a+r /etc/apt/keyrings/docker.asc
tee /etc/apt/sources.list.d/docker.sources > /dev/null <<EOF
Types: deb
URIs: https://download.docker.com/linux/ubuntu
Suites: $(. /etc/os-release && echo "${UBUNTU_CODENAME:-$VERSION_CODENAME}")
Components: stable
Architectures: $(dpkg --print-architecture)
Signed-By: /etc/apt/keyrings/docker.asc
EOF
apt update
apt install -y docker-ce docker-ce-cli containerd.io \
docker-buildx-plugin docker-compose-plugin
docker compose version3. Uptime Kuma 2 starten
mkdir -p /opt/uptime-kuma
cd /opt/uptime-kuma
cat > compose.yaml <<'EOF'
services:
uptime-kuma:
image: louislam/uptime-kuma:2
restart: unless-stopped
ports:
- "127.0.0.1:3001:3001"
volumes:
- ./data:/app/data
EOF
docker compose up -d
docker compose psVerwenden Sie das Tag :2: latest verweist weiterhin auf den veralteten v1-Zweig. Das Verzeichnis /app/data muss auf einem lokalen Datenträger oder in einem gewöhnlichen Docker volume liegen. NFS und Speichersysteme ohne korrekte Dateisperren können die Datenbank beschädigen.
Port 3001 ist nur über 127.0.0.1 erreichbar. Nach außen wird das Dashboard über einen Reverse Proxy mit HTTPS veröffentlicht.
4. HTTPS mit Caddy einrichten
apt install -y caddy
cat > /etc/caddy/Caddyfile <<'EOF'
monitor.example.com {
reverse_proxy 127.0.0.1:3001
}
EOF
caddy validate --config /etc/caddy/Caddyfile
systemctl reload caddyWenn DNS auf den VPS verweist, fordert Caddy automatisch ein TLS-Zertifikat an und leitet WebSocket-Verbindungen weiter. Das Dashboard muss im Stammverzeichnis einer Domain oder Subdomain liegen; eine Adresse wie example.com/kuma wird nicht unterstützt.
5. Administratorkonto erstellen
Öffnen Sie https://monitor.example.com, erstellen Sie ein Konto mit einem langen, einmaligen Passwort und aktivieren Sie die Zwei-Faktor-Authentifizierung.
Den ersten Monitor hinzufügen
Klicken Sie auf Add New Monitor und wählen Sie HTTP(s):
- Geben Sie einen Namen und die vollständige URL ein.
- Legen Sie ein Intervall fest, zum Beispiel 60 Sekunden.
- Fügen Sie zwei Wiederholungsversuche hinzu, um zufällige Netzwerkfehler abzufangen.
- Wählen Sie einen Benachrichtigungskanal.
- Speichern Sie den Monitor und prüfen Sie, ob erfolgreiche Anfragen erscheinen.
Für die Hauptwebsite eignen sich HTTP- und Keyword-Prüfungen, für eine API ein Health-Endpunkt und JSON Query. Öffnen Sie Datenbanken oder Administrationsports nicht nur für das Monitoring zum Internet hin. Verwenden Sie ein vertrauenswürdiges Netzwerk oder ein VPN.
Beispiel für einen Push-Monitor bei Backups
Nachdem Sie einen Monitor vom Typ Push erstellt haben, fügen Sie dessen eindeutige URL am Ende des Skripts ein:
backup-command && \
curl -fsS "https://monitor.example.com/api/push/SECRET_TOKEN?status=up&msg=backup-ok"Die Anfrage wird nur nach einem erfolgreichen Backup ausgeführt. Behandeln Sie das Push-Token wie ein Passwort: Wer die URL kennt, kann ein falsches Erfolgssignal senden.
Telegram anbinden
Erstellen Sie über @BotFather einen Bot, senden Sie ihm eine Nachricht und öffnen Sie anschließend Settings → Notifications → Telegram. Tragen Sie Bot Token und Chat ID ein, klicken Sie auf Test und weisen Sie den Kanal den Monitoren zu. Für kritische Dienste sollten Sie einen zweiten Kanal wie E-Mail hinzufügen.
Eine Statusseite erstellen
Unter Status Pages können Sie Monitore gruppieren, den aktuellen Status und die Verfügbarkeitshistorie anzeigen, eine Domain zuweisen und über Maintenance geplante Arbeiten melden. Veröffentlichen Sie keine internen IP-Adressen oder technischen URLs. Für Kunden genügen Komponenten wie „Website“, „API“, „Kundenbereich“ und „Zahlungen“.
Aktualisierung und Datensicherung
Stoppen Sie den Container vor einem größeren Update und sichern Sie das Datenverzeichnis:
cd /opt/uptime-kuma
docker compose down
tar -czf /root/uptime-kuma-$(date +%F).tar.gz \
data compose.yaml
docker compose up -dÜbertragen Sie das Archiv auf ein anderes Gerät oder in einen externen Speicher. Eine Kopie auf demselben VPS schützt nicht vor dem Löschen des Servers oder einem Festplattenausfall.
Für ein gewöhnliches Update:
cd /opt/uptime-kuma
docker compose pull
docker compose up -d --force-recreatePrüfen Sie nach dem Start docker compose ps, das Dashboard und eine Testbenachrichtigung.
Welcher VPS eignet sich für Uptime Kuma?
Für eine kleine Installation genügt ein Linux-VPS mit 1 vCPU und 1 GB RAM. Wichtiger als Leistung ist die Unabhängigkeit: Das Monitoring muss weiterlaufen, wenn das Hauptprojekt nicht erreichbar ist.
Uptime Kuma kann auf einem VPS von tropic.host betrieben werden, wenn die überwachten Dienste auf einer anderen Plattform oder einem unabhängigen Knoten laufen. Ubuntu, Docker und eine feste IP ermöglichen einen schnellen Start des Dashboards; bei steigender Zahl der Prüfungen lassen sich die Ressourcen erhöhen.
Läuft die Produktionsumgebung bereits in derselben Infrastruktur, wählen Sie einen anderen Knoten oder ergänzen Sie einen externen Ersatzmonitor. Die Trennung von Ausfallbereichen ist nützlicher als ein zusätzlicher CPU-Kern.
Typische Fehler
| Fehler | Warum das problematisch ist | Bessere Lösung |
|---|---|---|
| Monitoring läuft neben dem Projekt | Bei einem gemeinsamen Ausfall verschwinden sowohl Dienst als auch Benachrichtigungen | Einen separaten VPS oder Standort verwenden |
Port 3001 ist öffentlich erreichbar | Das Dashboard ist ohne Reverse Proxy und HTTPS zugänglich | Port an 127.0.0.1 binden |
Es wird nur der Statuscode 200 geprüft | Ein Anwendungsfehler kann wie ein Erfolg aussehen | Keyword oder JSON Query ergänzen |
Das Tag latest wird verwendet | Es verweist auf den veralteten v1-Zweig | louislam/uptime-kuma:2 verwenden |
| Das Backup liegt auf demselben VPS | Es geht zusammen mit dem Server verloren | Das Verzeichnis data extern kopieren |
Kurzes Fazit
Uptime Kuma macht aus einem kleinen VPS eine eigene Monitoring-Zentrale für Websites, APIs, DNS, Ports, Zertifikate und Hintergrundaufgaben. Keyword erkennt eine defekte Seite, JSON Query eine falsche API-Antwort und Push ein gestopptes Backup oder einen ausgefallenen Cronjob.
Für eine zuverlässige Konfiguration betreiben Sie das Monitoring getrennt von der Produktion, schließen Port 3001, aktivieren HTTPS und 2FA und richten zwei Benachrichtigungskanäle ein. Anschließend konfigurieren Sie ein externes Backup des Datenverzeichnisses und eine unabhängige Prüfung von Uptime Kuma selbst.
FAQ
Ist Uptime Kuma kostenlos?
Ja. Das Projekt ist quelloffen und wird unter der MIT-Lizenz veröffentlicht. Kosten entstehen nur für Infrastruktur, Domain und externe Backups.
Wie viel RAM benötigt Uptime Kuma?
Für eine kleine Installation ist 1 GB RAM ein sinnvoller Einstieg. Für Hunderte Prüfungen, eine lange Verlaufsspeicherung oder Browser Engine sollten Sie 2 GB oder mehr einplanen.
Kann Uptime Kuma ohne Docker installiert werden?
Ja, mit Node.js und PM2. Docker Compose lässt sich auf einem VPS jedoch in der Regel einfacher aktualisieren, umziehen und wiederherstellen.
Kann Uptime Kuma ohne Domain verwendet werden?
Technisch ja, über die IP-Adresse oder einen SSH-Tunnel. Für einen dauerhaften Zugriff aus dem Internet ist eine Subdomain mit HTTPS sicherer.
Zeigt Uptime Kuma die Auslastung von CPU, RAM und Festplatte an?
Nicht wie ein vollwertiges System für Servermetriken. Ergänzen Sie es für die Ressourcenüberwachung mit Prometheus, Netdata, Zabbix oder einem anderen spezialisierten Werkzeug.
