From 456cc58b2515cfb34b885cfe48562fbc6578d45d Mon Sep 17 00:00:00 2001 From: Max Ronzhin Date: Tue, 28 Jul 2026 00:22:08 +0300 Subject: [PATCH] =?UTF-8?q?docs(monitoring):=20=D0=BE=D0=BF=D0=B8=D1=81?= =?UTF-8?q?=D0=B0=D1=82=D1=8C=20node-exporter/cAdvisor=20=D0=B8=20=D0=B0?= =?UTF-8?q?=D0=BB=D0=B5=D1=80=D1=82=D1=8B=20=D0=BF=D0=BE=20=D0=B6=D0=B5?= =?UTF-8?q?=D0=BB=D0=B5=D0=B7=D1=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Документация мониторинга описывала только старые компоненты (prometheus, postgres/redis-exporter, дашборд пайплайнов) — актуализирована под node-exporter/cAdvisor, дашборд host.json и три новых алерта. --- docs/deploy/monitoring.md | 31 ++++++++++++++++++++++++++----- 1 file changed, 26 insertions(+), 5 deletions(-) diff --git a/docs/deploy/monitoring.md b/docs/deploy/monitoring.md index 4f35a18..a987d65 100644 --- a/docs/deploy/monitoring.md +++ b/docs/deploy/monitoring.md @@ -10,11 +10,25 @@ | `prometheus` | `prom/prometheus:v3.13.1` | `9090` | сбор и хранение метрик, оценка правил алертинга | | `postgres-exporter` | `quay.io/prometheuscommunity/postgres-exporter:v0.20.1` | — (внутренний) | метрики PostgreSQL | | `redis-exporter` | `oliver006/redis_exporter:v1.87.0-alpine` | — (внутренний) | метрики Redis | -| `grafana` | `grafana/grafana:13.1.0` | `3001` (внутри контейнера `3000`) | дашборд «Пайплайны пост-обработки» | +| `node-exporter` | `prom/node-exporter:v1.8.2` | — (внутренний) | метрики хоста: CPU, память, диск, сеть, load average | +| `cadvisor` | `gcr.io/cadvisor/cadvisor:v0.49.2` | — (внутренний) | метрики по каждому контейнеру (CPU/память) | +| `grafana` | `grafana/grafana:13.1.0` | `3001` (внутри контейнера `3000`) | дашборды «Пайплайны пост-обработки» и «Хост и контейнеры» | + +`node-exporter`/`cadvisor` не публикуют порт на хост вообще (не только +127.0.0.1) — Prometheus ходит к ним по имени сервиса во внутренней сети +compose, публикация на хост для этого не нужна. `cadvisor` смонтирован +к `/var/run/docker.sock` только на чтение (`:ro`) и запущен с +`--docker_only` + урезанным набором коллекторов (`--disable_metrics`) — +он заметно дороже `node-exporter` по CPU/RAM, урезание снижает накладные +расходы. Если на конкретном сервере это всё равно избыточно — +`cadvisor` можно убрать из `deploy/docker-compose.yml`, оставив только +`node-exporter` (метрики хоста при этом не пострадают, пропадёт только +разбивка по контейнерам). Файлы: `deploy/monitoring/prometheus.yml`, `deploy/monitoring/alerts.yml`, `deploy/monitoring/grafana/provisioning/` (datasource + провайдер -дашбордов), `deploy/monitoring/grafana/dashboards/pipelines.json`. +дашбордов), `deploy/monitoring/grafana/dashboards/pipelines.json`, +`deploy/monitoring/grafana/dashboards/host.json`. ## 2. Запуск @@ -37,9 +51,9 @@ ssh -L 9090:127.0.0.1:9090 -L 3001:127.0.0.1:3001 @ ``` и открывайте `http://localhost:9090` / `http://localhost:3001` у себя. -Дашборд «Пайплайны пост-обработки» (папка VidConf в Grafana) появляется -сразу — источник данных и дашборд провижинятся из файлов, без ручной -настройки. +Дашборды «Пайплайны пост-обработки» и «Хост и контейнеры» (папка VidConf +в Grafana) появляются сразу — источник данных и дашборды провижинятся из +файлов, без ручной настройки. ## 3. Метрики backend @@ -78,6 +92,13 @@ Job `llm` в `prometheus.yml` скрейпит `llm:8080/metrics` | `PipelineFailed` | рост числа сеансов в статусе `failed` за 15 минут | critical | | `QueueGrowing` | глубина очереди растёт 15 минут подряд и превышает 10 задач | warning | | `LlmDown` | `up{job="llm"} == 0` дольше 2 минут | critical (закомментирован по умолчанию) | +| `HostMemoryLow` | свободно <10% RAM (≈800 МБ из 8 ГБ) дольше 10 минут | warning | +| `HostDiskLow` | свободно <10% диска (≈5 ГБ из 50 ГБ) дольше 15 минут | warning | +| `HostCpuHigh` | загрузка CPU >90% дольше 15 минут подряд | warning | + +Пороги трёх алертов по железу подобраны под конкретный сервер `1gb` +(8 ГБ RAM, 4 CPU, 50 ГБ диска) — при смене сервера пересчитать +(`deploy/monitoring/alerts.yml`, группа `vidconf-host`). `LlmDown` актуален только на инсталляциях с профилем `llm`/`llm-gpu` (пресеты 3–5) — по умолчанию (профили `media,monitoring`, без AI) правило