Markus Michalski FAQ

Watchdog: Bedienung und Befehle

Dashboard, Statusanzeige, Run now, Verlauf mit Filtern sowie die make- und Konsolen-Befehle für Betrieb und Wartung von Watchdog.

English Version

Zurück zur Übersicht

Watchdog: Bedienung und Befehle

Dashboard

Das Dashboard zeigt eine Karte pro Client. Das Kartenabzeichen zeigt den schlechtesten Status der aktiven Checks des Clients, die schon ein Ergebnis haben. Inaktive Checks zählen nicht. Hat noch kein aktiver Check ein Ergebnis, steht dort PENDING.

Status Bedeutung
OK Der Check war in Ordnung
WARN Eine Warnschwelle ist überschritten
FAIL Der Check ist fehlgeschlagen
UNKNOWN Der Check konnte kein Ergebnis liefern, etwa durch fehlende Konfiguration oder fehlenden Docker-Socket
PENDING Es liegt noch kein Ergebnis vor

Die Reihenfolge der Schwere ist FAIL vor WARN vor UNKNOWN vor OK. Oben stehen ein Suchfeld nach Client-Namen und Filter nach Status. Ein Klick auf die Check-Zahl einer Karte klappt die einzelnen Checks mit Status, Zeitpunkt und Antwortzeit auf.

Client-Seite

Die Seite eines Clients listet URLs, Alarm-Kontakte und alle Checks mit letztem Status, Meldung, Zeitpunkt und Antwortzeit. Filter nach Status und Check-Typ sowie eine Suche helfen bei vielen Checks. Je Check gibt es:

Aktion Wirkung
Run now Führt den Check sofort aus. Dashboard-Checks gehen in die Warteschlange, das Ergebnis erscheint nach wenigen Sekunden. Bei Agenten-Checks setzt Watchdog ein Merkzeichen, das der Agent beim nächsten Abruf abholt, das dauert bis zu etwa 30 Sekunden
History Verlauf der Ergebnisse
Edit Check bearbeiten

Run now funktioniert auch für inaktive Clients. Ein manueller Lauf kann dieselben Benachrichtigungen auslösen wie ein geplanter.

Verlauf

Der Verlauf eines Checks (Schaltfläche History) zeigt Zeit, Status, HTTP-Code, Antwortzeit und Meldung. Filter:

Filter Wirkung
Status Nur OK, WARN, FAIL oder UNKNOWN
HTTP Code Nur Ergebnisse mit diesem Statuscode (100 bis 599)
From / To Zeitraum nach Datum, der To-Tag ist eingeschlossen
Entries 10, 25, 50 oder 100 Einträge pro Seite, Standard 50

Agenten

Unter Agents siehst Du je Agent den Status Online (in den letzten 10 Minuten gemeldet), Offline oder Never seen, die zugewiesenen Checks und den letzten Kontakt. Hier legst Du Agenten an, benennst sie um, erzeugst Tokens neu oder löschst sie. Details stehen unter Agenten.

Ein Agent, der offline geht, löst keine Benachrichtigung aus. Seine Checks liefern dann keine neuen Ergebnisse, der zuletzt gemeldete Status bleibt auf dem Dashboard stehen.

make-Befehle

Alle Ziele laufen im Verzeichnis des Repositories. make help listet sie vollständig.

Befehl Wirkung
make local-build / local-up / local-down / local-logs / local-shell Lokaler Entwicklungs-Stack
make stage-build Stage-Image ohne Cache neu bauen
make stage-up / stage-down / stage-restart Stage starten (mit Migrationen), stoppen, neu starten
make stage-update Image neu bauen, Container neu starten, Cache leeren, Migrationen ausführen
make stage-logs / stage-app-logs / stage-shell Logs aller Container, Logs der App, Shell in der App
make stage-checks-off / stage-checks-on Alle Checks pausieren bzw. fortsetzen
make stage-clients-off / stage-clients-on Alle Clients deaktivieren bzw. aktivieren
make live-up / live-down / live-restart Live starten (mit Migrationen), stoppen, neu starten
make live-build Live-Image ohne Cache neu bauen
make live-update Neu bauen und mit minimaler Unterbrechung ausrollen, danach Migrationen
make live-logs / live-shell Logs, Shell in der App
make live-checks-off / live-checks-on / live-clients-off / live-clients-on Wie bei Stage, für Live
make migrate, make cc Migrationen bzw. Cache leeren (Stage)
make setup Fehlende Rechtstext- und Override-Dateien aus den Vorlagen anlegen
make test, make stan, make cs, make fix, make lint, make smoke Qualitätswerkzeuge (PHPUnit, PHPStan Level 9, Code-Style, Lint)

Die Befehle *-checks-off setzen is_active = 0 per SQL für alle Checks, *-checks-on setzt alle auf aktiv. Das überschreibt auch Checks, die Du vorher bewusst deaktiviert hattest.

Konsolen-Befehl des Agenten

Watchdog bringt einen eigenen Konsolen-Befehl mit:

php bin/console watchdog:agent:run
Option Standard Bedeutung
--dashboard-url Env WATCHDOG_DASHBOARD_URL Basis-URL des Dashboards
--token Env WATCHDOG_AGENT_TOKEN Agenten-Token
--tick 30 Sekunden zwischen zwei Durchläufen (mindestens 1)
--config-refresh 300 Sekunden zwischen zwei Abrufen der Check-Liste (mindestens 60)
--run-once aus Check-Liste holen, alle Checks einmal ausführen, Ergebnisse senden und beenden

Ohne Dashboard-URL oder Token beendet sich der Befehl mit Exit-Code 1. Mit --run-once gilt Exit-Code 0 bei Erfolg und 1, wenn Abruf oder Senden scheitert.

Weitere Befehle stammen vom Framework, etwa php bin/console doctrine:migrations:migrate, security:hash-password und messenger:failed:show. Im Container führst Du sie so aus:

docker compose -f compose.live.yml exec --user www-data app php bin/console messenger:failed:show