本仓库用于构建Datadog Agent 5.x容器的基础镜像。用户需使用构建后的镜像配置并运行Agent。若需Datadog Agent 6.x Dockerfile,可参考datadog-agent仓库。
默认镜像可直接使用,仅需通过环境变量设置API_KEY。
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ -e SD_BACKEND=docker \ -e NON_LOCAL_TRAFFIC=false \ datadog/docker-dd-agent:latest
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ -e SD_BACKEND=docker \ -e NON_LOCAL_TRAFFIC=false \ datadog/docker-dd-agent:latest
默认情况下,Agent容器使用主机docker info命令中的Name字段作为主机名。如需修改,可通过以下方式:
/etc/dd-agent/datadog.conf中的hostname字段。DD_HOSTNAME设置(推荐,见下文环境变量说明)。为确保Docker检查正常运行,主机需启用cgroup内存管理,配置方法参考Debian Wiki。
例如,Debian Jessie及以上系统需在启动参数中添加cgroup_enable=memory swapaccount=1,否则Agent无法识别系统。修改启动参数的方法可参考此线程。
快速启动命令中已启用自动发现(auto-conf模式),Agent会自动对默认检查模板中列出的容器镜像运行检查。
SD_BACKEND环境变量。部分配置参数可通过环境变量调整,具体如下:
| 环境变量 | 说明 |
|---|---|
DD_HOSTNAME | 设置主机名(写入datadog.conf) |
TAGS/DD_TAGS | 设置主机标签,格式:simple-tag-0,tag-key-1:tag-value-1 |
EC2_TAGS | 启用EC2主机标签,设为yes时需实例关联IAM角色 |
LOG_LEVEL/DD_LOG_LEVEL | 设置日志级别(CRITICAL/ERROR/WARNING/INFO/DEBUG) |
DD_LOGS_STDOUT | 设为yes时将所有日志发送至stdout/stderr,供Docker处理 |
PROXY_HOST/PROXY_PORT/PROXY_USER/PROXY_PASSWORD | 配置代理服务器信息 |
DD_URL | 设置Datadog数据接收服务器(用于Agent作为代理场景) |
NON_LOCAL_TRAFFIC | 启用/禁用外部IP的statsd上报,默认true;设为false时仅允许本地流量 |
SD_BACKEND | 自动发现后端,设为docker启用(唯一支持的后端) |
SD_CONFIG_BACKEND | 配置后端类型(etcd/consul/zk),用于自动发现模板来源 |
SD_BACKEND_HOST/SD_BACKEND_PORT | 配置后端的地址和端口 |
SD_TEMPLATE_DIR | 配置后端中检查模板的路径,默认datadog/check_configs |
SD_CONSUL_TOKEN | Consul配置后端的认证令牌 |
SD_BACKEND_USER/SD_BACKEND_PASSWORD | etcd配置后端的认证凭据 |
DD_APM_ENABLED | 启用trace-agent(非Alpine镜像支持),允许接收APM追踪数据 |
DD_PROCESS_AGENT_ENABLED | 启用进程Agent(非Alpine镜像支持),用于实时进程/容器视图 |
DD_COLLECT_LABELS_AS_TAGS | 收集指定容器标签为指标标签,格式:com.docker.label.foo,com.docker.label.bar |
MAX_TRACES_PER_SECOND | APM最大采样速率(每秒追踪数),设为0禁用限制 |
DD_HISTOGRAM_PERCENTILES | 直方图分位数,默认0.95,空格分隔多个值(如0.9 0.95 0.99) |
DD_HISTOGRAM_AGGREGATES | 直方图聚合方式,默认max median avg count,空格分隔多个值 |
Kubernetes监控:设KUBERNETES=yes启用Kubernetes检查。
KUBERNETES_COLLECT_EVENTS=true;或启用Leader选举(KUBERNETES_LEADER_CANDIDATE=true)并通过KUBERNETES_LEADER_LEASE_DURATION设置租期(秒)。default命名空间,通过KUBERNETES_NAMESPACE_NAME_REGEX设置正则表达式匹配目标命名空间。kube_service标签,设KUBERNETES_COLLECT_SERVICE_TAGS=false禁用。KUBERNETES_KUBELET_HOST覆盖。Mesos监控:设MESOS_MASTER=yes启用Mesos Master检查;MESOS_SLAVE=yes启用Mesos Slave检查。
Marathon监控:设MARATHON_URL=[***]启用Marathon检查。
适用于Kubernetes、ECS、Docker Swarm等动态环境,详细说明参考自动发现指南。
bashmkdir /opt/dd-agent-conf.d touch /opt/dd-agent-conf.d/nginx.yaml # 示例:Nginx检查配置
容器启动时会自动将bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -v /opt/dd-agent-conf.d:/conf.d:ro \ # 挂载配置目录 -e API_KEY={your_api_key_here} \ datadog/docker-dd-agent
/conf.d下的.yaml文件复制至/etc/dd-agent/conf.d/(Alpine版本为/opt/datadog-agent/agent/conf.d/)。如需运行基于JMX的检查,需使用JMX镜像(标签格式usual_tag-jmx),例如datadog/docker-dd-agent:latest-jmx、datadog/docker-dd-agent:11.0.5150-jmx。此类镜像在基础镜像上添加了JVM,支持jmxfetch运行。
默认镜像(如latest)同时运行DogStatsD服务器和Agent收集器。如需仅运行DogStatsD,使用独立镜像(标签格式usual_tag-dogstatsd),例如datadog/docker-dd-agent:latest-dogstatsd、datadog/docker-dd-agent:11.0.5141-dogstatsd-alpine。
/proc、/sys/fs或Docker socket。datadog.conf中的全局标签(收集器未运行)。-e DD_APM_ENABLED=true接收APM追踪数据。-p 8125:8125/udp至启动命令。-p 127.0.0.1:8125:8125/udp。设USE_DOGSTATSD=no禁用DogStatsD。
容器内通过默认路由IP(如ip route查询)访问主机上的DogStatsD,例如配置客户端连接172.17.42.1:8125。
启动客户端容器时添加--link dogstatsd:dogstatsd,环境变量DOGSTATSD_PORT_8125_UDP_ADDR和DOGSTATSD_PORT_8125_UDP_PORT自动注入,供客户端使用。
添加-e DD_APM_ENABLED=true启用trace-agent(非Alpine镜像支持),接收APM追踪数据。
-p 8126:8126/tcp至启动命令。-p 127.0.0.1:8126:8126/tcp。示例启动命令:
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ -e DD_APM_ENABLED=true \ -p 8126:8126/tcp \ datadog/docker-dd-agent
启动客户端容器时添加--link dd-agent:dd-agent,环境变量DD_AGENT_PORT_8126_TCP_ADDR和DD_AGENT_PORT_8126_TCP_PORT自动注入。
Python示例配置:
pythonimport os from ddtrace import tracer tracer.configure( hostname=os.environ["DD_AGENT_PORT_8126_TCP_ADDR"], port=os.environ["DD_AGENT_PORT_8126_TCP_PORT"] )
客户端配置追踪器连接主机默认路由IP(如172.17.0.1):
pythonfrom ddtrace import tracer; tracer.configure(hostname="172.17.0.1", port=8126)
如需在镜像中预配置Agent,可基于***镜像构建:
创建Dockerfile:
dockerfileFROM datadog/docker-dd-agent # 示例:添加MySQL检查配置 ADD conf.d/mysql.yaml /etc/dd-agent/conf.d/mysql.yaml
构建镜像:
bashdocker build -t dd-agent-image .
运行自定义镜像:
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ dd-agent-image
Agent 5.7+提供Alpine Linux基础镜像(标签格式usual_tag-alpine),体积约为Debian版本的60%,安全性更高。
bashdocker run -d --name dd-agent \ -v /var/run/docker.sock:/var/run/docker.sock:ro \ -v /proc/:/host/proc/:ro \ -v /sys/fs/cgroup/:/host/sys/fs/cgroup:ro \ -e API_KEY={your_api_key_here} \ datadog/docker-dd-agent:latest-alpine
/opt/datadog-agent/agent/conf.d/(而非/etc/dd-agent/conf.d/)。/opt/datadog-agent/bin/agent info)。Docker镜像版本格式:X.Y.Z,其中:
X:Docker镜像主版本Y:Docker镜像次版本Z:Agent版本示例:首个包含Datadog Agent 5.5.0的Docker镜像版本为10.0.550。
Debian镜像:
bashdocker exec dd-agent service datadog-agent info
Alpine镜像:
bashdocker exec dd-agent /opt/datadog-agent/bin/agent info
注:
docker exec命令需Docker 1.3及以上版本支持。
bashdocker cp dd-agent:/var/log/datadog /tmp/log-datadog-agent
Debian镜像:
bashdocker exec -it dd-agent bash tail -f /var/log/datadog/dogstatsd.log
Alpine镜像:
bashdocker exec -it dd-agent ash tail -f /opt/datadog-agent/logs/dogstatsd.log
如发现容器相关问题,可提交Github Issue;Agent本身问题请参考其文档或Wiki。<|FCResponseEnd|># Datadog Agent 5.x Docker镜像文档
本镜像用于构建Datadog
来自真实用户的反馈,见证轩辕镜像的优质服务
免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录认证访问私有仓库
在 Linux 系统配置镜像加速服务
在 Docker Desktop 配置镜像加速
Docker Compose 项目配置加速
Kubernetes 集群配置 Containerd
在宝塔面板一键配置镜像加速
Synology 群晖 NAS 配置加速
飞牛 fnOS 系统配置镜像加速
极空间 NAS 系统配置加速服务
爱快 iKuai 路由系统配置加速
绿联 NAS 系统配置镜像加速
QNAP 威联通 NAS 配置加速
Podman 容器引擎配置加速
HPC 科学计算容器配置加速
ghcr、Quay、nvcr 等镜像仓库
无需登录使用专属域名加速
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429