RousselTMLEARNING

Article · Traefik: From Discovery to Expertise

Logs

This article is available in French.

1. Deux journaux différents #

Fonctionnement et trafic.

Distinguer #

JournalContenuConfiguration
Journal de Traefik (log)Démarrage, erreurs de configuration, certificats, providerslog.level : ERROR (défaut), WARN, INFO, DEBUG
Access logs (accessLog)Une ligne par requête : client, routeur, service, statut, duréedésactivés par défaut

Configuration #

log:
  level: INFO
  format: json
accessLog:
  filePath: /var/log/traefik/access.log
  format: json
  bufferingSize: 100                     # écriture groupée
  filters:
    statusCodes: ["400-599"]             # n'enregistrer que les erreurs…
    minDuration: 500ms                   # …ou les requêtes lentes
  fields:
    headers:
      defaultMode: drop
      names: { User-Agent: keep, Authorization: redact }

2. Lire les access logs #

Les champs utiles.

Champs JSON principaux #

ChampSignification
ClientHostAdresse IP du client
RequestMethod, RequestPathMéthode et chemin
RouterName, ServiceNameRouteur et service qui ont traité la requête
DownstreamStatusStatut renvoyé au client
OriginStatusStatut renvoyé par le backend (0 s'il n'a pas répondu)
DurationDurée totale en nanosecondes
TraceIdIdentifiant de trace si le tracing est activé

Requêtes avec jq #

Chaîne de collecte des logs
Les access logs JSON se collectent sans règle d'analyse.
# Erreurs 5xx par service
jq -r 'select(.DownstreamStatus >= 500) | .ServiceName' access.log | sort | uniq -c | sort -rn
# Requêtes les plus lentes (ms)
jq -r '[(.Duration/1e6|floor), .RequestPath] | @tsv' access.log | sort -rn | head
# Le backend n'a pas répondu (502/504) : OriginStatus vaut 0
jq -c 'select(.OriginStatus == 0) | {RouterName, ServiceName, DownstreamStatus}' access.log

3. Bonnes pratiques #

Utile, maîtrisé, conforme.

Règles #

  • Format JSON, horodatage UTC et rotation (logrotate avec envoi de USR1 à Traefik pour rouvrir le fichier).
  • Masquer les en-têtes sensibles (Authorization, cookies) : ce sont des données personnelles ou des secrets.
  • Filtrer en production à fort trafic (erreurs et requêtes lentes) et produire les volumes par des métriques plutôt que par les logs.
  • Activer le tracing pour relier une ligne de log à une trace (TraceId).
RGPD : Les adresses IP sont des données personnelles au sens du RGPD : définissez une durée de conservation.

📄 Traefik : les logs (journaux applicatifs et access logs) →

My progress

  • ⏱ Estimated time : ≈ 5 min

Sign in to track your progress and take notes. Sign in

💬 Ask a question

Recommended Articles

Bonnes pratiques Traefik : sécurité, haute disponibilité et observabilité

Bonnes pratiques Traefik : sécurisation du dashboard et du socket Docker, TLS moderne, middleware...

Traefik : les métriques avec Prometheus et OpenTelemetry

Exposer les métriques de Traefik (Prometheus ou OTLP), comprendre les séries par entrypoint, rout...

Traefik : le tracing distribué avec OpenTelemetry

Activer le tracing de Traefik v3 avec OpenTelemetry (OTLP), propager le contexte W3C vers les app...

Traefik : sécuriser et transformer les requêtes avec les middlewares (BasicAuth, ForwardAuth…)

Les middlewares Traefik modifient les requêtes et réponses entre le routeur et le service : authe...

Traefik comme Ingress Controller pour Kubernetes (Helm, IngressRoute, Gateway API)

Installer Traefik dans Kubernetes avec Helm et publier des applications avec Ingress, les CRD Ing...

L'API de Traefik : inspecter la configuration et sécuriser le tableau de bord

Utiliser l'API REST de Traefik pour inspecter routeurs, services, middlewares et entrypoints, l'e...

Traefik : vue d'ensemble, architecture et premier déploiement

Découvrir Traefik : reverse proxy et load balancer cloud-native, entrypoints, routers, services, ...

Traefik : les providers (Docker, Kubernetes, Nomad, Consul, fichiers, clés-valeurs)

Les providers alimentent la configuration dynamique de Traefik : découverte des services Docker, ...

Les plugins Traefik : l'exemple de CrowdSec pour bloquer les attaques

Étendre Traefik avec des plugins (catalogue officiel, interpréteur Yaegi), puis protéger ses appl...

Support us

♥ SUPPORT US

Support RousselTM Learning

Courses, articles, labs and certificates stay free with no intrusive ads. A voluntary contribution, of any amount you choose, pays for hosting, lab environments and new content.

Contribute with PayPal Any amount · card or PayPal accountLearn more
QR code PayPal
Or scan this QR code with your phone

Thank you, every contribution counts!