Page:
Supervision
No results
1
Supervision
pepper edited this page 2026-06-27 03:07:51 +00:00
📊 Supervision
Architecture
💻 node-exporter ──(métriques hôte)──────────┐
🔭 alloy ──(métriques cAdvisor conteneurs)──►📈 Prometheus ──┐
🔭 alloy ──(logs conteneurs)────────────────►📋 Loki ────────┤►📊 Grafana
│
(SSO Authentik AUTO_LOGIN)
Composants
Prometheus
- Rétention : 30 jours / 10 GB (whichever first)
- Config :
./monitoring/prometheus/prometheus.yml - Scrape targets : node-exporter (hôte), cadvisor (conteneurs via alloy), applications
Loki
- Config :
./monitoring/loki/config.yml - Données :
./monitoring/loki/data/(exclu des sauvegardes — WAL uniquement) - Retention : configurable dans
config.yml
Alloy (agent Grafana)
- Config :
./monitoring/alloy/config.alloy - Rôle : collecte les logs de tous les conteneurs Docker + métriques cAdvisor
- Découverte Docker : via
docker-socket-proxy(lecture seule — jamais de socket brut) - Données WAL :
./monitoring/alloy/data/(exclu des sauvegardes)
Node-exporter
- Métriques hôte : CPU, RAM, disque, réseau, load average, fs
- Port : 9100 (interne uniquement)
Grafana
- URL : grafana.molok.fr
- SSO : Authentik OIDC,
AUTO_LOGIN=true(redirige direct vers Authentik) - Provisioning :
./monitoring/grafana/provisioning/(datasources + dashboards) - Données :
./monitoring/grafana/data/(inclus dans les sauvegardes)
Requêtes utiles
Prometheus (PromQL)
# CPU usage conteneurs (top 5)
topk(5, rate(container_cpu_usage_seconds_total[5m]) * 100)
# RAM par conteneur
container_memory_usage_bytes{name=~".+"}
# Espace disque
node_filesystem_avail_bytes{mountpoint="/"}
# Uptime
node_boot_time_seconds
Loki (LogQL)
# Logs d'un conteneur
{container_name="swag"}
# Erreurs nginx
{container_name="swag"} |= "error"
# Alertes CrowdSec
{container_name="crowdsec"} |= "ban"
# Logs Authentik
{container_name="authentik-server"} | json | level="warning"
Alertes
Les alertes sont configurables dans Grafana (Alerting → Rules) en PromQL ou LogQL.
Exemples d'alertes utiles :
- Espace disque < 10 GB
- Conteneur arrêté depuis > 5 min
- Tentatives de login échouées > 10/min (Authentik)
- RAM > 80%
Dépannage
# Prometheus — targets en erreur
curl -s http://localhost:9090/api/v1/targets | python3 -m json.tool | grep -A5 '"health":"down"'
# Alloy — état
sudo docker compose logs -f alloy
# Vérifier que node-exporter répond
curl -s http://localhost:9100/metrics | head -20