无法从docker容器内部访问datadog代理程序

she*_*y35 8 localhost amazon-ec2 statsd docker datadog

我在Amazon linux ec2上安装了dd-agent.如果我直接在主机上运行我的python脚本(我使用名为"dogstatsd-python"的SDK),所有指标都可以发送到datadog(我登录到datadoghq.com并在那里看到指标).脚本是这样的:

from statsd import statsd
statsd.connect('localhost', 8125)
statsd.increment('mymetrics')
Run Code Online (Sandbox Code Playgroud)

但是,我启动了一个docker容器并从容器内部运行相同的脚本:

from statsd import statsd
statsd.connect('172.14.0.1', 8125)
statsd.increment('my metrics')
Run Code Online (Sandbox Code Playgroud)

'172.14.0.1'是主机的IP,它是用命令提取的

netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}'
Run Code Online (Sandbox Code Playgroud)

根本没有将指标发送到datadog .....

我猜这可能是由于某些配置问题,如"地址绑定".也许我在主机上安装的dd-agent只能从'localhost'接收指标.

希望有人可以帮助我.先感谢您.

小智 11

您需要non_local_traffic: yes/etc/dd-agent/datadog.conf文件中设置.否则,代理将拒绝来自容器的指标.

设置完成后,您需要重新启动代理才能使更改生效:sudo /etc/init.d/datadog-agent restartsudo service datadog-agent restart

搬运工-DD-剂图像能够non_local_traffic: yes通过默认.


Ale*_*ček 3

如果dd-agent监听localhost它只能从本地主机(127.0.0.1)接收数据。尝试将dd-agent主机更改0.0.0.0localhost.

我们正在使用docker-dd-agent并且它可以正常工作。