Aller au contenu

Rétention des Logs

Configuration de la durée de conservation des logs dans Loki.

Configuration Actuelle

Paramètre Valeur Description
retention_period 168h (7 jours) Durée de conservation
retention_delete_delay 2h Délai avant suppression définitive

Modifier la Rétention

1. Éditer la configuration Loki

nano /opt/monitoring/config/loki-config.yml

2. Modifier les valeurs

limits_config:
  retention_period: 336h  # 14 jours
  max_query_lookback: 336h

compactor:
  retention_enabled: true
  retention_delete_delay: 2h

3. Redémarrer Loki

cd /opt/monitoring
docker-compose restart loki

Durées Recommandées

Usage Rétention Configuration
Développement 3 jours 72h
Standard 7 jours 168h
Production 14 jours 336h
Compliance 30 jours 720h
Long terme 90 jours 2160h

Estimation de l'Espace Disque

Volume logs/jour 7 jours 14 jours 30 jours
1 GB ~7 GB ~14 GB ~30 GB
5 GB ~35 GB ~70 GB ~150 GB
10 GB ~70 GB ~140 GB ~300 GB

Compression

Loki utilise la compression Snappy. Les estimations ci-dessus incluent un facteur de compression d'environ 5-10x.

Rétention par Stream (Avancé)

Vous pouvez configurer des durées de rétention différentes par label :

limits_config:
  retention_period: 168h  # Défaut: 7 jours

  retention_stream:
    - selector: '{env="dev"}'
      priority: 1
      period: 72h  # Dev: 3 jours

    - selector: '{env="staging"}'
      priority: 2
      period: 168h  # Staging: 7 jours

    - selector: '{env="prod"}'
      priority: 3
      period: 336h  # Prod: 14 jours

    - selector: '{app="nestjs-backend", level="error"}'
      priority: 4
      period: 720h  # Erreurs backend: 30 jours

Vérifier la Rétention

Voir l'espace utilisé

docker-compose exec loki du -sh /loki/*

Forcer le compactage

# Le compactage s'exécute automatiquement toutes les 10 minutes
# Pour forcer un cycle :
docker-compose restart loki

Alertes sur l'Espace Disque

Surveillez l'espace disque du VPS :

# Vérifier l'espace disponible
df -h /var/lib/docker

# Alerter si < 20% disponible
if [ $(df /var/lib/docker | tail -1 | awk '{print $5}' | tr -d '%') -gt 80 ]; then
  echo "ALERTE: Espace disque faible"
fi