Markus Michalski FAQ

Watchdog: Konfiguration

Umgebungsvariablen mit Standardwerten sowie Einrichtung von Clients, Kontakten, URLs und Checks in der Oberfläche. Intervall, tägliche Uhrzeit, Aufbewahrung und Runner.

English Version

Zurück zur Übersicht

Watchdog: Konfiguration

Umgebungsvariablen

Die Werte stehen je Umgebung in .env.local (lokal), .env.stage oder .env.live. Die Spalte Standard zeigt den Wert aus der mitgelieferten .env, sofern dort einer gesetzt ist.

Variable Standard Bedeutung
APP_ENV dev Symfony-Umgebung. compose.live.yml setzt prod, compose.stage.yml und der lokale Stack setzen dev (mit Debug-Werkzeugen wie Profiler und Debug-Toolbar, die ohne Anmeldung erreichbar sind, siehe Sicherheit)
APP_DEBUG 0 Debug-Modus
APP_SECRET leer Geheimer Schlüssel der App, Pflichtwert. Erzeugen mit php -r "echo bin2hex(random_bytes(32));"
DATABASE_URL sqlite:///%kernel.project_dir%/var/data.db Datenbank. Vorgesehen ist SQLite, ein eigener Datenbank-Container ist nicht nötig
MESSENGER_TRANSPORT_DSN doctrine://default?auto_setup=0 Warteschlange für Checks und E-Mails, liegt in derselben Datenbank
APP_ADMIN_USER admin Benutzername des einzigen Admin-Zugangs
APP_ADMIN_PASSWORD_HASH not-set Bcrypt-Hash des Admin-Passworts, siehe Installation
MAILER_DSN smtp://mailpit:1025 SMTP-Zugang für Alarm-E-Mails, z. B. smtp://user:pass@smtp.example.com:587
MAILER_FROM watchdog@example.com Absenderadresse der Alarm-E-Mails
DEFAULT_URI http://localhost:8087 Basis-URL für das URL-Generieren außerhalb von Web-Requests. In den Alarm-E-Mails steht kein Link zur App
TRUSTED_PROXIES leer IP des Reverse Proxys, niemals *. In compose.stage.yml und compose.live.yml setzt Compose den Wert fest auf REMOTE_ADDR, ein Eintrag in der Env-Datei wirkt dort nicht
WATCHDOG_AGENT_TOKEN leer Token des Host-Agenten, siehe Agenten
WATCHDOG_DASHBOARD_URL leer Nur für Agenten: Basis-URL des Dashboards ohne abschließenden Schrägstrich
HOST_ROOT leer Nur für Agenten: Pfad-Präfix, unter dem das Host-Dateisystem eingebunden ist, z. B. /host/root
DOCKER_GID 995 Nur Compose: Gruppen-ID des Docker-Sockets für Worker und Scheduler (group_add)

Zeitzone: Dockerfile und Compose-Dateien setzen Europe/Berlin. Zeiten in der Oberfläche, die tägliche Ausführungszeit und die Aufbewahrungsbereinigung beziehen sich auf diese Zeitzone.

Einrichtungsreihenfolge in der Oberfläche

Die Navigation besteht aus Dashboard, Clients, Contacts und Agents.

  1. Unter Contacts Kontakte anlegen: Name und E-Mail-Adresse. Die E-Mail-Adresse ist eindeutig.
  2. Unter Clients einen Client anlegen: Name, Active und Alert contacts (die Kontakte, die benachrichtigt werden sollen).
  3. Auf der Seite des Clients mit + Add URL die überwachten URLs hinterlegen.
  4. Mit + Add check die Checks anlegen.

Client

Feld Bedeutung
Name Anzeigename, steht in Betreff und Text der Alarm-E-Mails
Active Inaktive Clients werden nicht geplant und nicht an Agenten ausgeliefert. Manuelles Run now funktioniert trotzdem
Alert contacts Empfänger der Alarm-E-Mails für alle Checks dieses Clients. Ohne Kontakte versendet Watchdog keine E-Mails

Löschst Du einen Client, verschwinden auch seine Checks.

URL

Feld Bedeutung
URL Muss eine gültige URL mit Domain-Endung sein, Hostnamen ohne Punkt wie http://localhost lehnt das Formular ab
Label (optional) Kurzname für Auswahllisten und E-Mails, standardmäßig die URL
BasicAuth username / password Optionale Zugangsdaten, die HTTP- und HTTP-Inhalt-Checks mitsenden. Das Passwort wird unverschlüsselt in der Datenbank gespeichert

Check

Feld Standard Bedeutung
Check type Einer der Check-Typen
Runner Dashboard (Network) Dashboard (Network) führt den Check im Worker-Container aus, Agent (Local) auf einem Agenten. Welche Runner ein Typ erlaubt, regelt das Formular per JavaScript
Agent Nur bei Runner Agent: der ausführende Agent
Interval 5 min Abstand zwischen zwei Läufen in Tagen, Stunden und Minuten, mindestens 1 Minute
Daily at (optional) leer Uhrzeit HH:MM. Wenn gesetzt, läuft der Check einmal täglich zu dieser Zeit und das Intervall wird ignoriert
Keep results for (days) leer Aufbewahrungsdauer der Ergebnisse. Leer behält alle Ergebnisse
Active an Inaktive Checks werden nicht geplant

Die typspezifischen Felder stehen auf den Seiten der einzelnen Check-Typen. Felder, die Du leer lässt, ersetzt Watchdog beim Ausführen durch die Standardwerte des Typs.

Das Intervall ist ein Richtwert mit kleiner Toleranz. Der Scheduler prüft Dashboard-Checks im Minutentakt und startet einen Check, sobald seit dem letzten Ergebnis mindestens das Intervall minus 30 Sekunden vergangen sind. Der Agent prüft alle 30 Sekunden und startet einen Check, sobald das Intervall minus 5 Sekunden erreicht ist. Ein Intervall unter einer Minute gibt es nicht.

Aufbewahrung der Ergebnisse

Täglich um 03:00 Uhr löscht der Scheduler für jeden Check mit gesetzter Aufbewahrung alle Ergebnisse, die älter als die angegebene Zahl an Tagen sind. Checks ohne Wert behalten alle Ergebnisse. Bei einem Check im Fünf-Minuten-Takt entstehen rund 288 Ergebnisse pro Tag, setze die Aufbewahrung daher bewusst.

Rechtstexte

Impressum und Datenschutzerklärung im Footer sind Platzhalter. Die Dateien templates/legal/impressum.html.twig und templates/legal/datenschutz.html.twig kannst Du durch eigene Texte ersetzen. Die Vorlagen liegen als *.dist bei, make setup legt fehlende Dateien daraus an.

Weitere Einstellungen

Thema Wert
API-Rate-Limit 60 Anfragen pro Minute und IP für alle Pfade unter /api/
Fehlgeschlagene Nachrichten Wiederholungen: bis zu 3, jeweils mit doppeltem Abstand, danach Transport failed
Container-Neustart Worker und Scheduler beenden sich nach 3600 Sekunden oder 128 MB Speicher und starten durch restart: unless-stopped neu