mirror of
https://gitverse.ru/kpa39l/monitoring.git
synced 2026-09-29 09:55:09 +00:00
first_commit
This commit is contained in:
@@ -0,0 +1,93 @@
|
||||
# Monitoring stack — Garage cluster (vps01 + bigbox + vps02)
|
||||
|
||||
Стек мониторинга для S3-кластера Garage (репликация RF=3, WireGuard 10.8.0.0/24).
|
||||
Расположен на **bigbox** в `/opt/monitoring`.
|
||||
|
||||
## Архитектура
|
||||
|
||||
```
|
||||
bigbox (10.8.0.2)
|
||||
┌─────────────────────────────────────────────────┐
|
||||
│ prometheus :9090 ── scrape ──► garage x3 :3903 │
|
||||
│ │ (WG admin API) │
|
||||
│ ├──► node-exporter :9100 (bigbox) │
|
||||
│ └──► 10.8.0.1:3903 (vps01) │
|
||||
│ 10.8.0.4:3903 (vps02) │
|
||||
│ │
|
||||
│ grafana :3001 (dashboards, alerts) │
|
||||
│ loki :3100 (logs) │
|
||||
│ promtail ── docker.sock ──► docker logs garage │
|
||||
└─────────────────────────────────────────────────┘
|
||||
│
|
||||
▼ WireGuard 10.8.0.0/24
|
||||
vps01 (10.8.0.1) vps02 (10.8.0.4)
|
||||
```
|
||||
|
||||
## Сервисы и порты
|
||||
|
||||
| Сервис | Порт | Доступ | Примечание |
|
||||
|-----------|-----------|--------------------|--------------------------------|
|
||||
| Prometheus| 9090 | локально/WG | retention 30d (TSDB) |
|
||||
| Grafana | 3001 | браузер bigbox | 3000 занят gitea → 3001 |
|
||||
| Loki | 3100 | локально | сбор логов |
|
||||
| Promtail | — | docker.sock | docker logs garage |
|
||||
| node-exp | 9100 | WG | на каждой ноде (системные метрики) |
|
||||
|
||||
## Garage admin API (метрики)
|
||||
|
||||
В Garage v2.1 admin API (включая `/metrics` в Prometheus-формате) слушает
|
||||
**отдельный порт** `[admin] api_bind_addr`. На всех трёх нодах прописано:
|
||||
|
||||
```toml
|
||||
[admin]
|
||||
api_bind_addr = "<WG-IP>:3903" # bigbox 10.8.0.2, vps01 10.8.0.1, vps02 10.8.0.4
|
||||
admin_token = "c213de..."
|
||||
metrics_token = "c213de..."
|
||||
```
|
||||
|
||||
Проверка метрик:
|
||||
```
|
||||
curl -H "Authorization: Bearer c213de..." http://10.8.0.2:3903/metrics
|
||||
```
|
||||
`/health` возвращает 200 при кворуме (≥2 нод), 503 иначе.
|
||||
|
||||
Порты 3903 открыты только для WG-подсети:
|
||||
- vps01: `ufw allow from 10.8.0.0/24 to any port 3903`
|
||||
- vps02/bigbox: файрвол не блокирует (policy ACCEPT)
|
||||
|
||||
## Запуск
|
||||
|
||||
```
|
||||
cd /opt/monitoring
|
||||
docker compose up -d
|
||||
```
|
||||
|
||||
Пароль Grafana — переменная `GRAFANA_ADMIN_PASSWORD` в `.env` (по умолчанию `admin`).
|
||||
|
||||
## Полезные команды
|
||||
|
||||
```
|
||||
# статус кластера
|
||||
docker run --rm -v /opt/garage/garage.toml:/etc/garage.toml:ro \
|
||||
-v /opt/garage/meta:/var/lib/garage/meta \
|
||||
--entrypoint /garage dxflrs/garage:v2.1.0 status
|
||||
|
||||
# метрики одной ноды (Prometheus-формат)
|
||||
curl -s -H "Authorization: Bearer <token>" http://10.8.0.2:3903/metrics | head
|
||||
|
||||
# health
|
||||
curl -s -o /dev/null -w "%{http_code}" http://10.8.0.2:3903/health
|
||||
```
|
||||
|
||||
## Алерты (prometheus/alerts.yml)
|
||||
|
||||
| Алерт | Условие | Severity |
|
||||
|--------------------|--------------------------------|----------|
|
||||
| GarageNodeDown | `up{job="garage"} == 0` (2м) | critical |
|
||||
| GarageNoQuorum | `<2` нод up (2м) | critical |
|
||||
| GarageResyncErrors | `garage_block_resync_error_count > 0` (10м) | warning |
|
||||
| GarageNodeUnstable | RPC health down (5м) | warning |
|
||||
|
||||
## Катастрофоустойчивость
|
||||
|
||||
Проект хранится в **двух** git-репозиториях (см. ниже) — на случай поломки bigbox.
|
||||
Reference in New Issue
Block a user