mirror of
https://gitverse.ru/kpa39l/monitoring.git
synced 2026-09-29 01:50:07 +00:00
5.6 KiB
5.6 KiB
Мониторинг кластера — Статус
Обновлено: 2026-09-13 (добавлен дашборд VESTI)
Текущее состояние
Стек мониторинга на bigbox (/opt/monitoring): Prometheus 2.53 + Grafana 11.1 + Loki + promtail. Собирает: Garage-кластер (vps01/bigbox/vps02 :3903), системы всех 4 нод (node-exporter :9100 по WireGuard), tproxy (vps03, loopback-туннель), VESTI (компоненты/доступность). Дашборды: 4 per-node (Node vps01/vps02/vps03/bigbox) + Garage Cluster + Vinograd WAN + tproxy-панели + VESTI. vps03 подключён к WG (10.8.0.3), порты наружу не светятся. Все 4 node-таргета up. Всё в git (gitverse + gitea mirror).
VESTI (добавлено 2026-09-13)
- Метрики: textfile-коллектор node-exporter на bigbox, скрипт
/opt/vesti/scripts/vesti-metrics.sh(запуск:/etc/cron.d/vesti-metrics, каждую минуту, root). Пишет/var/lib/node_exporter/textfile_collector/vesti.prom. - Метрики
vesti_*(labelcomponent="vesti"), собираются job'омnode(10.8.0.2:9100):vesti_web_up,vesti_publisher_health,vesti_publisher_bot,vesti_publisher_proxy,vesti_publisher_channels,vesti_telegram_tunnel,vesti_publisher_docker,vesti_web_systemd,vesti_db_ok,vesti_db_posts_total,vesti_db_new_total,vesti_db_published_total,vesti_db_last_run_ts. - node-exporter на bigbox:
ARGS="--web.listen-address=10.8.0.2:9100 --collector.textfile.directory=/var/lib/node_exporter/textfile_collector"(в /etc/default/prometheus-node-exporter). - Дашборд:
grafana/dashboards/vesti/vesti.json(uidvesti, папка vesti), 18 панелей: stat-панели доступности (web/publisher/Docker/tunnel/DB/systemd) + детали publisher (bot/proxy/channels) + БД (posts/new/published + время с последнего рan) + история доступности. - Провайдер
vesti-dashboardsдобавлен вgrafana/provisioning/dashboards/dashboards.yml(path: /var/lib/grafana/dashboards/vesti). - Запуск коллектора: cron.d
/etc/cron.d/vesti-metrics(root, каждую минуту). Также прописаны юниты/etc/systemd/system/vesti-metrics.{service,timer}— таймер заведён и активен (systemctl is-enabled: enabled, is-active: active); при перезагрузке можно переключиться на таймер, отключив cron.d.
Сделано (за сессию 2026-09-08)
- vps03 подключён к WireGuard: 10.8.0.3/24, hub vps01 (5.129.217.146:51820),
пиры добавлены на vps01/bigbox/vps02 (AllowedIPs пира vps01 расширен до
10.8.0.1/32, 10.8.0.3/32для возвратного трафика — грабль зафиксирован) - node-exporter установлен на vps03 (apt), слушает 10.8.0.3:9100 (наружу 77.67.89.154:9100 закрыт)
- prometheus.yml: job
node→ 4 таргета (10.8.0.1/2/3/4:9100), все up - Дашборды: отдельный на каждую ноду (uid node-), в каждом: availability + disk free + memory + load + Net RX/TX (bytes/s) + Net utilization (%) (физические интерфейсы, контейнерные исключены)
- README.md/EXPERIENCE.md обновлены (грабли: node_network_* метрики, speed=-125000 на виртуалках)
- Дашборды разложены по подпапкам:
grafana/dashboards/nodes/(node-*) иgrafana/dashboards/vinogorod/(vinograd-wan) — в git и на диске; provisioningdashboards.ymlполучил 3 провайдера (Garage / nodes / vinogorod); в UI Grafana дашборды лежат в папках Garage / nodes / vinogorod (проверено по БД, коммит4b0539d)
В работе / Следующие шаги
- Разные admin_token / metrics_token в Garage (совпадают)
- Поменять пароль Grafana с дефолтного (пользователь estorozhenko, пароль сменён вручную)
- Уведомления алертов (Telegram/почта)
- Проверить визуально дашборды Node в Grafana (после 1-2ч данных)
Как запустить / проверить
cd /opt/monitoring && docker compose ps # стек
curl -s "http://127.0.0.1:9090/api/v1/targets?state=any" | python3 -m json.tool # node ×4 up
# Grafana: http://bigbox:3001 (или https://grafana.nixg.ru) → дашборды Node vps01/02/03/bigbox
Ключевые артефакты
- /opt/monitoring/docker-compose.yml, prometheus.yml, alerts.yml
- /opt/monitoring/grafana/dashboards/garage-cluster.json (папка Garage)
- /opt/monitoring/grafana/dashboards/nodes/node-.json (4 шт, папка nodes)
- /opt/monitoring/grafana/dashboards/vinogorod/vinograd-wan.json (папка vinogorod)
- /opt/monitoring/grafana/provisioning/datasources/datasources.yml, dashboards/dashboards.yml
- README.md, EXPERIENCE.md, PLAN.md (в этом каталоге), STATUS.md/TODO.md/WALKTHROUGH.md
Открытые вопросы
- Нужен ли утилизация для vps01/vps02 с реальной скоростью линка (сейчас хардкод 1Гбит/с)
- Оставлять ли tproxy-tunnel.service (SSH-туннель) — vps03 уже в WG, туннель не нужен