Перейти к содержанию

Конфигурация

Всё настраивается через переменные окружения; ни одна не обязательна. Файла конфигурации для монтирования нет.

Сервер

Переменная По умолчанию Назначение
DUMBMONIT_BIND 0.0.0.0:8080 Адрес прослушивания API и веб-интерфейса внутри контейнера.
PUID / PGID 65532 Пользователь и группа, от имени которых работает сервер, когда контейнер стартует от root (user: "0:0", как в поставляемом docker-compose.yml): каталог данных передаётся им при запуске, затем root отбрасывается. Значение 0 отклоняется. DUMBMONIT_PUID / DUMBMONIT_PGID имеют приоритет. В остальных случаях игнорируются. См. Права доступа.
DUMBMONIT_DATA_DIR /data Постоянный каталог: dumbmonit.db (SQLite), secret.key, vm/ (встроенная VictoriaMetrics) и webchange/ (скриншоты изменений сайтов).
DUMBMONIT_VM_URL (не задано) Базовый URL внешней VictoriaMetrics (http://host:8428). Если задан, встроенная не запускается; см. ниже.
DUMBMONIT_SECRET (генерируется) Секрет экземпляра. Если пуст, читается из <data dir>/secret.key, генерируется при первом запуске. Шифрует учётные данные мониторов, секреты каналов и токены агентов с помощью AES-256-GCM.
DUMBMONIT_MAX_CONCURRENT_PROBES 64 Максимум одновременных проб, всеми сборщиками вместе.
DUMBMONIT_WEBSITE_MAX_CONCURRENT 10 Максимум одновременных проверок состояния сайтов, от 1 до 256, в пределах лимита выше.
DUMBMONIT_WEBSITE_MAX_PER_HOST 1 Максимум одновременных проверок сайтов к одному домену (www.example.com и shop.example.com считаются одним), от 1 до 16.
DUMBMONIT_WEBSITE_HOST_SPACING_SECS 2 Минимум секунд между двумя проверками сайтов к одному домену, от 0 до 3600. Опция сайта host_spacing_seconds переопределяет его после проверки этого сайта.
DUMBMONIT_WEBSITE_CHANGE_CHECK_MINUTES 360 Период по умолчанию, в минутах, сравнения метаданных сайта (заголовок, описание, canonical, конечный адрес, robots.txt), от 0 до 10080; 0 сравнивает при каждой проверке. Доступность всё равно проверяется при каждом интервале опроса. Опция сайта change_check_minutes переопределяет его.
DUMBMONIT_PROBE_TIMEOUT_SECS 10 Жёсткий тайм-аут одной пробы. У мониторов сервисов есть собственная, более короткая опция timeout_seconds.
DUMBMONIT_FLUSH_INTERVAL_SECS 5 Период пакетной записи в VictoriaMetrics.
DUMBMONIT_FLUSH_BATCH 5000 Число буферизованных отсчётов, при котором запись запускается до истечения периода.
DUMBMONIT_WORKERS min(4, CPUs) Потоки асинхронной среды выполнения. Сервер проводит время в ожидании сети: четырёх хватает для домашней лаборатории, увеличивайте только для сотен мониторов.
DUMBMONIT_DB_POOL 4 Максимум открытых соединений SQLite. Каждое стоит поток и страничный кеш в 2 МБ; простаивающие соединения закрываются через пять минут.
DUMBMONIT_LOG info Фильтр логов, синтаксис tracing: debug, warn, dumbmonit=debug,sqlx=warn…
DUMBMONIT_AGENT_DIR /agents Каталог бинарных файлов агентов, отдаваемых по /download/. Пуст или отсутствует: команда установки завершается с 404, сервер продолжает работать.
DUMBMONIT_RESET_PASSWORD (выкл.) 1, true, yes или on: очистить пароль и все сессии при запуске. Интерфейс снова покажет /setup. Уберите её после этого.
DUMBMONIT_COOKIE_SECURE (выкл.) 1, чтобы всегда устанавливать атрибут Secure для cookie сессии. Только за HTTPS: по обычному HTTP браузер никогда не отправит cookie обратно. Без неё атрибут всё равно добавляется, когда браузер находится на странице https:// (об этом говорит его Origin или доверенный прокси отправляет X-Forwarded-Proto: https), поэтому обычный HTTP в локальной сети продолжает работать.
DUMBMONIT_TRUSTED_PROXIES (пусто) Обратные прокси, чьим X-Forwarded-For, X-Forwarded-Proto и X-Forwarded-Host верят, в виде адресов или диапазонов CIDR через запятую (10.0.0.5, 172.16.0.0/12). Ограничитель частоты входа и журнал безопасности тогда видят реальный адрес клиента вместо адреса прокси; без неё все посетители за прокси делят одну корзину. Ссылки страниц статуса (RSS-лента, письма подписчикам) и адрес возврата единого входа также используют перенаправленный хост только от этих прокси. Заголовки игнорируются от любого другого адреса, поэтому клиент не может выбрать собственную корзину или адрес ссылки.
DUMBMONIT_OIDC_AUTO_CREATE (выкл.) true, чтобы создавать учётную запись для неизвестной идентичности при её первом едином входе. Если выключено, войти могут только существующие учётные записи (уже связанные или сопоставленные по email, подтверждённому провайдером). Как и другие переменные DUMBMONIT_OIDC_*, читается, только пока в интерфейсе не сохранены настройки единого входа.
DUMBMONIT_OIDC_ALLOW_HTTP (выкл.) 1, чтобы принимать эмитента OpenID Connect по обычному http://. Если выключено, экран настроек отклоняет всё, кроме https://: эмитент в открытом виде отдаёт код авторизации и секрет клиента тому, кто слушает сеть. Только для тестового провайдера на loopback.
DUMBMONIT_SETUP_CODE (генерируется) Код, который запрашивает /setup, пока нет администратора. Если не задан, случайный код выводится в логе сервера при каждом запуске; задайте его для автоматизированного развёртывания. См. Установка с Docker.
DUMBMONIT_PUBLIC_URL (не задано) Адрес, по которому браузеры обращаются к DumbMonit (https://monit.example.org). Используется для ссылок в уведомлениях и письмах страниц статуса, URI перенаправления единого входа и контакта, передаваемого push-сервисам (только HTTPS). Значение, сохранённое в интерфейсе (политика уведомлений, настройки SSO), имеет приоритет.
DUMBMONIT_API_CORS_ORIGINS (любой origin) Origin, которым разрешено вызывать API кросс-доменно с bearer-токеном и обращаться к конечной точке MCP: список через запятую или off для отсутствия. См. HTTP API.
DUMBMONIT_OIDC_ISSUER (не задано) URL эмитента провайдера OpenID Connect; discovery читается из {issuer}/.well-known/openid-configuration. Должен быть https://, если не задана DUMBMONIT_OIDC_ALLOW_HTTP.
DUMBMONIT_OIDC_CLIENT_ID (не задано) Идентификатор клиента, зарегистрированный у провайдера.
DUMBMONIT_OIDC_CLIENT_SECRET (не задано) Секрет клиента.
DUMBMONIT_OIDC_PROVIDER_NAME SSO Подпись кнопки «Continue with …».
DUMBMONIT_OIDC_SCOPES openid profile email Запрашиваемые области (scopes), через пробел.
DUMBMONIT_OIDC_GROUPS_CLAIM groups Claim токена, перечисляющий группы пользователя.
DUMBMONIT_OIDC_ADMIN_GROUPS (пусто) Группы через запятую, участники которых становятся администраторами.
DUMBMONIT_OIDC_OPERATOR_GROUPS (пусто) Группы через запятую, остальные участники которых становятся операторами. См. Единый вход.
DUMBMONIT_METRICS_PUBLIC (выкл.) 1, чтобы отдавать /metrics, /federate и /prometheus/api/v1/… без токена API. Любой, кто может достучаться до порта, тогда читает каждое измерение каждого монитора и состояние экземпляра; задавайте только там, где что-то другое уже ограничивает доступ к порту. См. Метрики.
DUMBMONIT_ALERT_INTERVAL_SECS 30 Период оценки оповещений. Значения меньше 10 повышаются до 10.
DUMBMONIT_ALERT_HISTORY_DAYS 90 Срок хранения истории оповещений, в днях.
DUMBMONIT_BACKUP_ENABLED 1 Локальные резервные копии базы данных по расписанию. 0, false, no или off, чтобы прекратить их запись. См. Резервное копирование и восстановление.
DUMBMONIT_UPDATE_CHECK 1 off отключает ежедневную проверку последнего релиза на GitHub (изолированные экземпляры). См. Обновление.
DUMBMONIT_BACKUP_DIR <data dir>/backups Куда записываются резервные копии по расписанию. Укажите второй том, чтобы пережить потерю первого.
DUMBMONIT_BACKUP_INTERVAL_HOURS 24 Часов между двумя копиями, от 1 до 8760. Первая создаётся через один интервал после запуска, а не при запуске.
DUMBMONIT_DEMO (выкл.) 1 для публичной демо-версии только для чтения с фиксированным вымышленным парком, вход demo / demo. Пересоздаёт базу данных при каждом запуске: никогда не используйте на реальном томе данных. См. Запуск демо-экземпляра.
DUMBMONIT_BACKUP_KEEP 7 Сколько копий хранится, от 1 до 365. Самые старые удаляются вместе с их .key.
DUMBMONIT_BROWSER_URL (не задано) Headless Chromium, используемый для скриншотов изменений сайтов, в виде http://host:9222 (его порт DevTools). Добавьте службу chromedp/headless-shell в файл Compose, как показано в разделе Снимки экрана. Если не задан: только текстовое сравнение.

Срок хранения базовых линий (60 дней) и 14-дневный период обучения не настраиваются.

Прежние имена EZYMONIT_*

До сентября 2026 DumbMonit назывался EzyMonit. Каждая переменная DUMBMONIT_* также читается под своим старым именем EZYMONIT_* как запасной вариант, с одним предупреждением при запуске на каждую переменную, всё ещё заданную таким образом (EZYMONIT_X is deprecated, use DUMBMONIT_X). Старый файл базы данных /data/ezymonit.db переименовывается в dumbmonit.db при запуске, а токены агентов ezym_… остаются действительными (новые имеют вид dmon_…). Cookie сессии теперь называется dumbmonit_session: первый запуск после переименования один раз выводит всех из системы.

Встроенная VictoriaMetrics

Образ содержит бинарный файл VictoriaMetrics. Если не задан DUMBMONIT_VM_URL, сервер запускает её как дочерний процесс при старте, пересылает её строки журнала в лог сервера, перезапускает её с задержкой (backoff), если она падает, и останавливает при завершении работы (SIGTERM, 20 с на завершение, затем kill; stop_grace_period файла Compose оставляет для этого запас).

Переменная По умолчанию Назначение
DUMBMONIT_VM_BINARY /victoria-metrics-prod Путь к запускаемому бинарному файлу VictoriaMetrics.
DUMBMONIT_VM_LISTEN 127.0.0.1:8428 Адрес прослушивания внутри контейнера. По умолчанию loopback: с ней разговаривает только сервер. Оверлей разработки задаёт 0.0.0.0:8428 и публикует порт.
DUMBMONIT_VM_RETENTION 12 Срок хранения в синтаксисе -retentionPeriod: число месяцев или длительность, например 30d или 2y.
DUMBMONIT_VM_MEMORY 256MB Бюджет кешей VictoriaMetrics (-memory.allowedBytes). Без бюджета VM рассчитывает их на 60 % ОЗУ хоста, и её резидентная память растёт днями. Несколько десятков мониторов умещаются в 256 МБ; увеличивайте для сотен хостов.

Её данные находятся в <data dir>/vm, на том же томе, что и база данных. Три флага зафиксированы сервером и не настраиваются: -search.maxUniqueTimeseries=100000 (неуправляемый запрос не может исчерпать бюджет), -search.maxConcurrentRequests=4 (один интерфейс плюс движок оповещений) и -dedup.minScrapeInterval=10s (дублирующиеся точки ближе десяти секунд схлопываются; при 30-секундном ритме сборщиков ничего не теряется).

Если задан DUMBMONIT_VM_URL, ничего из этого не применяется: сервер использует указанный вами экземпляр, а встроенный никогда не запускается. GET /api/health сообщает, в каком вы случае (victoria.embedded).

Настройки уровня Compose

Поставляемый docker-compose.yml не читает ни одной переменной и не требует файла .env. Всё задаётся в environment: службы или правкой самого файла; см. Дополнительные параметры (порт, секрет, срок хранения и память, внешняя VictoriaMetrics, сброс пароля, снимки экрана). Оверлей разработки docker-compose.dev.yml читает DUMBMONIT_VM_PORT (по умолчанию 8428) — порт хоста для встроенной VictoriaMetrics.

Порты

Порт Контейнер Назначение
8080/tcp dumbmonit Веб-интерфейс, API, установщики и загрузки агентов, приём данных агентов. Единственный порт, который нужно публиковать.
8428/tcp dumbmonit HTTP API встроенной VictoriaMetrics, на loopback контейнера. Публикуется только оверлеем разработки.

Исходящие: SNMP (по умолчанию UDP 161) к мониторам, HTTPS к Proxmox, PBS, Synology и сервисам уведомлений, плюс всё, на что нацелены ваши мониторы сервисов. ICMP ping требует sysctl net.ipv4.ping_group_range, заданный в файле Compose (без capability).

Тома и файлы

Один том, dumbmonit-data, смонтированный в /data. Его имя зафиксировано в файле Compose, как бы ни назывался проект.

Путь (в контейнере) Том Содержимое
/data/dumbmonit.db dumbmonit-data Мониторы, учётные данные (зашифрованные), правила, состояние и история оповещений, базовые линии, silences, каналы, токены агентов, хеш пароля, сессии.
/data/secret.key dumbmonit-data Секрет экземпляра. Сделайте его резервную копию. Без него зашифрованные учётные данные невосстановимы, а сервер отказывается запускаться.
/data/backups/ dumbmonit-data Локальные резервные копии по расписанию: dumbmonit-<timestamp>.db (онлайн-копия SQLite) и соответствующий .key. По умолчанию ежедневно, хранятся семь.
/data/vm/ dumbmonit-data Временные ряды встроенной VictoriaMetrics, по умолчанию 12 месяцев. Пусто, когда задан DUMBMONIT_VM_URL.
/agents/ образ Бинарные файлы агентов. Смонтируйте другой каталог и задайте DUMBMONIT_AGENT_DIR, чтобы поставлять свои.
/etc/ssl/certs/ca-certificates.crt образ Корневые сертификаты TLS для исходящего HTTPS. Смонтируйте сюда свой набор, чтобы доверять частному удостоверяющему центру.

Сброс пароля

# add DUMBMONIT_RESET_PASSWORD: "1" under environment: in docker-compose.yml
docker compose up -d
# open the UI: /setup asks for a new password
# remove the line again, then:
docker compose up -d

Сброс очищает пароль и все сессии; мониторы, правила и каналы не затрагиваются.

Агент

У агента есть собственные переменные и файл конфигурации: см. Агент для Linux, macOS, FreeBSD и Windows.

Область сбора

Что измеряет агент и, соответственно, сколько рядов производит одна машина. Значения по умолчанию удерживают хост с десятками контейнеров в пределах нескольких сотен рядов; каждый ключ — это запись в agent.yaml, переопределяемая своей переменной окружения.

Ключ Переменная По умолчанию Назначение
interfaces_ignore DUMBMONIT_AGENT_INTERFACES_IGNORE ^(veth\|br-\|docker\|virbr\|lo$\|vEthernet) Исключаемые сетевые интерфейсы: интерфейсы контейнеров и ВМ, loopback. Список точных имён или регулярных выражений (без привязки; всё, что содержит метасимвол, — регулярное выражение). Значение заменяет значение по умолчанию; пустой список оставляет все интерфейсы.
interfaces_only DUMBMONIT_AGENT_INTERFACES_ONLY (пусто) Список разрешённых, тот же синтаксис. Если задан, сообщаются только эти интерфейсы, а interfaces_ignore не учитывается.
mounts_ignore DUMBMONIT_AGENT_MOUNTS_IGNORE ^/(var/lib/docker/\|run/(user\|docker\|containerd\|snapd\|credentials\|systemd\|lock\|udev\|netns\|lxc\|lxd)/\|sys/\|proc/\|dev/\|snap/) Точки монтирования, исключаемые из использования файловых систем и дискового ввода-вывода, тот же синтаксис. Съёмные диски в /run/media/ остаются. Псевдофайловые системы (overlay, tmpfs, squashfs, fuse.portal, cgroup2…) всегда пропускаются, каким бы ни был путь.
cpu_per_core DUMBMONIT_AGENT_CPU_PER_CORE false Один ряд cpu_core_usage_percent на каждое ядро, сверх общей загрузки. cpu_count сообщается в любом случае.
docker_max_containers DUMBMONIT_AGENT_DOCKER_MAX_CONTAINERS 200 Контейнеры, детализируемые за цикл, сначала работающие. Сверх этого контейнеры только подсчитываются (container_count, container_running_count остаются точными), а container_series_skipped сообщает, сколько их. 0 считает без детализации.

В окружении списки разделяются запятыми (^veth, ^br-, docker0); в YAML — либо список, либо одна строка через запятую. Счётчики дискового ввода-вывода (disk_read_bytes, disk_written_bytes) несут только метку device: один ряд на блочное устройство, сколько бы раз оно ни было смонтировано.