36 lines
1.7 KiB
Markdown
36 lines
1.7 KiB
Markdown
# Monitoring stack (fr1)
|
||
|
||
Prometheus + Grafana + node-exporter + cAdvisor. Живёт на `fr1` в `~/monitoring`, доступ — https://mon.ruzzy.dev.
|
||
|
||
## Структура
|
||
- `docker-compose.yml` — стек. Grafana пароль через `${GF_ADMIN_PASSWORD}` (`.env`, не в git).
|
||
- `prometheus/prometheus.yml` — scrape-конфиг, таргеты через **file_sd**.
|
||
- `prometheus/targets/node/*.yml`, `prometheus/targets/cadvisor/*.yml` — таргеты (по файлу на сервер).
|
||
- `grafana/provisioning/` — datasource (uid `prometheus`) + дашборды (Node Exporter Full, cAdvisor) как код.
|
||
|
||
## Запуск
|
||
```bash
|
||
cd ~/monitoring
|
||
echo "GF_ADMIN_PASSWORD=<пароль>" > .env # один раз
|
||
docker compose up -d
|
||
```
|
||
|
||
## Добавить новый сервер
|
||
На новом сервере поднять `node-exporter` (:9100) и `cadvisor` (:8080), доступные с fr1 (по приватному туннелю).
|
||
Затем на fr1 добавить таргеты и перечитать конфиг (без рестарта):
|
||
```bash
|
||
# ~/monitoring/prometheus/targets/node/<name>.yml
|
||
- targets: ['<IP-в-туннеле>:9100']
|
||
labels: { instance: <name> }
|
||
|
||
# ~/monitoring/prometheus/targets/cadvisor/<name>.yml
|
||
- targets: ['<IP-в-туннеле>:8080']
|
||
labels: { instance: <name> }
|
||
|
||
curl -s -X POST http://127.0.0.1:9090/-/reload
|
||
```
|
||
В дашбордах сервер появится в выпадающем списке `instance`.
|
||
|
||
## Дашборды
|
||
Провижатся автоматически (папка **Infra**): Node Exporter Full (1860), cAdvisor (19792). Datasource — Prometheus (uid `prometheus`).
|