fix(monitoring): убрать cAdvisor — несовместим с containerd-снапшоттером
На сервере 1gb Docker Engine использует containerd-снапшоттер (driver-type: io.containerd.snapshotter.v1), а не классический overlay2. cAdvisor (проверено на v0.49.2 и свежей v0.52.1, с --docker_only и через --containerd/--containerd-namespace=moby) не может определить read-write layer контейнеров — падает с «failed to identify the read-write layer ID», метрики только по корневому cgroup, без разбивки по контейнерам. Открытая проблема совместимости, флагами не решается. Убран сервис cadvisor, job в prometheus.yml, панели «топ контейнеров» в host.json (Prometheus иначе резолвит cadvisor:8080 в никуда — Grafana показывала бы «No data» вечно). node-exporter метрики хоста (CPU/RAM/ диск/сеть) при этом покрывает полностью, без изменений. Правка конфигурации мониторинга, без изменения пользовательского поведения — версия не бампается.
This commit is contained in:
@@ -11,19 +11,25 @@
|
||||
| `postgres-exporter` | `quay.io/prometheuscommunity/postgres-exporter:v0.20.1` | — (внутренний) | метрики PostgreSQL |
|
||||
| `redis-exporter` | `oliver006/redis_exporter:v1.87.0-alpine` | — (внутренний) | метрики Redis |
|
||||
| `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` (метрики хоста при этом не пострадают, пропадёт только
|
||||
разбивка по контейнерам).
|
||||
`node-exporter` не публикует порт на хост вообще (не только 127.0.0.1) —
|
||||
Prometheus ходит к нему по имени сервиса во внутренней сети compose,
|
||||
публикация на хост для этого не нужна.
|
||||
|
||||
**cAdvisor сознательно не используется** (разбивки метрик по контейнерам
|
||||
в Grafana нет): Docker Engine на сервере `1gb` использует
|
||||
containerd-снапшоттер (`docker info` → `driver-type:
|
||||
io.containerd.snapshotter.v1`), а не классический overlay2-драйвер, и
|
||||
cAdvisor (проверено на v0.49.2 и v0.52.1, с `--docker_only` и без, через
|
||||
`--containerd`/`--containerd-namespace=moby` и без) не может определить
|
||||
read-write layer контейнеров — падает с «failed to identify the
|
||||
read-write layer ID», метрики есть только по корневому cgroup. Открытая
|
||||
проблема совместимости cAdvisor с containerd image store, флагами не
|
||||
чинится — см. `.forcc/JOURNAL.md`. Если на другом сервере используется
|
||||
классический overlay2, cAdvisor можно добавить обратно по тому же
|
||||
образцу, что и `node-exporter` (job `cadvisor` в `prometheus.yml`,
|
||||
таргет `cadvisor:8080`, без публикации портов).
|
||||
|
||||
Файлы: `deploy/monitoring/prometheus.yml`, `deploy/monitoring/alerts.yml`,
|
||||
`deploy/monitoring/grafana/provisioning/` (datasource + провайдер
|
||||
|
||||
Reference in New Issue
Block a user