Стек мониторинга: Prometheus + Alertmanager + Grafana + node_exporter + cAdvisor

Самодостаточный docker compose стек с деплоем через deploy.sh,
bootstrap-установкой с нуля и конфигурацией через .env.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
ShiZa039 2026-07-23 12:54:40 +02:00
commit 74b6f92cb8
15 changed files with 17242 additions and 0 deletions

41
.env.example Normal file
View file

@ -0,0 +1,41 @@
# Скопируй в .env и заполни: cp .env.example .env && chmod 600 .env
# Значения со спецсимволами (| $ пробелы) — обязательно в двойных кавычках.
# Файл читается и docker compose, и deploy.sh (bash), поэтому в паролях
# избегай символов $ ` \ " — надёжнее всего [A-Za-z0-9_.-].
# === Обязательные ===========================================================
# IP, на котором слушает весь стек: tailnet-IP (100.x.y.z) или публичный IP.
# Наружу на 0.0.0.0 ничего не публикуется.
BIND_IP=100.64.0.1
# Имя сервера — попадает лейблом server во все метрики и алерты
SERVER_NAME=srv-1
# Пароль admin в Grafana
GRAFANA_ADMIN_PASSWORD=changeme
# === Basic auth для Prometheus / Alertmanager / node_exporter ===============
# Пусто = без аутентификации (нормально для серверов, доступных только по tailnet).
# Для серверов с публичным BIND_IP — задать обязательно.
# Трей-клиент ходит в http://BIND_IP:9093/api/v2/alerts с этими же кредами.
METRICS_USER=admin
METRICS_PASSWORD=
# === Telegram-уведомления ===================================================
# Пусто = уведомления отключены (алерты видны в API/веб-интерфейсе Alertmanager)
TG_BOT_TOKEN=
TG_CHAT_ID=
# === Что алертить ===========================================================
# Контейнеры, которые обязаны работать (regex-подстроки имени, разделитель «|»)
CRITICAL_CONTAINERS="authentik|forgejo"
# systemd-юниты, которые обязаны быть active (разделитель «|»)
CRITICAL_UNITS="headscale.service"
# === Порты (на BIND_IP) =====================================================
NODE_EXPORTER_PORT=9100
PROMETHEUS_PORT=9090
ALERTMANAGER_PORT=9093
# 3001, чтобы не конфликтовать с forgejo на 3000
GRAFANA_PORT=3001