Мониторинг traefik через Prometheus
Traefik поддерживает из коробки публикацию метрик в формате prometheus. В метриках доступна основная информация по работе прокси.
Документация по настройке: Traefik Prometheus Documentation - Traefik
Настройка Traefik
Необходимо внести изменения в статическую конфигурацию traefik.yml
Порт публикации может быть любой свободный, в данном случае 8082
#Добавления точки публикации данных
entryPoints:
metrics:
address: ":8082"
#Включение публикации метрик
metrics:
prometheus:
entryPoint: metrics
Пример статической конфигурации:
Traefik статическая конфигурация
api:
dashboard: true
debug: true
entryPoints:
http:
address: ":80"
http:
middlewares:
- crowdsec@file
redirections:
entryPoint:
to: https
scheme: https
https:
address: ":443"
http:
middlewares:
- crowdsec@file
metrics:
address: ":8082"
serversTransport:
insecureSkipVerify: true
providers:
file:
directory: /config
watch: true
certificatesResolvers:
cloudflare:
acme:
email: <email>@gmail.com
storage: acme.json
dnsChallenge:
provider: cloudflare
resolvers:
- "1.1.1.1:53"
- "1.0.0.1:53"
metrics:
prometheus:
entryPoint: metrics
log:
level: "INFO"
filePath: "/var/log/traefik/traefik.log"
accessLog:
filePath: "/var/log/traefik/access.log"
experimental:
plugins:
crowdsec-bouncer-traefik-plugin:
moduleName: "github.com/maxlerebourg/crowdsec-bouncer-traefik-plugin"
version: "v1.3.4-beta1"
Внести изменения в докер файл добавив проброс порта публикации метрик из контейнера docker.
...
ports:
- 8082:8082
...
Измененный файл docker compose для запуска
Traefik
Обязательно надо настроить файлы конфигурации Traefik
services:
traefik:
image: traefik:latest
container_name: traefik
restart: always
security_opt:
- no-new-privileges:true
networks:
- proxy
ports:
- 80:80
- 443:443
- 8082:8082
- 22:22
environment:
- CF_API_EMAIL=$CF_API_EMAIL
- CF_DNS_API_TOKEN=$CF_DNS_API_TOKEN
volumes:
- /etc/localtime:/etc/localtime:ro
- ./traefik.yml:/traefik.yml:ro
- ./acme.json:/acme.json
- ./logs:/var/log/traefik
- ./dynamic:/config:ro
networks:
proxy:
name: proxy
external: true
Настройка Prometheus
Добавить в конфигурационный файл Prometheus новую задачу сбора данных:
- job_name: 'traefik'
scrape_interval: 30s
scheme: http
metrics_path: '/metrics'
static_configs:
- targets: ['192.168.0.131:8082']:9100"]
Параметры являются не обязательными:
scheme: http
metrics_path: '/metrics'
Мониторинг в Grafana

Можно использовать следующий дашборд для Grafana:
![[GrafanaTraefik.json]]
Описание дашборда на официальном сайте: Traefik | Grafana Labs