Website Monitoring: kostenlose Tools, Open Source und Einrichtung
Website Monitoring für kleine Projekte: kostenlose Dienste und Open-Source-Tools im Vergleich, was du überwachen solltest und wie du es einrichtest.
Thema: DevOps & Hosting
Inhalt (9 Abschnitte)
Website Monitoring heißt: Ein Dienst ruft deine Seite in festen Abständen von außen auf und meldet sich, wenn sie nicht oder falsch antwortet. Kostenlos geht das mit UptimeRobot (50 Monitore, alle 5 Minuten) oder Better Stack (10 Monitore, alle 3 Minuten). Wer selbst betreiben will, nimmt Open Source wie Uptime Kuma oder Gatus.
Stand: 13. Oktober 2026. Preise, Grenzen und Befehle stammen von den Seiten und aus den Dokumentationen der Hersteller und Projekte, abgerufen an diesem Tag. Die Quellen stehen am Ende.
Was Website Monitoring prüft
Unter dem Begriff laufen mehrere Arten von Prüfungen, die verschiedene Fehler finden. Für eine kleine Website oder Web-App reichen meist die ersten drei.
| Prüfung | Was sie findet | Typisches Werkzeug |
|---|---|---|
| Erreichbarkeit (HTTP-Abruf) | Seite antwortet nicht, Fehlercode, Zeitüberschreitung | UptimeRobot, Better Stack, Uptime Kuma, Gatus |
| Schlüsselwort | Seite antwortet mit 200, zeigt aber eine Fehlerseite | UptimeRobot, Uptime Kuma |
| Zertifikat | TLS-Zertifikat läuft ab oder ist ungültig | Gatus, Bezahltarife von UptimeRobot |
| Heartbeat für Hintergrundjobs | Cronjob oder Backup läuft nicht mehr | Healthchecks.io, Better Stack, Uptime Kuma (Push) |
| Inhaltsänderung | Text oder Preis auf einer Seite hat sich geändert | changedetection.io |
| Mehrstufiger Ablauf | Anmeldung oder Bestellstrecke bricht ab | Zabbix (Web-Szenarien) |
Die wichtigste Regel steckt in der ersten Zeile: Die Prüfung muss von außen kommen. Ein Überwachungsdienst auf demselben Server wie die Website schweigt genau dann, wenn der Server ausfällt. Wer Uptime Kuma oder Gatus selbst betreibt, stellt sie deshalb auf einen zweiten Rechner, nicht neben die Anwendung.
Kostenlose Dienste im Vergleich
Gehostete Dienste kosten keine eigene Infrastruktur und prüfen von Rechnern, die nicht mit deinem Server ausfallen. Die kostenlosen Pläne unterscheiden sich vor allem in Zahl der Monitore, Prüfabstand und erlaubter Nutzung.
| Dienst | Kostenloser Plan | Prüfabstand kostenlos | Nächster Tarif | Hinweis des Anbieters |
|---|---|---|---|---|
| UptimeRobot | 50 Monitore, einfache Statusseite, 5 Integrationen | 5 Minuten | Solo: 9 € im Monat bei Jahreszahlung (108 € im Jahr), 10 € monatlich; 10 Monitore, 60 Sekunden | „Good for hobby and non-profit projects“ |
| Better Stack | 10 Monitore, 10 Heartbeats, 1 Statusseite, Alarme per Slack und E-Mail | 3 Minuten | Responder: 29 $ im Monat bei Jahreszahlung, 34 $ monatlich | „Free for personal projects“ |
| Healthchecks.io | 20 Jobs, 100 Logeinträge je Job | nach deinem Zeitplan | Business: 20 $ im Monat (16 $ bei Jahreszahlung), 100 Jobs; davor Supporter für 5 $ mit denselben Grenzen wie kostenlos | nur für Cronjobs, nicht für Website-Abrufe |
Zwei Einschränkungen stehen auf den Preisseiten selbst. UptimeRobot führt bei der Zertifikatsüberwachung den Hinweis, dass sie nur in Bezahltarifen enthalten ist; in der Liste des kostenlosen Plans steht sie trotzdem. Der Widerspruch liegt beim Anbieter, prüf das im Konto, bevor du dich darauf verlässt. SMS- und Anrufguthaben sind bei UptimeRobot im kostenlosen Plan nicht enthalten, lassen sich aber einzeln kaufen.
Nach den Formulierungen der Anbieter zielen die kostenlosen Pläne von UptimeRobot und Better Stack auf private Projekte. Für eine Firmenwebsite oder ein Kundenprojekt ist ein Bezahltarif der sauberere Weg; was genau erlaubt ist, regeln die Nutzungsbedingungen des jeweiligen Anbieters.
Healthchecks.io gehört in die Tabelle, obwohl es keine Website abruft. Die Dokumentation schreibt ausdrücklich, dass der Dienst nicht für das Überwachen von Websites per HTTP-Abruf gedacht ist. Er deckt die Lücke ab, die Website-Monitore offen lassen: Jobs, die still nicht mehr laufen.
Open Source zum Selbstbetreiben
Wer keine Daten an einen Dienst geben oder kürzere Abstände ohne Abo will, betreibt das Monitoring selbst. Alle vier Projekte sind kostenlos und quelloffen.
| Projekt | Lizenz | Betrieb | Stärke |
|---|---|---|---|
| Uptime Kuma | MIT | Docker oder Node.js ab 20.4 | Weboberfläche, Abstände ab 20 Sekunden, über 90 Benachrichtigungsdienste, Statusseiten |
| Gatus | Apache 2.0 | Docker, Konfiguration als YAML-Datei | Bedingungen auf Statuscode, Antwortzeit, Inhalt und Zertifikatslaufzeit |
| Upptime | MIT | GitHub Actions, Issues und Pages | ohne eigenen Server, Prüfung alle 5 Minuten, Ausfälle als GitHub-Issue |
| changedetection.io | Apache 2.0 | Docker | erkennt Änderungen am Inhalt einer Seite |
Uptime Kuma mit Docker
Uptime Kuma ist das naheliegende Werkzeug, wenn du eine Oberfläche willst. Laut Projektseite prüft es HTTP(S), TCP, Schlüsselwörter, JSON-Antworten, Websockets, Ping, DNS-Einträge, Docker-Container und Push-Signale. Der Start mit Docker:
docker run -d --restart=always -p 3001:3001 -v uptime-kuma:/app/data --name uptime-kuma louislam/uptime-kuma:2
Danach läuft Uptime Kuma auf Port 3001 aller Netzwerkschnittstellen. Soll es nur lokal erreichbar sein, etwa hinter einem Reverse Proxy, bindest du den Port mit -p 127.0.0.1:3001:3001. Netzlaufwerke wie NFS unterstützt das Projekt für die Daten nicht, das Datenverzeichnis muss lokal liegen.
Gatus als Konfigurationsdatei
Gatus hat keine Klickoberfläche zum Anlegen, sondern eine Datei. Das passt, wenn du Monitoring wie Code im Repository halten willst. Ein Beispiel nach der Dokumentation, das Statuscode, Antwortzeit und Zertifikat prüft:
endpoints:
- name: website
url: "https://example.org/health"
interval: 5m
conditions:
- "[STATUS] == 200"
- "[RESPONSE_TIME] < 300"
- "[CERTIFICATE_EXPIRATION] > 48h"
Ohne Angabe prüft Gatus alle 60 Sekunden. Gestartet wird es mit der eingebundenen Datei:
docker run -p 8080:8080 --mount type=bind,source="$(pwd)"/config.yaml,target=/config/config.yaml --name gatus ghcr.io/twin/gatus:stable
Upptime ohne eigenen Server
Upptime nutzt GitHub selbst: Ein Workflow in GitHub Actions ruft deine Adressen alle 5 Minuten auf, Antwortzeiten landen als Commits im Repository, bei einem Ausfall öffnet sich automatisch ein Issue, und GitHub Pages zeigt die Statusseite. Das Issue schließt sich, sobald die Seite wieder antwortet. Der Vorteil ist, dass kein Rechner von dir mitlaufen muss.
Zabbix für mehrstufige Abläufe
Zabbix ist ein vollständiges Monitoring-System und für eine einzelne Website groß. Interessant wird es, wenn du ohnehin Server damit überwachst: Mit Web-Szenarien führt Zabbix mehrere HTTP-Anfragen nacheinander aus, prüft, ob eine Seite einen bestimmten Text enthält, und kann eine Anmeldung nachstellen. Je Schritt erfasst es Antwortzeit, Antwortcode und Downloadgeschwindigkeit.
Hintergrundjobs: das am häufigsten vergessene Signal
Ein Website-Monitor sieht nur, was von außen erreichbar ist. Ein Backup, das seit Wochen nicht mehr läuft, oder ein Import, der still abbricht, bleibt unsichtbar. Dafür gibt es Heartbeat-Monitoring: Der Job meldet sich nach jedem erfolgreichen Lauf, und bleibt die Meldung aus, gibt es einen Alarm. Healthchecks.io beschreibt das als Totmannschalter.
Die Einrichtung ist eine Zeile in der Crontab. Das Beispiel aus der Dokumentation von Healthchecks.io:
# backup.sh täglich um 06:08, danach Erfolgsmeldung
8 6 * * * /home/me/backup.sh && curl -fsS -m 10 --retry 5 -o /dev/null https://hc-ping.com/your-uuid-here
Das && sorgt dafür, dass curl nur nach einem fehlerfreien Lauf meldet. -m 10 begrenzt die Laufzeit, --retry 5 wiederholt fehlgeschlagene Meldungen, -fsS hält die Ausgabe still, außer bei Fehlern. Laut Healthchecks.io erkennt diese Methode, wenn der ganze Rechner ausfällt, der Cron-Dienst nicht läuft, der Job mit einem Fehlercode endet oder ungewöhnlich lange braucht. Wie du die Backups selbst prüfbar machst, steht im Artikel über Backups, die wirklich funktionieren.
Der kostenlose Plan von Healthchecks.io deckt 20 Jobs ab. Bei einem Job, der alle 5 Minuten läuft, reichen die 100 Logeinträge laut Anbieter für 8 Stunden Rückblick, bei einem wöchentlichen Job für zwei Jahre. Das Programm selbst steht unter der BSD-Lizenz und lässt sich mit Docker auch selbst betreiben.
Eine Statusadresse, die mehr prüft als den Webserver
Ein Monitor, der nur die Startseite abruft, meldet „läuft“, solange der Webserver eine Seite ausliefert, auch wenn die Datenbank nicht antwortet. Besser ist eine eigene Adresse, die die wichtigsten Abhängigkeiten kurz anfragt und je nach Ergebnis mit 200 oder 503 antwortet. Ein Beispiel für Node.js mit Express, das die Datenbank über ein vorhandenes Verbindungsobjekt db prüft:
app.get('/health', async (req, res) => {
try {
await db.query('SELECT 1');
res.status(200).json({ status: 'UP' });
} catch (err) {
res.status(503).json({ status: 'DOWN' });
}
});
Auf diese Adresse richtest du den Monitor. Gatus kann zusätzlich den Inhalt auswerten, etwa mit der Bedingung [BODY].status == UP. Die Adresse sollte keine internen Details wie Fehlermeldungen oder Versionsnummern ausgeben, weil sie öffentlich erreichbar ist.
Alarme, die du nicht ignorierst
Die meisten Werkzeuge melden sich beim ersten Fehlschlag. Ein einzelner verlorener Abruf kann aber auch ein kurzer Aussetzer im Netz sein. Gatus löst einen Alarm deshalb in der Voreinstellung erst nach drei Fehlschlägen in Folge aus, der Wert lässt sich mit failure-threshold ändern. UptimeRobot führt in seinem Funktionsvergleich Schwellen auf: Alarm erst, wenn ein Monitor eine bestimmte Zahl von Minuten ausgefallen ist, und Wiederholungen in festen Abständen.
Zwei Regeln helfen nach Einschätzung dagegen, dass Alarme untergehen. Erstens: Ein Alarm, auf den du nicht sofort reagieren würdest, gehört in eine Übersicht oder einen täglichen Bericht, nicht aufs Telefon. Zweitens: Kritische Alarme brauchen einen Kanal, der dich auch abseits des Rechners erreicht, etwa die App des Dienstes oder einen Chat. Wer zu viele belanglose Meldungen bekommt, übersieht die eine, die zählt.
Welche Lösung zu welchem Projekt passt
| Ausgangslage | Naheliegende Wahl |
|---|---|
| Private Website, kein eigener Server zum Überwachen | Gehosteter Dienst im kostenlosen Plan oder Upptime |
| Kundenprojekt oder kommerzielle Seite | Bezahltarif eines gehosteten Dienstes |
| Eigener zweiter Server vorhanden, Oberfläche gewünscht | Uptime Kuma |
| Monitoring soll im Repository stehen | Gatus oder Upptime |
| Backups und Cronjobs | Healthchecks.io oder Heartbeats des Monitoring-Dienstes |
| Inhaltsänderungen fremder Seiten verfolgen | changedetection.io |
Einen günstigen zweiten Server für selbst betriebenes Monitoring findest du im Vergleich der Hetzner-Alternativen. Wie du einen eigenen Server grundsätzlich aufsetzt, beschreibt der Artikel VPS statt Cloud.
Quellen und Stand
Alle Angaben wurden am 13. Oktober 2026 geprüft an:
- UptimeRobot: Preise und Funktionsvergleich
- Better Stack: Preise und Uptime-Produktseite
- Healthchecks.io: Preise, Dokumentation, Cronjobs überwachen und Quellcode
- Uptime Kuma auf GitHub
- Gatus auf GitHub
- Upptime auf GitHub
- changedetection.io auf GitHub
- Zabbix-Dokumentation: Web monitoring
Häufige Fragen
Was ist Website Monitoring?
Website Monitoring ist die regelmäßige, automatische Prüfung einer Website von außen. Ein Dienst ruft die Seite in festen Abständen auf und meldet sich per E-Mail, App oder Chat, wenn sie nicht antwortet, einen Fehlercode liefert oder ein erwarteter Text fehlt. Viele Dienste prüfen zusätzlich Zertifikate und Hintergrundjobs.
Gibt es Website Monitoring kostenlos?
Ja. UptimeRobot bietet kostenlos 50 Monitore mit 5 Minuten Abstand, Better Stack 10 Monitore mit 3 Minuten Abstand. Beide Anbieter beschreiben ihre kostenlosen Pläne als für private oder gemeinnützige Projekte gedacht. Selbst betriebene Open-Source-Werkzeuge wie Uptime Kuma, Gatus und Upptime kosten keine Lizenzgebühr.
Welches Website-Monitoring-Tool ist Open Source?
Die bekanntesten sind Uptime Kuma (MIT-Lizenz, mit Weboberfläche), Gatus (Apache 2.0, Konfiguration als YAML), Upptime (MIT, läuft auf GitHub Actions) und für Inhaltsänderungen changedetection.io (Apache 2.0). Für größere Umgebungen gibt es Zabbix mit Web-Szenarien.
Kann ich Website Monitoring über GitHub betreiben?
Ja, mit Upptime. Ein Workflow in GitHub Actions prüft deine Adressen alle 5 Minuten, bei einem Ausfall öffnet sich automatisch ein Issue, und GitHub Pages zeigt eine Statusseite. Ein eigener Server ist dafür nicht nötig.
Wie überwache ich eine Website auf Änderungen?
Dafür sind Werkzeuge zur Änderungserkennung gedacht, etwa changedetection.io. Es vergleicht den Inhalt einer Seite bei jedem Abruf mit dem letzten Stand und benachrichtigt dich, wenn sich etwas ändert. Selbst betrieben läuft es mit Docker, der Anbieter hat zusätzlich eine gehostete Fassung gegen Gebühr.
Wie oft sollte eine Website geprüft werden?
Das hängt davon ab, wie schnell du von einem Ausfall wissen musst. Kostenlose Pläne prüfen alle 3 bis 5 Minuten, Bezahltarife von UptimeRobot alle 60 Sekunden (Solo) bis 15 Sekunden (Scale), Uptime Kuma selbst betrieben ab 20 Sekunden. Für eine kleine Website reichen nach Einschätzung die 5 Minuten der kostenlosen Pläne meist aus.
Ist Website Monitoring mit Zabbix sinnvoll?
Wenn du Zabbix ohnehin für deine Server nutzt, ja. Die Web-Szenarien prüfen mehrstufige Abläufe mit Anmeldung und Textsuche. Nur für eine einzelne Website ist ein eigenes Zabbix nach Einschätzung zu viel Aufwand; ein gehosteter Dienst oder Uptime Kuma ist schneller eingerichtet.