From ab91c27655ef0531fd78ae041ccadc788ea34ef6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ky=C3=A2ne?= Date: Sun, 7 Feb 2021 14:10:52 +0100 Subject: [PATCH] Enable traefik metrics --- pica-traefik/README.md | 18 ++++++++++++++---- pica-traefik/docker-compose.yml | 12 ++++++++++-- pica-traefik/traefik.toml | 7 ++++++- 3 files changed, 30 insertions(+), 7 deletions(-) diff --git a/pica-traefik/README.md b/pica-traefik/README.md index bbd378e..d9111ab 100644 --- a/pica-traefik/README.md +++ b/pica-traefik/README.md @@ -20,14 +20,24 @@ Si on lance plein de conteneurs de tests, on utilisera temporairement [l'environ ### Lancement +#### Certs + Au premier lancement, assurez-vous que : -* Le dossier `/DATA/docker/traefik/certs` existe -* Créez un fichier `acme.json` à l'intérieur -* Changez son propriétaire à `root` -* Changez ses permissions à `600` + +- Le dossier `/DATA/docker/traefik/certs` existe +- Créez un fichier `acme.json` à l'intérieur +- Changez son propriétaire à `root` +- Changez ses permissions à `600` C'est dans ce fichier que seront conservés tous les certificats générés par Traefik. +#### Métriques + +Pour le bon fonctionnement des métriques, il faut aussi créer un fichier `.env` (dans le même dossier que le Docker Compose) qui devra contenir 2 variables : + +- `SERVER_NAME` qui correspond au nom du serveur, par exemple `SERVER_NAME=pica01-test.picasoft.net` +- `METRICS_AUTH` qui correspond à la chaîne d'identification htpasswd utilisée pour authentifier sur l'endpoint des métriques, par exemple `METRICS_AUTH="traefik:$apr1$bXnknJ0S$GsC.ozNJc/dAkh9uH7Qlg."` + ### Mise à jour Il suffit de mettre à jour le tag de l'image dans Compose. diff --git a/pica-traefik/docker-compose.yml b/pica-traefik/docker-compose.yml index d4a139e..43d0ddc 100644 --- a/pica-traefik/docker-compose.yml +++ b/pica-traefik/docker-compose.yml @@ -1,8 +1,8 @@ -version: '3.7' +version: "3.7" networks: proxy: - name: 'proxy' + name: "proxy" services: traefik: @@ -17,6 +17,14 @@ services: - ./traefik.toml:/traefik.toml - ./traefik_dynamic.toml:/traefik_dynamic.toml - /DATA/docker/traefik/certs:/certs + labels: + traefik.http.routers.traefik-metrics.entrypoints: websecure + traefik.http.routers.traefik-metrics.rule: "Host(`${SERVER_NAME}`) && PathPrefix(`/metrics`)" + traefik.http.routers.traefik-metrics.service: traefik-metrics + traefik.http.routers.traefik-metrics.middlewares: "traefik-metrics-auth@docker" + traefik.http.middlewares.traefik-metrics-auth.basicauth.users: "${METRICS_AUTH}" + traefik.http.services.traefik-metrics.loadbalancer.server.port: 8082 + traefik.enable: true networks: - proxy restart: unless-stopped diff --git a/pica-traefik/traefik.toml b/pica-traefik/traefik.toml index 472e372..501c5e2 100644 --- a/pica-traefik/traefik.toml +++ b/pica-traefik/traefik.toml @@ -15,7 +15,8 @@ [entryPoints.websecure.http.tls] certResolver = "letsencrypt" options = "tls12@file" - + [entryPoints.metrics] + address = ":8082" [providers] providersThrottleDuration = "2s" @@ -40,3 +41,7 @@ storage = "/certs/acme.json" [certificatesResolvers.letsencrypt.acme.httpChallenge] entryPoint = "web" + +[metrics] + [metrics.prometheus] + entryPoint = "metrics"