datadog/dev-dd-agent本仓库用于构建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。
通过Docker主机IP
容器内通过默认路由IP(如ip route查询)访问主机上的DogStatsD,例如配置客户端连接172.17.42.1:8125。
通过Docker链接(Legacy)
启动客户端容器时添加--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
通过Docker链接
启动客户端容器时添加--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"] )
通过Docker主机IP
客户端配置追踪器连接主机默认路由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


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务