traffic_monitor_builder

apache/traffic_monitor_builder Docker Image

用于构建Apache Traffic Control的组件Traffic Monitor

下载次数: 0状态:社区镜像维护者:Apache 软件基金会镜像仓库类型:镜像最近更新:

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)

bash
docker 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配置示例

yaml
version: '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_HOSTTraffic Ops数据库主机地址(存储CDN配置和节点信息)-是
DB_PORT数据库端口5432否
DB_USER数据库访问用户名-是
DB_PASSWORD数据库访问密码-是
MONITOR_INTERVAL健康检查轮询间隔(秒)10否
LOG_LEVEL日志级别,支持DEBUG/INFO/WARN/ERRORINFO否
CACHE_SERVERS需监控的缓存服务器列表(格式:host:port,host:port)-是
TRAFFIC_ROUTER_URLTraffic Router服务地址,用于上报健康状态数据-是
HEALTH_CHECK_PATH缓存服务器健康检查路径(如/health)/否
HEALTH_CHECK_TIMEOUT单次健康检查超时时间(秒)5否

端口说明

  • 8080:Traffic Monitor健康状态API端口,提供节点健康数据查询接口(如/api/v1/health)。

验证部署

部署完成后,可通过以下方式验证Traffic Monitor是否正常运行:

  1. 检查容器状态:

    bash
    docker ps | grep traffic-monitor
    
  2. 访问健康状态API:

    bash
    curl 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:<标签>
专业版 · 高速稳定拉取镜像
50GB 仅 ¥8/年
高速镜像下载在线技术支持专业版保障服务可用付费会员免广告