Tropic Host

Uptime Kuma auf einem VPS: Monitoring für Websites und Server einrichten

7 Min Lesezeit
Tropic
Uptime Kuma auf einem VPS: Monitoring für Websites und Server einrichten

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

  1. Einen kleinen VPS getrennt von den überwachten Projekten bereitstellen.
  2. Eine Subdomain wie monitor.example.com auf diesen VPS verweisen lassen.
  3. Docker installieren und Uptime Kuma 2 starten.
  4. Den internen Port 3001 nach außen schließen und HTTPS einrichten.
  5. HTTP-, DNS-, TCP- oder Push-Monitore erstellen.
  6. Telegram und bei Bedarf eine Statusseite konfigurieren.
  7. 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 enable

Schließ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 version

3. 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 ps

Verwenden 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 caddy

Wenn 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):

  1. Geben Sie einen Namen und die vollständige URL ein.
  2. Legen Sie ein Intervall fest, zum Beispiel 60 Sekunden.
  3. Fügen Sie zwei Wiederholungsversuche hinzu, um zufällige Netzwerkfehler abzufangen.
  4. Wählen Sie einen Benachrichtigungskanal.
  5. 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-recreate

Prü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

FehlerWarum das problematisch istBessere Lösung
Monitoring läuft neben dem ProjektBei einem gemeinsamen Ausfall verschwinden sowohl Dienst als auch BenachrichtigungenEinen separaten VPS oder Standort verwenden
Port 3001 ist öffentlich erreichbarDas Dashboard ist ohne Reverse Proxy und HTTPS zugänglichPort an 127.0.0.1 binden
Es wird nur der Statuscode 200 geprüftEin Anwendungsfehler kann wie ein Erfolg aussehenKeyword oder JSON Query ergänzen
Das Tag latest wird verwendetEs verweist auf den veralteten v1-Zweiglouislam/uptime-kuma:2 verwenden
Das Backup liegt auf demselben VPSEs geht zusammen mit dem Server verlorenDas 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.

Uptime Kuma auf einem VPS: Monitoring für Websites und Server einrichten