Traefik, monitorer le service avec son système de ping

Dans vos fichiers docker-compose, il est utile d’avoir un bloc de configuration healthcheck pour faire connaître l’état du service à votre démon Docker. Traefik dispose de son système d’état de vie, sans avoir recours à un Dockerfile pour intégrer soi-même son système.

Objectif: Configurer le système de ping de Traefik et configurer le healthcheck dans le docker-compose.

Environnement: Debian 13, Docker 28.x, Traefik 3.6.

Contexte d’exécution:

jho@vmi866042:/opt/docker/dc$ tree
.
├── conf
│   ├── acme.json
│   ├── traefik.yml
│   ├── traefikdynamic
│   │   ├── dynamic.yml
├── docker-compose.yml
└── logs
    ├── traefikAccess.log
    ├── traefik.log

Résultat de la commande “tree” dans le dossier /opt/docker/dc

  • dossier où se trouvent tous les fichiers et dossiers pour cet exemple : /opt/docker/dc
  • emplacement du fichier de configuration principal de Traefik : /opt/docker/dc/conf/traefik.yml
  • dossier où se trouvent les configurations de Traefik (fichiers dynamiques) : /opt/docker/dc/conf/traefikdynamic
  • emplacement du fichier comportant tous les certificats générés par let’s encrypt (ou autre) : /opt/docker/dc/conf/acme.json
  • dossier où se trouvent les journaux d’événements (logs) : /opt/docker/dc/logs/

Une modification est à apporter dans le fichier de configuration traefik.yml, ajoutez ces lignes :

entryPoints:
  # ...
  ping:
    address: ":8082"

ping:
  entryPoint: "ping"

Dans le fichier docker-compose, ajoutez ce bloc dans le service traefik :

services:
  traefik:
    #...
    healthcheck:
      test: ["CMD", "traefik", "healthcheck", "--ping"]
      interval: 10s
      timeout: 5s
      retries: 3

L’attribut --ping correspond à l’entrypoint que vous avez saisi plus haut. Recréez les conteneurs via un docker compose up -d. Désormais, via la commande docker compose ps, vous devriez voir l’état du conteneur Traefik dans la forme “Up xx (healthy)”.

Julien HOMMET
2 minutes
256 mots
tuto