mirror of
https://gitverse.ru/kpa39l/monitoring.git
synced 2026-09-29 09:55:09 +00:00
73 lines
5.6 KiB
Markdown
73 lines
5.6 KiB
Markdown
# Мониторинг кластера — Статус
|
||
|
||
Обновлено: 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-<host>), в каждом:
|
||
availability + disk free + memory + load + **Net <iface> RX/TX (bytes/s)** +
|
||
**Net <iface> 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ч данных)
|
||
|
||
## Как запустить / проверить
|
||
```bash
|
||
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-<host>.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, туннель не нужен |