From 1aa2c5c4b12bbd0dd0cd48d07662cf7f1306cb34 Mon Sep 17 00:00:00 2001 From: kpa39l Date: Mon, 31 Aug 2026 01:39:42 +0000 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D0=BB=20?= =?UTF-8?q?=D1=8D=D1=82=D0=B0=D0=BF=206:=20=D1=81=D0=B1=D0=BE=D1=80=20?= =?UTF-8?q?=D0=BC=D0=B5=D1=82=D1=80=D0=B8=D0=BA=20tproxy-server=20(vps03)?= =?UTF-8?q?=20=E2=80=94=20=D0=B7=D0=B0=D0=B4=D0=B0=D1=87=D0=B8,=20=D1=8D?= =?UTF-8?q?=D0=BD=D0=B4=D0=BF=D0=BE=D0=B8=D0=BD=D1=82=D1=8B,=20prometheus?= =?UTF-8?q?=20job?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- PLAN.md | 60 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 60 insertions(+) diff --git a/PLAN.md b/PLAN.md index 4620342..755d971 100644 --- a/PLAN.md +++ b/PLAN.md @@ -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) к мониторингу отношения не имеют — в + метрики не попадают. + ## Риски / заметки - Перезапуск нод кластера безопасен, но делать по очереди.