Watchdog
Selbst gehostetes Monitoring für Websites, Container und Server. 15 Check-Typen, Agenten für Remote-Server, E-Mail-Alarme bei Statuswechseln, SQLite statt eigener Datenbank.
Watchdog
Diese Dokumentation bezieht sich immer auf die aktuellste veröffentlichte Version.
Watchdog ist eine selbst gehostete Monitoring-Anwendung für Websites, Container und Server. Sie läuft als Docker-Compose-Stack und speichert alles in einer SQLite-Datei, es ist kein Datenbank-Server nötig.
Das Monitoring arbeitet in zwei Modi: Dashboard-Checks führt der Watchdog-Server selbst aus, etwa HTTP, SSL, TCP oder DNS. Agenten-Checks laufen in einem kleinen Container auf der überwachten Maschine und melden ihre Ergebnisse zurück, etwa Festplatte, Prozesse oder Dateien.
Live-Demo: Teste Watchdog live unter demo.markus-michalski.net, ohne Installation und ohne Risiko.
Überblick
graph LR
A["Admin im Browser"] --> B["app: Oberfläche und API"]
C["scheduler"] -->|"jede Minute"| D["Warteschlange"]
D --> E["worker"]
E -->|"HTTP, SSL, TCP, DNS, Docker"| F["Überwachte Ziele"]
G["agent auf dem Server"] -->|"Checks holen, Ergebnisse senden"| B
E -->|"Statuswechsel"| H["E-Mail an Kontakte"]
B --> I["SQLite"]
Dokumentation
| Seite | Inhalt |
|---|---|
| Installation | Docker-Compose-Stack für lokal, Stage und Live, Update, Datensicherung, Deinstallation |
| Konfiguration | Umgebungsvariablen, Clients, Kontakte, URLs und Check-Einstellungen |
| Bedienung und Befehle | Dashboard, Run now, Verlauf, make- und Konsolen-Befehle |
| Check-Typen | Alle 15 Check-Typen mit Feldern, Status und Meldungen |
| Benachrichtigungen | Wann und wie Watchdog E-Mails versendet |
| Agenten | Host- und Remote-Agenten einrichten |
| Eigene Checks schreiben | Eigenen Check-Typ in PHP ergänzen |
| Sicherheit und Datenschutz | Zugang, Tokens, Berechtigungen, gespeicherte Daten |
| Technische Details | Architektur, Ablauf, Datenmodell, Agenten-API |
| Fehlerbehebung | Symptome, Prüfung und Lösung |
Funktionen
| Funktion | Details |
|---|---|
| Check-Typen | 15 eingebaute Typen: HTTP, HTTP-Inhalt, SSL-Zertifikat, DNS, TCP-Port, Redis, Datenbank, Docker, Docker Exec, Festplatte, Load Average, Prozess, Log-Datei, Datei-Alter, Dateigröße |
| Agenten | Agent-Container für Host- und Remote-Server, der Checks abholt und Ergebnisse sendet |
| Planung | Intervall in Tagen, Stunden und Minuten oder einmal täglich zu einer Uhrzeit, Run now für sofortige Läufe |
| Alarme | E-Mail an die Kontakte eines Clients bei Wechsel nach WARN oder FAIL und bei Wiederherstellung, keine wiederholten Mails |
| Verlauf | Ergebnisse je Check mit Filtern, einstellbare Aufbewahrung in Tagen |
| Erweiterbar | Eigene Check-Typen als PHP-Klasse |
| Ohne Datenbank-Server | SQLite, Messenger-Warteschlange in derselben Datenbank |
Anforderungen
| Komponente | Anforderung |
|---|---|
| Docker mit Compose-Plugin | Alle Dienste laufen als Container |
| PHP und Symfony | PHP 8.4 und Symfony 8.1, enthalten im Image |
| Mail-Server | SMTP-Zugang für Alarm-E-Mails (lokal und auf Stage fängt Mailpit sie ab) |
| Reverse Proxy mit HTTPS | Für Stage und Live, die App lauscht nur auf 127.0.0.1 |
Lizenz
Watchdog steht unter der PolyForm Noncommercial License 1.0.0. Der Quelltext ist einsehbar, die Nutzung ist für private und nicht-kommerzielle Zwecke frei. Das ist keine OSI-Open-Source-Lizenz. Kommerzielle Nutzung erfordert eine ausdrückliche Genehmigung des Maintainers.
Beiträge erfordern das Contributor License Agreement. Den Entwicklungs-Workflow beschreibt CONTRIBUTING.md.
Support
Fehler und Funktionswünsche: GitHub Issues. Sicherheitslücken meldest Du über die private Schwachstellenmeldung des Repositories, siehe Sicherheit und Datenschutz.