Traefik 介绍
Traefik 是一款领先的现代开源反向代理和入口控制器,它使部署服务和应用程序编程接口(API)变得轻松便捷。
Traefik 可以与现有的基础设施组件集成,能够自动、动态地进行自我配置。当客户端发起请求,Traefik 凭借其强大的路由功能,精准地将请求导向对应的后端服务器,全程对客户端隐藏后端服务器的真实地址,极大提升系统安全性与运维便捷性。在容器化与微服务盛行的架构里,Traefik 能够自动感知容器或服务的动态变化,像容器的启动、停止,服务的注册、注销等,继而动态更新路由规则,全程无需人工手动干预,实现了应用交付的自动化。
与需要手动配置的传统反向代理不同,Traefik 使用服务发现来动态配置路由。Traefik 支持所有主要协议,利用丰富的中间件实现负载平衡、速率限制、断路器、镜像、身份验证等。

同时,Traefik 作为关键的反向代理与入口控制器,对其进行监控至关重要。监控可保障服务可用性,及时察觉性能瓶颈与故障,避免服务中断。能优化性能,依据负载及流量分布调整配置,实现合理流量分配。在故障排查时,凭借详细日志与指标快速定位问题根源,减少服务中断时间。总之,对 Traefik 的监控能助力服务稳定、高效、安全运行。
Traefik 的运行指标监控除了支持 OpenTelemetry 的格式外,还支持Datadog、InfluxDB2、Prometheus 和 StatsD 的数据格式。Traefik 指标开启的详细配置说明,请参考如下官网链接:
doc.traefik.io/traefik/obs...
观测云
观测云是一款专为 IT 工程师打造的全链路可观测产品,它集成了基础设施监控、应用程序性能监控和日志管理,为整个技术栈提供实时可观察性。这款产品能够帮助工程师全面了解端到端的用户体验追踪,了解应用内函数的每一次调用,以及全面监控云时代的基础设施。此外,观测云还具备快速发现系统安全风险的能力,为数字化时代提供安全保障。
部署 DataKit
DataKit 是一个开源的、跨平台的数据收集和监控工具,由观测云开发并维护。它旨在帮助用户收集、处理和分析各种数据源,如日志、指标和事件,以便进行有效的监控和故障排查。DataKit 支持多种数据输入和输出格式,可以轻松集成到现有的监控系统中。
登录观测云控制台,在「集成」 - 「DataKit」选择对应安装方式,当前采用 Linux 主机部署 DataKit。

采集器配置
如下的步骤说明是基于 Traefik 开启了 Prometheus 数据格式的方式进行说明。
首先,我们将通过 DataKit 中的 Prom 采集器对 traefik 暴露出来的监控指标进行采集。采集器配置说明如下:
1、开启traefix采集器
bash
cp /usr/local/datakit/conf.d/prom/prom.conf.sample /usr/local/datakit/conf.d/prom/traefik.conf
2、修改 traefik.conf 配置文件
ini
[[inputs.prom]]
urls = ["http://traefik_address:8082/metrics"]
## 忽略对 url 的请求错误
ignore_req_err = false
## 采集器别名
source = "traefik"
metric_types = []
measurement_prefix = "traefik_"
## 采集间隔 "ns", "us" (or "µs"), "ms", "s", "m", "h"
interval = "10s"
## TLS 配置
tls_open = false
## 自定义Tags
[inputs.prom.tags]
# some_tag = "some_value"
# more_tag = "some_other_value"
主要参数说明:
- urls:这里填写 traefik 暴露出来的指标 url
- source:采集器别名,建议写成 traefik
- interval:采集间隔
- measurement_prefix:指标前缀,便于指标分类查询
- tls_open:TLS 配置
- metric_types:指标类型,不填,代表采集所有指标
3、重启 DataKit 服务让配置生效
datakit service -R
关键指标
Traefix
指标名 | 指标描述 | 指标类型 |
---|---|---|
config_reloads_total | 配置重新加载的总次数 | Count |
config_last_reload_success | 上次配置重新加载成功的时间戳。 | Gauge |
open_connections | 按入口点或协议统计划分的当前打开连接数 | Gauge |
tls_certs_not_after | 证书的过期日期 | Gauge |
entrypoint_requests_total | 入口点接收到的 HTTP 请求的总数 | Count |
entrypoint_request_duration_seconds_bucket | 入口点请求持续时间(以秒为单位)的桶状分布指标 | Count |
entrypoint_request_duration_seconds_count | 入口点请求持续时间的计数指标,用于统计总的请求数量 | Count |
entrypoint_request_duration_seconds_sum | 入口点请求持续时间的总和指标,它将所有请求的处理时间(以秒为单位)相加,得到一个总的时间值 | Count |
entrypoint_requests_bytes_total | 入口点处理的 HTTP 请求的总大小(以字节为单位) | Count |
entrypoint_responses_bytes_total | 入口点处理的 HTTP 响应的总大小(以字节为单位) | Count |
router_request_duration_seconds_bucket | 路由请求持续时间(以秒为单位)的桶状分布指标 | Count |
router_request_duration_seconds_count | 路由请求持续时间的计数指标,用于统计总的请求数量 | Count |
router_request_duration_seconds_sum | 路由请求持续时间的总和指标,它将所有请求的处理时间(以秒为单位)相加,得到一个总的时间值 | Count |
router_requests_bytes_total | 路由点请求持续时间(以秒为单位)的桶状分布指标 | Count |
router_requests_total | 路由点请求持续时间(以秒为单位)的桶状分布指标 | Count |
router_responses_bytes_total | 路由点请求持续时间的计数指标,用于统计总的请求数量 | Count |
service_request_duration_seconds_bucket | 服务请求持续时间(以秒为单位)的桶状分布指标 | Count |
service_request_duration_seconds_count | 路由请求持续时间的计数指标,用于统计总的请求数量 | Count |
service_request_duration_seconds_sum | 路由请求持续时间的总和指标,它将所有请求的处理时间(以秒为单位)相加,得到一个总的时间值 | Count |
service_requests_bytes_total | 路由点请求持续时间(以秒为单位)的桶状分布指标 | Count |
service_requests_total | 路由点请求持续时间(以秒为单位)的桶状分布指标 | Count |
service_responses_bytes_total | 路由点请求持续时间的计数指标,用于统计总的请求数量 | Count |
Process
指标名 | 指标描述 | 指标类型 |
---|---|---|
cpu_seconds_total | Count | |
max_fds | raefik进程最大的fd | Count |
open_fds | 进程打开的fd | Count |
resident_memory_bytes | 进程占用内存 | Count |
start_time_seconds | 进程启动时间 | Count |
virtual_memory_bytes | 进程占用虚拟内存 | Count |
virtual_memory_max_bytes | Count |
场景视图
登录观测云控制台,点击「场景」 -「新建仪表板」,输入 "Traefik", 选择 "Traefik 监控视图",点击 "确定" 即可添加视图。




监控器(告警)
平均请求延迟告警




错误请求数突增告警



总结
总之,通过对 Traefik 的监控,让使用者能够清晰洞察和掌控各服务的访问流量与响应情况,从而能够迅速察觉并处理潜在问题,确保整个服务访问的稳定运行。