feat: per-node dashboards (vps01/vps02/vps03/bigbox) с RX/TX + утилизацией канала по физическому интерфейсу

This commit is contained in:
kpa39l
2026-09-08 14:26:10 +00:00
parent 1b2a2357d1
commit 6e48fd81fa
5 changed files with 1909 additions and 188 deletions
+28 -8
View File
@@ -169,15 +169,12 @@ curl -sG 'http://127.0.0.1:9090/api/v1/query' \
tproxy-server (Telegram Desktop WEB Proxy) развёрнут на **vps03** (77.67.89.154),
admin-эндпоинты на loopback :8081: `/healthz`, `/readyz`, `/metrics`
(Prometheus-формат, 13 счётчиков `tproxy_*`). vps03 НЕ в WG-сети, а :8081
слушает ТОЛЬКО loopback — поэтому вместо открытия порта наружу сделан
**SSH-туннель bigbox → vps03**:
(Prometheus-формат, 13 счётчиков `tproxy_*`).
```
systemd: tproxy-tunnel.service (bigbox)
ssh -i /home/estorozhenko/.ssh/hostkeyVPS \
-L 127.0.0.1:18081:127.0.0.1:8081 -N root@77.67.89.154
```
> **2026-09-08: vps03 подключён к WireGuard (10.8.0.3)** — вместо SSH-туннеля.
> Админ-эндпоинты tproxy остались на loopback, но туннель `tproxy-tunnel.service`
> удалён не был (безвреден, оставлен на всякий случай). Prometheus берёт node-метрики
> vps03 напрямую по WG: `10.8.0.3:9100`.
- Локальный порт **18081** (не 8081 — тот на bigbox занят ICQ-веб-чатом!)
- Prometheus скрейпит `127.0.0.1:18081` (job `tproxy`, host=vps03), но через
@@ -190,6 +187,29 @@ ssh -i /home/estorozhenko/.ssh/hostkeyVPS \
Подробности — в PLAN.md (этап 6) и EXPERIENCE.md.
## Node-дашборды (диски/память/сеть/доступность) — этап 7, РЕШЕНО ✅
На каждую ноду (vps01, vps02, vps03, bigbox) — **отдельный дашборд**,
`grafana/dashboards/node-<host>.json` (uid `node-<host>`, title "Node <host>").
Генерируются скриптом `/tmp/gen_nodes_dash.py` (в git не хранится; при желании
перенести — в EXPERIENCE.md).
Панели (все по `{host="<host>"}`, job=node):
1. **Availability** — stat-панель `up{job="node",host=...}` (UP/DOWN)
2. **Disk free (GB)** — `node_filesystem_avail_bytes` (без tmpfs/overlay/squashfs)
3. **Memory available (GB)** — `node_memory_MemAvailable_bytes`
4. **Load** — `node_load1/5/15`
5. **Net <iface> RX/TX (bytes/s)** — `rate(node_network_{receive,transmit}_bytes_total[5m])`
6. **Net <iface> utilization (%)** — `(rx+tx)*8/speed*100`
Физические интерфейсы: vps01=eth0, vps02=enp3s0, vps03=ens1, bigbox=eno1.
Контейнерные (docker0/veth*/br-*) не включены.
Тонкость node-exporter 1.9: на виртуалках vps01/vps02 `node_network_speed_bytes`
= **-125000** (sysfs speed=-1 → умножается на 125000), поэтому для них скорость
линка захардкожена **125000000 Б/с (1 Gbit/s)** в формуле утилизации. На физических
(vps03/bigbox) используется сама метрика `node_network_speed_bytes` (=1.25e+08).
## Катастрофоустойчивость
Проект хранится в **двух** git-репозиториях — на случай поломки bigbox: