Добавил этап 6: сбор метрик tproxy-server (vps03) — задачи, эндпоинты, prometheus job

This commit is contained in:
kpa39l
2026-08-31 01:39:42 +00:00
parent 10192cc4ef
commit 1aa2c5c4b1
+60
View File
@@ -53,6 +53,66 @@
- [ ] Дашборд: статус нод, занятость диска, блоки, репликация
- [ ] Уведомления алертов (например, в Telegram/почту)
## Этап 6. Метрики tproxy-server (vps03) — TODO 🔄
WEB Proxy для Telegram Desktop развёрнут на vps03 (77.67.89.154, Debian 13):
Caddy → tproxy-server:8080 → MTProxy:2398. Admin-эндпоинты:
- `http://127.0.0.1:8081/readyz` → 200 `ready` / 503 `backend unavailable`
(TCP-проба ко всем backend-профилям, у нас 127.0.0.1:2398)
- `http://127.0.0.1:8081/healthz` → всегда `ok` (процесс жив)
- `http://127.0.0.1:8081/metrics` → Prometheus-формат (текст, version 0.0.4)
Метрики tproxy (счётчики из `internal/server/server.go` serveMetrics):
| Метрика | Смысл |
|---|---|
| tproxy_sessions_live / streams_live | активные сессии/потоки |
| tproxy_backend_dials_in_flight | исходящие к MTProxy в полёте |
| tproxy_pending_bytes / _items | очередь ожидающих данных |
| tproxy_sessions_created_total / closed_total | создано/закрыто (суммарно) |
| tproxy_streams_opened_total / rejected_total | открыто/отклонено потоков |
| tproxy_backend_dial_failures_total | **ошибки коннекта к MTProxy** (рост = проблема) |
| tproxy_bytes_up_total / down_total | трафик вверх/вниз (всего) |
| tproxy_limit_hits_total | срабатывания лимитов |
Задача:
- [ ] Обеспечить доступ Prometheus (bigbox) к `:8081` на vps03.
vps03 НЕ в WG-сети (10.8.0.0/24 = vps01/bigbox/vps02).
Варианты:
a) открыть 8081 на vps03 для IP bigbox в nft (правило в
`/etc/tproxy-server/firewall.nft` или отдельный файл) — самый простой;
b) добавить vps03 в WG (если хочется закрытый контур);
c) node-exporter + textfile-коллектор — не наш случай (метрики уже в HTTP).
Рекомендация: (a).
- [ ] Добавить job в `/opt/monitoring/prometheus.yml`:
```yaml
- job_name: 'tproxy'
static_configs:
- targets: ['77.67.89.154:8081']
labels:
host: vps03
service: tproxy
```
Prometheus в этом стеке — `network_mode: host`, внешние IP видит (см.
EXPERIENCE.md п.7).
- [ ] Перезапустить prometheus (`docker compose restart prometheus`),
проверить `up{job="tproxy"}` на :9090.
- [ ] (Опционально) blackbox-job для внешнего HTTPS-чека vps03.nixg.ru:
`probe_success` — контролирует Caddy+сайт снаружи.
- [ ] Дашборд в Grafana: сессии, трафик (bytes_up/down rate), ошибки бэкенда.
- [ ] Алерт: `tproxy_backend_dial_failures_total` растёт, или `/readyz` 503
(можно ч/з blackbox по HTTP :8081, если открыт).
Заметки:
- `/metrics` и admin-эндпоинты слушают ТОЛЬКО loopback (127.0.0.1:8081). При
открытии наружу — резать по источнику (IP bigbox) в nft, не публиковать всем.
- readyz сделает TCP-пробу К КАЖДОМУ профилю — если добавить второй профиль
с мёртвым бэкендом, readyz станет 503 (это фича).
- Секреты WEB Proxy (profiles.json) к мониторингу отношения не имеют — в
метрики не попадают.
## Риски / заметки
- Перезапуск нод кластера безопасен, но делать по очереди.