Traefik — 6. визуализация метрик в Grafana

6 января 2026

Traefik + Prometheus + Grafana

Логи мы уже подключили, но это не всегда наглядно. Не будем же мы постоянно вглядываться в тысячи строк текста. Поэтому выведем на экран ещё различные метрики. Для этого подключим Prometheus и Grafana.

В файл конфигурации data/traefik.yml добавляем порт (любой, например 9100) для метрик и включаем публикацию метрик:

entryPoints:
  metrics:
    address: ":9100"
    
metrics:
  prometheus:
    entryPoint: metrics

В файл docker-compose.yml добавляем проброс выбранного порта:

services:
  traefik:
    ports:
      - 9100:9100

Пересоздаём контейнер Traefik. Проверяем, что по адресу http://ip:9100/metrics появилась страничка с метриками:

Установить Prometheus очень просто:

docker run --name prometheus -d \
-p 9090:9090 \
-v ./config:/etc/prometheus \
-v prometheus-data:/prometheus \
prom/prometheus

Либо docker-compose.yml:

docker-compose.yml
services:
  prometheus:
    image: prom/prometheus:latest
    container_name: prometheus
    volumes:
      - prometheus-data:/prometheus
      - ./config/:/etc/prometheus/
    ports:
      - 9090:9090
    networks:
      proxy-net:
    restart: unless-stopped
volumes:
  prometheus-data:
networks:
  proxy-net:
    external: true

./config - это каталог с конфигурацией прометеуса, в который необходимо предварительно поместить следующий файл:

prometheus.yml
global:
  scrape_interval:     15s # By default, scrape targets every 15 seconds.
 
  # Attach these labels to any time series or alerts when communicating with
  # external systems (federation, remote storage, Alertmanager).
  external_labels:
    monitor: 'codelab-monitor'
 
# A scrape configuration containing exactly one endpoint to scrape:
# Here it's Prometheus itself.
scrape_configs:
  # The job name is added as a label `job=<job_name>` to any timeseries scraped from this config.
  - job_name: 'prometheus'
 
    # Override the global default and scrape targets from this job every 5 seconds.
    scrape_interval: 15s

    static_configs:
      - targets: ['localhost:9090']

  - job_name: 'traefik'
    scrape_interval: 30s
    scheme: http
    metrics_path: '/metrics'
    static_configs:
      - targets: ['192.168.1.1:9100']

Обратите внимание на секцию - job_name: 'traefik' . Там необходимо изменить IP адрес на свой (targets).

После запуска прометеуса проверяем его работу, открыв в браузере страничку на 9090 порту: http://IP:9090/targets

Предполагаю, что Grafana уже установлена.

Остаётся только добавить источник данных Prometheus и указать IP адрес и порт (9090), где он расположен:

Далее добавляем новый дашборд и импортируем его из файла: grafana_traefik_dashboard_rev9.zip

Это официальный дашборд от Grafana.

Получаем красивое отображение метрик Traefik:

  • docker/traefik_vizualizacija_metrik_v_grafana.txt
  • Последнее изменение: 08.01.2026 14:14
  • r0wbh