目 录CONTENT

文章目录

使用traefik记录Metrics,通过prometheus采集,并在grafana可视化

Administrator
2025-09-30 / 0 评论 / 0 点赞 / 0 阅读 / 0 字

 

字数 981,阅读大约需 5 分钟

使用traefik记录Metrics,通过prometheus采集,并在grafana可视化

traefik支持多种数据存储记录Metrics,本文以prometheus采集为例,演示如何通过traefik记录应用的Metrics:Traefik Metrics Overview - Traefik[1]

traefik新增配置

在traefik新增以下核心配置,主要目的是暴露“Prometheus metrics 添加一个新的入口点”,且以8082作为端口


    
    
    
  metrics: # 移动到全局级别
  prometheus:
    buckets:
      - 0.1
      - 0.3
      - 1.2
      - 5.0
    addRoutersLabels: true
    addServicesLabels: true
    addEntryPointsLabels: true
    entryPoint: metrics

entryPoints:
  http:
    address: ":80"
    http:
      middlewares:
        # - http-compress@file
        - traceid@file # 明确指定使用 file 提供者
        - logs@file
  metrics: # 为 Prometheus metrics 添加一个新的入口点
    address: ":8082"

prometheus采集traefik

采集配置

需要将采集任务写入到prometheus的配置文件里


    
    
    
    # Traefik监控任务
  - job_name: "traefik"
    static_configs:
      - targets: ["traefik:8082"] # Traefik服务的名称和metrics端口

prometheus部署配置如下


    
    
    
  # Docker Compose版本号,指定使用Compose文件格式版本3
version: "3"

# 定义网络配置
networks:
  platform-common-net:
    external: true

# 定义服务配置
services:
  # Prometheus监控服务
  prometheus:
    # 使用官方Prometheus镜像
    image: prom/prometheus
    # 容器名称,便于管理
    container_name: prometheus
    # 容器主机名
    hostname: prometheus
    # 容器重启策略:always表示总是重启
    restart: always
    # 挂载卷,将本地配置文件映射到容器内
    volumes:
      # 主配置文件prometheus.yml
      - ./prometheus.yml:/etc/prometheus/prometheus.yml
      # 节点宕机规则文件node_down.yml
      - ./node_down.yml:/etc/prometheus/node_down.yml
    # 端口映射,将容器内部9090端口映射到宿主机9091端口
    ports:
      - "9101:9090"
    networks: # 修改网络配置
      - platform-common-net

  # Node Exporter服务,用于收集主机系统指标
  node-exporter:
    # 使用官方Node Exporter镜像
    image: quay.io/prometheus/node-exporter
    # 容器名称
    container_name: node-exporter
    # 容器主机名
    hostname: node-exporter
    # 重启策略:always
    restart: always
    # 端口映射,将容器9100端口映射到宿主机9100端口
    ports:
      - "9100:9100"
    networks: # 添加网络配置
      - platform-common-net

  # Grafana可视化服务,用于展示Prometheus数据
  grafana:
    # 使用官方Grafana镜像
    image: grafana/grafana
    # 容器名称
    container_name: grafana
    # 容器主机名
    hostname: grafana
    # 重启策略:always
    restart: always
    # 挂载卷,用于持久化Grafana数据
    volumes:
      - grafana-data:/var/lib/grafana
    # 端口映射,将容器3000端口映射到宿主机3000端口
    ports:
      - "3000:3000"
    networks: # 添加网络配置
      - platform-common-net
    # Grafana环境变量配置
    environment:
      # 管理员用户名
      - GF_SECURITY_ADMIN_USER=admin
      # 管理员密码
      - GF_SECURITY_ADMIN_PASSWORD=CkG@GUsc@GSrDAed
    # 依赖Prometheus服务,确保Prometheus先启动
    depends_on:
      - prometheus

# 定义数据卷,用于持久化Grafana数据
volumes:
  grafana-data:

采集指标

当启用 Prometheus metrics 时,Traefik 默认会上报以下主要指标:

  1. 1. 入口点 (EntryPoints) 指标:

  • • traefik_entrypoint_requests_total: 入口点接收到的请求总数。

  • • traefik_entrypoint_requests_bytes_total: 入口点接收到的请求字节总数。

  • • traefik_entrypoint_responses_bytes_total: 入口点发送的响应字节总数。

  • • traefik_entrypoint_request_duration_seconds: 入口点请求处理时长的直方图。

  • • traefik_entrypoint_responses_total: 按 HTTP 状态码(1xx, 2xx, 3xx, 4xx, 5xx)分类的入口点响应总数。

  • • traefik_entrypoint_open_connections: 当前入口点打开的连接数。

  1. 2. 路由器 (Routers) 指标:

  • • traefik_router_requests_total: 路由器接收到的请求总数。

  • • traefik_router_responses_total: 按 HTTP 状态码分类的路由器响应总数。

  • • traefik_router_request_duration_seconds: 路由器请求处理时长的直方图。

  1. 3. 服务 (Services) 指标:

  • • traefik_service_requests_total: 服务接收到的请求总数。

  • • traefik_service_responses_total: 按 HTTP 状态码分类的服务响应总数。

  • • traefik_service_request_duration_seconds: 服务请求处理时长的直方图。

  • • traefik_service_retries_total: 服务重试次数。

  • • traefik_service_server_up: 指示后端服务器是否可用 (0 或 1)。

  • • traefik_service_open_connections: 当前服务打开的连接数。

  1. 4. TLS 指标 (如果启用 HTTPS):

traefik_tls_certs_not_after: TLS 证书的过期时间戳。
traefik_tls_certs_not_before: TLS 证书的生效时间戳。
5. 配置加载指标:

traefik_config_reloads_total: 配置重新加载的总次数。
traefik_config_last_reload_success: 上次配置重新加载是否成功(0 或 1)。
traefik_config_last_reload_failure: 上次配置重新加载失败是否成功(0 或 1)

验证

在prometheus可查询到Metrics指标数据,在grafana可通过看板展示指标Metrics

流程图

引用链接

[1] Traefik Metrics Overview - Traefik: https://doc.traefik.io/traefik/reference/install-configuration/observability/metrics/#service-metrics

 

0
  1. 支付宝打赏

    qrcode alipay
  2. 微信打赏

    qrcode weixin

评论区