apache/traffic_monitor_builder Docker Image
用于构建Apache Traffic Control的组件Traffic Monitor
Apache Traffic Control - Traffic Monitor Docker镜像文档
镜像概述和主要用途
Traffic Monitor是Apache Traffic Control(ATC)的核心组件之一,用于通过HTTP协议轮询CDN中缓存服务器(基于Apache Traffic Server)的健康状态,并将实时健康数据提供给Traffic Router。本Docker镜像用于构建和部署Traffic Monitor组件,支持在容器化环境中快速集成到Apache Traffic Control CDN架构中,确保客户端请求被定向到可用的缓存节点。
核心功能和特性
核心功能
- HTTP健康检查:通过HTTP协议定期轮询CDN中的缓存服务器,监控其可用性和性能状态。
- 健康状态数据提供:将缓存服务器的健康状态(如在线/离线、负载、响应时间等)实时同步给Traffic Router,用于客户端请求路由决策。
- 状态聚合与上报:聚合多个缓存节点的健康数据,形成全局视图并提供查询接口。
技术特性
- 可配置轮询策略:支持自定义轮询间隔、超时时间和健康检查路径。
- 高可用性:支持多实例部署,避免单点故障。
- 轻量化设计:基于高效的HTTP客户端实现,资源占用低。
- 与ATC生态深度集成:原生支持与Traffic Ops(配置管理)、Traffic Router(路由决策)等ATC组件协同工作。
使用场景和适用范围
典型使用场景
- 大型CDN部署:在基于Apache Traffic Control构建的大规模CDN中,作为核心监控组件确保缓存节点可用性。
- 实时健康监控:需要实时掌握缓存服务器状态,及时发现并隔离故障节点的场景。
- 动态路由优化:为Traffic Router提供准确的节点健康数据,实现客户端请求的智能重定向。
适用范围
- 基于Apache Traffic Control的CDN基础设施。
- 需要监控多个缓存节点(Apache Traffic Server)的分布式环境。
- 容器化部署的CDN组件集群。
使用方法和配置说明
前置条件
- 已部署Apache Traffic Control核心组件(至少包含Traffic Ops和Traffic Router)。
- 缓存服务器(Apache Traffic Server)已配置并注册到Traffic Ops。
- 容器网络需确保Traffic Monitor可访问缓存服务器和Traffic Router。
Docker运行示例(docker run)
bashdocker run -d \ --name traffic-monitor \ -p 8080:8080 \ # 健康状态API端口 -e DB_HOST=traffic-ops-db \ # Traffic Ops数据库主机 -e DB_PORT=5432 \ # 数据库端口(默认PostgreSQL) -e DB_USER=traffic_ops \ # 数据库用户名 -e DB_PASSWORD=secret \ # 数据库密码 -e MONITOR_INTERVAL=10 \ # 健康检查间隔(秒,默认10) -e LOG_LEVEL=INFO \ # 日志级别(DEBUG/INFO/WARN/ERROR,默认INFO) -e CACHE_SERVERS=cache-1.example.com:8080,cache-2.example.com:8080 \ # 需监控的缓存服务器列表 -e TRAFFIC_ROUTER_URL=http://traffic-router:8080 \ # Traffic Router地址,用于上报健康状态 apache/trafficcontrol-traffic-monitor:latest
Docker Compose配置示例
yamlversion: '3.8' services: traffic-monitor: image: docker.xuanyuan.run/apache/trafficcontrol-traffic-monitor:latest container_name: traffic-monitor ports: - "8080:8080" # 暴露健康状态API端口 environment: - DB_HOST=traffic-ops-db - DB_PORT=5432 - DB_USER=traffic_ops - DB_PASSWORD=secret - MONITOR_INTERVAL=10 - LOG_LEVEL=INFO - CACHE_SERVERS=cache-1.example.com:8080,cache-2.example.com:8080 - TRAFFIC_ROUTER_URL=http://traffic-router:8080 restart: unless-stopped networks: - cdn-network # 与其他ATC组件共享网络 networks: cdn-network: driver: bridge
配置参数说明
环境变量
| 参数名 | 描述 | 默认值 | 必须 |
|---|---|---|---|
DB_HOST | Traffic Ops数据库主机地址(存储CDN配置和节点信息) | - | 是 |
DB_PORT | 数据库端口 | 5432 | 否 |
DB_USER | 数据库访问用户名 | - | 是 |
DB_PASSWORD | 数据库访问密码 | - | 是 |
MONITOR_INTERVAL | 健康检查轮询间隔(秒) | 10 | 否 |
LOG_LEVEL | 日志级别,支持DEBUG/INFO/WARN/ERROR | INFO | 否 |
CACHE_SERVERS | 需监控的缓存服务器列表(格式:host:port,host:port) | - | 是 |
TRAFFIC_ROUTER_URL | Traffic Router服务地址,用于上报健康状态数据 | - | 是 |
HEALTH_CHECK_PATH | 缓存服务器健康检查路径(如/health) | / | 否 |
HEALTH_CHECK_TIMEOUT | 单次健康检查超时时间(秒) | 5 | 否 |
端口说明
8080:Traffic Monitor健康状态API端口,提供节点健康数据查询接口(如/api/v1/health)。
验证部署
部署完成后,可通过以下方式验证Traffic Monitor是否正常运行:
-
检查容器状态:
bashdocker ps | grep traffic-monitor -
访问健康状态API:
bashcurl http://localhost:8080/api/v1/health预期返回所有缓存服务器的健康状态列表(如在线状态、响应时间等)。
参考链接
- https://traffic-control-cdn.readthedocs.io/
- https://traffic-control-cdn.readthedocs.io/en/latest/overview/traffic_monitor.html
- https://github.com/apache/trafficcontrol
镜像拉取方式
您可以使用以下命令拉取该镜像。请将 <标签> 替换为具体的标签版本。如需查看所有可用标签版本,请访问 标签列表页面。
轩辕镜像加速拉取命令点我查看更多 traffic_monitor_builder 镜像标签
docker pull docker.xuanyuan.run/apache/traffic_monitor_builder:<标签>
DockerHub 原生拉取命令
docker pull apache/traffic_monitor_builder:<标签>
用户好评
来自真实用户的反馈,见证轩辕镜像的优质服务