Files

5.6 KiB
Raw Permalink Blame History

Мониторинг кластера — Статус

Обновлено: 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_* (label component="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 (uid vesti, папка 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 и на диске; provisioning dashboards.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, туннель не нужен