diff --git a/servers/de1.md b/servers/de1.md index 747f0b7..8082344 100644 --- a/servers/de1.md +++ b/servers/de1.md @@ -96,6 +96,11 @@ Vhost'ы в `sites-available/`, симлинки в `sites-enabled/`. TLS вез - **ipcam** — приём записей с IP-камер по SFTP (2223) и FTPS (2221 + pasv 30000-30010) в `/srv/ipcam/videos`. - **postgres/postgis** — БД (localhost), данные `~/volumes/postgres`. +## Мониторинг +- Агент `~/monitoring-agent` (node-exporter `:9100` + cadvisor `:8080`, docker), отдаёт метрики на Prometheus `fr1`. +- Порты 9100/8080 ограничены только для IP `fr1` (161.97.93.252) через `DOCKER-USER` iptables (сохранено netfilter-persistent). +- В Grafana `fr1` — instance `de1`. Метрики по публичной сети (план: перецепить на приватный WG-туннель при переносе VPN). + ## Проекты пользователя (`/var/www`) Код проектов лежит здесь (владелец `rus`). ⚠️ Сейчас в `docker ps` их **нет** — то есть эти приложения сейчас остановлены (часть гоняли вручную через `docker compose`). diff --git a/stacks/monitoring-agent/docker-compose.yml b/stacks/monitoring-agent/docker-compose.yml new file mode 100644 index 0000000..452dfbf --- /dev/null +++ b/stacks/monitoring-agent/docker-compose.yml @@ -0,0 +1,40 @@ +# Агент мониторинга для удалённых нод (node-exporter + cadvisor). +# Prometheus на fr1 скрейпит 9100/8080. На ноде ограничить доступ к этим портам +# только IP fr1 (DOCKER-USER iptables) — метрики идут по публичной сети. +# hostname менять под конкретную ноду (здесь de1). +name: monitoring-agent + +services: + node-exporter: + image: prom/node-exporter:latest + container_name: node-exporter + hostname: de1 + restart: unless-stopped + command: + - '--path.procfs=/host/proc' + - '--path.sysfs=/host/sys' + - '--path.rootfs=/rootfs' + - '--collector.filesystem.mount-points-exclude=^/(sys|proc|dev|host|etc)($$|/)' + volumes: + - /proc:/host/proc:ro + - /sys:/host/sys:ro + - /:/rootfs:ro + pid: host + ports: + - "9100:9100" + + cadvisor: + image: gcr.io/cadvisor/cadvisor:latest + container_name: cadvisor + restart: unless-stopped + privileged: true + devices: + - /dev/kmsg + volumes: + - /:/rootfs:ro + - /var/run:/var/run:ro + - /sys:/sys:ro + - /var/lib/docker/:/var/lib/docker:ro + - /dev/disk/:/dev/disk:ro + ports: + - "8080:8080" diff --git a/stacks/monitoring/prometheus/targets/cadvisor/de1.yml b/stacks/monitoring/prometheus/targets/cadvisor/de1.yml new file mode 100644 index 0000000..f37d6e7 --- /dev/null +++ b/stacks/monitoring/prometheus/targets/cadvisor/de1.yml @@ -0,0 +1,3 @@ +- targets: ["213.136.74.247:8080"] + labels: + instance: de1 diff --git a/stacks/monitoring/prometheus/targets/node/de1.yml b/stacks/monitoring/prometheus/targets/node/de1.yml new file mode 100644 index 0000000..231e3a9 --- /dev/null +++ b/stacks/monitoring/prometheus/targets/node/de1.yml @@ -0,0 +1,3 @@ +- targets: ["213.136.74.247:9100"] + labels: + instance: de1