Zum Inhalt springen

Konfiguration

Alles läuft über Umgebungsvariablen; keine ist erforderlich. Es gibt keine Konfigurationsdatei zum Einbinden.

VariableStandardRolle
DUMBMONIT_BIND0.0.0.0:8080Lauschadresse der API und der Web-Oberfläche, innerhalb des Containers.
PUID / PGID65532Benutzer und Gruppe, als die der Server läuft, wenn der Container als root startet (user: "0:0", wie in der mitgelieferten docker-compose.yml): Das Datenverzeichnis wird beim Start an sie übergeben, danach wird root abgegeben. 0 wird abgelehnt. DUMBMONIT_PUID / DUMBMONIT_PGID haben Vorrang. Sonst wird er ignoriert. Siehe Berechtigungen.
DUMBMONIT_DATA_DIR/dataPersistentes Verzeichnis: dumbmonit.db (SQLite), secret.key, vm/ (eingebettetes VictoriaMetrics) und webchange/ (Screenshots von Website-Änderungen).
DUMBMONIT_VM_URL(nicht gesetzt)Basis-URL eines externen VictoriaMetrics (http://host:8428). Ist sie gesetzt, wird das eingebettete nicht gestartet; siehe unten.
DUMBMONIT_SECRET(erzeugt)Instanzgeheimnis. Ist es leer, wird es aus <data dir>/secret.key gelesen, beim ersten Start erzeugt. Verschlüsselt Monitor-Zugangsdaten, Kanalgeheimnisse und Agent-Tokens mit AES-256-GCM.
DUMBMONIT_MAX_CONCURRENT_PROBES64Maximale gleichzeitige Prüfungen, alle Collectors zusammen.
DUMBMONIT_WEBSITE_MAX_CONCURRENT10Maximale gleichzeitige Website-Zustands-Prüfungen, 1 bis 256, innerhalb des obigen Limits.
DUMBMONIT_WEBSITE_MAX_PER_HOST1Maximale gleichzeitige Website-Prüfungen an eine Domain (www.example.com und shop.example.com zählen als eine), 1 bis 16.
DUMBMONIT_WEBSITE_HOST_SPACING_SECS2Mindestsekunden zwischen zwei Website-Prüfungen an eine Domain, 0 bis 3600. Die Option host_spacing_seconds einer Website überschreibt sie nach der Prüfung dieser Website.
DUMBMONIT_WEBSITE_CHANGE_CHECK_MINUTES360Standardperiode in Minuten des Metadatenvergleichs einer Website (Titel, Beschreibung, Canonical, endgültige Adresse, robots.txt), 0 bis 10080; 0 vergleicht bei jeder Prüfung. Verfügbarkeit wird weiterhin bei jedem Abfrageintervall geprüft. Die Option change_check_minutes einer Website überschreibt sie.
DUMBMONIT_PROBE_TIMEOUT_SECS10Hartes Timeout einer Prüfung. Dienstmonitore haben eine eigene, kürzere Option timeout_seconds.
DUMBMONIT_FLUSH_INTERVAL_SECS5Periode der gebündelten Schreibvorgänge Richtung VictoriaMetrics.
DUMBMONIT_FLUSH_BATCH5000Anzahl gepufferter Messwerte, die einen Schreibvorgang auslöst, bevor die Periode abläuft.
DUMBMONIT_WORKERSmin(4, CPUs)Threads der asynchronen Runtime. Der Server verbringt seine Zeit mit Warten auf das Netzwerk: Vier genügen für ein Homelab, erhöhen Sie sie nur für Hunderte von Monitoren.
DUMBMONIT_DB_POOL4Maximale offene SQLite-Verbindungen. Jede kostet einen Thread und einen 2-MB-Seitencache; Leerlaufverbindungen schließen nach fünf Minuten.
DUMBMONIT_LOGinfoLogfilter, tracing-Syntax: debug, warn, dumbmonit=debug,sqlx=warn …
DUMBMONIT_AGENT_DIR/agentsVerzeichnis der Agent-Binaries, ausgeliefert unter /download/. Leer oder fehlend: Der Installationsbefehl scheitert mit 404, der Server läuft weiter.
DUMBMONIT_RESET_PASSWORD(aus)1, true, yes oder on: Löscht beim Start das Passwort und jede Sitzung. Die Oberfläche zeigt dann wieder /setup. Entfernen Sie sie danach.
DUMBMONIT_COOKIE_SECURE(aus)1, um das Attribut Secure am Sitzungscookie immer zu setzen. Nur hinter HTTPS: Über einfaches HTTP würde der Browser das Cookie nie zurücksenden. Ohne sie wird das Attribut trotzdem hinzugefügt, sobald der Browser auf einer https://-Seite ist (sein Origin sagt es, oder ein vertrauenswürdiger Proxy sendet X-Forwarded-Proto: https), sodass einfaches HTTP im LAN weiter funktioniert.
DUMBMONIT_TRUSTED_PROXIES(leer)Reverse-Proxys, deren X-Forwarded-For, X-Forwarded-Proto und X-Forwarded-Host geglaubt werden, als Adressen oder CIDR-Bereiche, durch Kommas getrennt (10.0.0.5, 172.16.0.0/12). Der Login-Ratenbegrenzer und das Sicherheitslog sehen dann die echte Client-Adresse statt der des Proxys; ohne sie teilt sich jeder Besucher hinter dem Proxy einen Bucket. Links von Statusseiten (RSS-Feed, Abonnement-E-Mails) und die Rücksprungadresse des Single Sign-On verwenden den weitergeleiteten Host ebenfalls nur von diesen Proxys. Die Header werden von jeder anderen Adresse ignoriert, sodass ein Client weder seinen eigenen Bucket noch die Adresse eines Links wählen kann.
DUMBMONIT_OIDC_AUTO_CREATE(aus)true, um bei der ersten Single-Sign-On-Anmeldung einer unbekannten Identität ein Konto zu erstellen. Aus können sich nur bestehende Konten (bereits verknüpft oder über eine vom Anbieter verifizierte E-Mail zugeordnet) anmelden. Wie die übrigen Variablen DUMBMONIT_OIDC_* nur gelesen, solange in der Oberfläche keine Single-Sign-On-Einstellungen gespeichert sind.
DUMBMONIT_OIDC_ALLOW_HTTP(aus)1, um einen OpenID-Connect-Issuer in einfachem http:// zu akzeptieren. Aus lehnt der Einstellungsbildschirm alles außer https:// ab: Ein Klartext-Issuer gibt den Autorisierungscode und das Client-Secret an jeden, der im Netzwerk mithört. Nur für einen Testanbieter auf dem Loopback.
DUMBMONIT_SETUP_CODE(erzeugt)Code, den /setup verlangt, solange kein Administrator existiert. Nicht gesetzt, wird bei jedem Start ein zufälliger im Serverlog ausgegeben; setzen Sie ihn für ein automatisiertes Deployment. Siehe Installation mit Docker.
DUMBMONIT_PUBLIC_URL(nicht gesetzt)Adresse, unter der Browser DumbMonit erreichen (https://monit.example.org). Verwendet für Links in Benachrichtigungen und Statusseiten-E-Mails, die Single-Sign-On-Redirect-URI und den an Push-Dienste gegebenen Kontakt (nur HTTPS). Ein in der Oberfläche gespeicherter Wert (Benachrichtigungsrichtlinie, SSO-Einstellungen) hat Vorrang.
DUMBMONIT_API_CORS_ORIGINS(jeder Origin)Origins, die die API Cross-Origin mit einem Bearer-Token aufrufen und den MCP-Endpunkt erreichen dürfen: eine kommagetrennte Liste, oder off für keine. Siehe HTTP-API.
DUMBMONIT_OIDC_ISSUER(nicht gesetzt)Issuer-URL des OpenID-Connect-Anbieters; Discovery wird aus {issuer}/.well-known/openid-configuration gelesen. Muss https:// sein, sofern DUMBMONIT_OIDC_ALLOW_HTTP nicht gesetzt ist.
DUMBMONIT_OIDC_CLIENT_ID(nicht gesetzt)Beim Anbieter registrierte Client-ID.
DUMBMONIT_OIDC_CLIENT_SECRET(nicht gesetzt)Client-Secret.
DUMBMONIT_OIDC_PROVIDER_NAMESSOBeschriftung der Schaltfläche „Weiter mit …“.
DUMBMONIT_OIDC_SCOPESopenid profile emailAngeforderte Scopes, durch Leerzeichen getrennt.
DUMBMONIT_OIDC_GROUPS_CLAIMgroupsToken-Claim, der die Gruppen des Benutzers auflistet.
DUMBMONIT_OIDC_ADMIN_GROUPS(leer)Kommagetrennte Gruppen, deren Mitglieder Administratoren werden.
DUMBMONIT_OIDC_OPERATOR_GROUPS(leer)Kommagetrennte Gruppen, deren übrige Mitglieder Operatoren werden. Siehe Single Sign-On.
DUMBMONIT_METRICS_PUBLIC(aus)1, um /metrics, /federate und /prometheus/api/v1/… ohne API-Token auszuliefern. Jeder, der den Port erreicht, liest dann jede Messung jedes Monitors und den Zustand der Instanz; setzen Sie es nur dort, wo bereits etwas anderes den Zugriff auf den Port beschränkt. Siehe Metriken.
DUMBMONIT_ALERT_INTERVAL_SECS30Auswertungsperiode der Alarme. Werte unter 10 werden auf 10 angehoben.
DUMBMONIT_ALERT_HISTORY_DAYS90Aufbewahrung des Alarmverlaufs in Tagen.
DUMBMONIT_BACKUP_ENABLED1Geplante lokale Sicherungen der Datenbank. 0, false, no oder off, um sie nicht mehr zu schreiben. Siehe Sicherung und Wiederherstellung.
DUMBMONIT_UPDATE_CHECK1off stoppt den täglichen Blick auf das neueste GitHub-Release (Air-Gap-Instanzen). Siehe Update.
DUMBMONIT_BACKUP_DIR<data dir>/backupsWohin die geplanten Sicherungen geschrieben werden. Verweisen Sie damit auf ein zweites Volume, um den Verlust des ersten zu überstehen.
DUMBMONIT_BACKUP_INTERVAL_HOURS24Stunden zwischen zwei Sicherungen, 1 bis 8760. Die erste erfolgt ein Intervall nach dem Start, nicht beim Start.
DUMBMONIT_DEMO(aus)1 für eine öffentliche, schreibgeschützte Demo mit einem festen fiktiven Bestand, Anmeldung demo / demo. Erstellt die Datenbank bei jedem Start neu: nie auf einem echten Datenvolume. Siehe Eine Demo-Instanz betreiben.
DUMBMONIT_BACKUP_KEEP7Wie viele Sicherungen aufbewahrt werden, 1 bis 365. Die ältesten werden samt ihrer .key entfernt.
DUMBMONIT_BROWSER_URL(nicht gesetzt)Headless Chromium für die Screenshots von Website-Änderungen, als http://host:9222 (sein DevTools-Port). Fügen Sie Ihrer Compose-Datei einen chromedp/headless-shell-Dienst hinzu, wie unter Screenshots gezeigt. Nicht gesetzt: nur Textvergleich.

Die Aufbewahrung der Baseline (60 Tage) und die 14-tägige Lernphase sind nicht konfigurierbar.

DumbMonit hieß bis September 2026 EzyMonit. Jede Variable DUMBMONIT_* wird als Fallback auch unter ihrem alten Namen EZYMONIT_* gelesen, mit einer Warnung beim Start pro noch so gesetzter Variable (EZYMONIT_X is deprecated, use DUMBMONIT_X). Die alte Datenbankdatei /data/ezymonit.db wird beim Start in dumbmonit.db umbenannt, und Agent-Tokens ezym_… bleiben gültig (neue sind dmon_…). Das Sitzungscookie heißt jetzt dumbmonit_session: Der erste Start nach der Umbenennung meldet alle einmalig ab.

Das Image liefert das VictoriaMetrics-Binary mit. Sofern DUMBMONIT_VM_URL nicht gesetzt ist, startet der Server es beim Start als Kindprozess, leitet seine Logzeilen ins Serverlog weiter, startet es mit Backoff neu, wenn es stirbt, und stoppt es beim Herunterfahren (SIGTERM, 20 s Gnadenfrist, dann Kill; das stop_grace_period der Compose-Datei lässt dafür Raum).

VariableStandardRolle
DUMBMONIT_VM_BINARY/victoria-metrics-prodPfad des zu startenden VictoriaMetrics-Binarys.
DUMBMONIT_VM_LISTEN127.0.0.1:8428Lauschadresse, innerhalb des Containers. Standardmäßig Loopback: Nur der Server spricht damit. Das Entwicklungs-Overlay setzt 0.0.0.0:8428 und veröffentlicht den Port.
DUMBMONIT_VM_RETENTION12Aufbewahrung in der Syntax von -retentionPeriod: eine Zahl von Monaten oder eine Dauer wie 30d oder 2y.
DUMBMONIT_VM_MEMORY256MBBudget für die Caches von VictoriaMetrics (-memory.allowedBytes). Ohne Budget dimensioniert VM sie für 60 % des RAMs des Hosts, und sein residenter Speicher wächst tagelang. Einige Dutzend Monitore passen in 256 MB; erhöhen Sie es für Hunderte von Hosts.

Seine Daten liegen in <data dir>/vm, auf demselben Volume wie die Datenbank. Drei Flags sind vom Server fest vorgegeben und nicht konfigurierbar: -search.maxUniqueTimeseries=100000 (eine ausufernde Abfrage kann das Budget nicht erschöpfen), -search.maxConcurrentRequests=4 (eine Oberfläche plus die Alarm-Engine) und -dedup.minScrapeInterval=10s (doppelte Punkte, die weniger als zehn Sekunden auseinanderliegen, werden zusammengefasst; beim 30-s-Takt der Collectors geht nichts verloren).

Ist DUMBMONIT_VM_URL gesetzt, entfällt all das: Der Server verwendet die von Ihnen genannte Instanz, und die eingebettete wird nie gestartet. GET /api/health sagt, in welchem Fall Sie sind (victoria.embedded).

Die mitgelieferte docker-compose.yml liest keine Variable und braucht keine .env-Datei. Alles wird unter environment: des Dienstes gesetzt oder durch Bearbeiten der Datei; siehe Erweiterte Optionen (Port, Geheimnis, Aufbewahrung und Speicher, externes VictoriaMetrics, Passwort-Reset, Screenshots). Das Entwicklungs-Overlay docker-compose.dev.yml liest DUMBMONIT_VM_PORT (Standard 8428) für den Host-Port des eingebetteten VictoriaMetrics.

PortContainerZweck
8080/tcpdumbmonitWeb-Oberfläche, API, Agent-Installer und Downloads, Agent-Ingest. Der einzige zu veröffentlichende Port.
8428/tcpdumbmonitHTTP-API des eingebetteten VictoriaMetrics, auf dem Loopback des Containers. Nur vom Entwicklungs-Overlay veröffentlicht.

Ausgehend: SNMP (standardmäßig UDP 161) zu Geräten, HTTPS zu Proxmox, PBS, Synology und Benachrichtigungsdiensten sowie alles, worauf Ihre Dienstmonitore zielen. ICMP-Ping braucht den Sysctl net.ipv4.ping_group_range in der Compose-Datei (keine Capability).

Ein Volume, dumbmonit-data, eingebunden unter /data. Sein Name ist in der Compose-Datei fest vorgegeben, wie auch immer das Projekt heißt.

Pfad (im Container)VolumeInhalt
/data/dumbmonit.dbdumbmonit-dataMonitore, Zugangsdaten (verschlüsselt), Regeln, Alarmzustand und -verlauf, Baselines, Stummschaltungen, Kanäle, Agent-Tokens, Passwort-Hash, Sitzungen.
/data/secret.keydumbmonit-dataDas Instanzgeheimnis. Sichern Sie es. Ohne es sind verschlüsselte Zugangsdaten nicht wiederherstellbar, und der Server weigert sich zu starten.
/data/backups/dumbmonit-dataGeplante lokale Sicherungen: dumbmonit-<timestamp>.db (eine Online-SQLite-Kopie) und die zugehörige .key. Standardmäßig täglich, sieben aufbewahrt.
/data/vm/dumbmonit-dataZeitreihen des eingebetteten VictoriaMetrics, standardmäßig 12 Monate. Leer, wenn DUMBMONIT_VM_URL gesetzt ist.
/agents/ImageAgent-Binaries. Binden Sie ein anderes Verzeichnis ein und setzen Sie DUMBMONIT_AGENT_DIR, um eigene auszuliefern.
/etc/ssl/certs/ca-certificates.crtImageTLS-Wurzeln für ausgehendes HTTPS. Binden Sie hier Ihr eigenes Bundle ein, um einer privaten Zertifizierungsstelle zu vertrauen.
Terminal-Fenster
# DUMBMONIT_RESET_PASSWORD: "1" unter environment: in docker-compose.yml einfügen
docker compose up -d
# open the UI: /setup asks for a new password
# Zeile wieder entfernen, dann:
docker compose up -d

Das Zurücksetzen löscht das Passwort und jede Sitzung; Monitore, Regeln und Kanäle bleiben unberührt.

Der Agent hat eigene Variablen und eine eigene Konfigurationsdatei: siehe Linux-, macOS-, FreeBSD- und Windows-Agent.

Was der Agent misst und damit, wie viele Serien ein Rechner erzeugt. Die Standardwerte halten einen Host mit Dutzenden von Containern bei wenigen hundert Serien; jeder Schlüssel ist ein Eintrag in agent.yaml, überschreibbar durch seine Umgebungsvariable.

SchlüsselVariableStandardRolle
interfaces_ignoreDUMBMONIT_AGENT_INTERFACES_IGNORE^(veth|br-|docker|virbr|lo$|vEthernet)Ausgelassene Netzwerkschnittstellen: Container- und VM-Schnittstellen, der Loopback. Eine Liste exakter Namen oder regulärer Ausdrücke (nicht verankert; alles mit einem Metazeichen ist ein Regex). Der Wert ersetzt den Standard; eine leere Liste behält jede Schnittstelle.
interfaces_onlyDUMBMONIT_AGENT_INTERFACES_ONLY(leer)Positivliste, gleiche Syntax. Ist sie gesetzt, werden nur diese Schnittstellen gemeldet und interfaces_ignore nicht beachtet.
mounts_ignoreDUMBMONIT_AGENT_MOUNTS_IGNORE^/(var/lib/docker/|run/(user|docker|containerd|snapd|credentials|systemd|lock|udev|netns|lxc|lxd)/|sys/|proc/|dev/|snap/)Aus Dateisystemnutzung und Platten-I/O ausgelassene Mountpunkte, gleiche Syntax. Wechseldatenträger unter /run/media/ bleiben. Pseudo-Dateisysteme (overlay, tmpfs, squashfs, fuse.portal, cgroup2 …) werden unabhängig vom Pfad immer übersprungen.
cpu_per_coreDUMBMONIT_AGENT_CPU_PER_COREfalseEine Serie cpu_core_usage_percent pro Kern, zusätzlich zur Gesamtauslastung. cpu_count wird in beiden Fällen gemeldet.
docker_max_containersDUMBMONIT_AGENT_DOCKER_MAX_CONTAINERS200Pro Zyklus detaillierte Container, laufende zuerst. Darüber hinaus werden Container nur gezählt (container_count, container_running_count bleiben exakt) und container_series_skipped sagt, wie viele. 0 zählt ohne Details.

In der Umgebung sind Listen kommagetrennt (^veth, ^br-, docker0); in YAML entweder eine Liste oder eine kommagetrennte Zeichenkette. Platten-I/O-Zähler (disk_read_bytes, disk_written_bytes) tragen nur das Label device: eine Serie pro Blockgerät, egal wie oft es eingehängt ist.