Amazon ec2 无法从docker容器内部访问datadog代理
我在AmazonLinuxEC2上安装了dd代理。如果我直接在主机上运行python脚本(我使用了名为“dogstatsd python”的SDK),所有指标都可以发送到datadog(我登录到datadoghq.com并在那里看到了指标)。 脚本类似于:Amazon ec2 无法从docker容器内部访问datadog代理,amazon-ec2,docker,localhost,statsd,datadog,Amazon Ec2,Docker,Localhost,Statsd,Datadog,我在AmazonLinuxEC2上安装了dd代理。如果我直接在主机上运行python脚本(我使用了名为“dogstatsd python”的SDK),所有指标都可以发送到datadog(我登录到datadoghq.com并在那里看到了指标)。 脚本类似于: from statsd import statsd statsd.connect('localhost', 8125) statsd.increment('mymetrics') 但是,我启动了一个docker容器,并从容器内部运行相同的脚
from statsd import statsd
statsd.connect('localhost', 8125)
statsd.increment('mymetrics')
但是,我启动了一个docker容器,并从容器内部运行相同的脚本:
from statsd import statsd
statsd.connect('172.14.0.1', 8125)
statsd.increment('my metrics')
“172.14.0.1”是主机的IP,它是通过命令提取的
netstat -nr | grep '^0\.0\.0\.0' | awk '{print $2}'
根本没有向datadog发送任何度量
我猜可能是由于一些配置问题,比如“地址绑定”。可能我安装在主机上的dd代理只能从“localhost”接收度量
希望有人能帮助我。先谢谢你 如果
dd代理
监听localhost
它只能从localhost(127.0.0.1)接收数据。尝试将dd代理
主机更改为0.0.0.0
,而不是localhost
我们正在使用OOTB,它可以正常工作。您需要在
/etc/dd agent/datadog.conf
文件中设置非本地流量:是。否则,代理将拒绝容器中的度量
设置后,需要重新启动代理才能使更改生效:sudo/etc/init.d/datadog-agent restart
或sudo服务datadog-agent restart
映像启用非本地通信:默认情况下是。在这种情况下,您实际上不想使用主机的IP。如果您正在运行docker dd代理,则可以使用以下两个环境变量:
statsd.connect(DOGSTATSD_端口_8125_UDP_地址,DOGSTATSD_端口_8125_UDP_端口)
这应该能奏效。如果没有,您应该能够在中找到与您的问题相关的信息
另外,我应该指出,Datadog在其文档中显示的唯一Python库是。谢谢!我在/etc/dd agent/datadog.conf中将“bind_host”从“localhost”更改为“0.0.0.0”。并重新启动dd代理。但问题仍然存在。。。。。还有什么我需要改变的吗?是的,我知道dd代理docker的形象。但出于某种原因,我们尽量避免使用它。你找到解决办法了吗?。我设置了非本地\u流量:是的
,但它似乎不起作用。在最新版本中,文件是/etc/datadog agent/datadog.conf,而不是dd-agent。这正是需要的。我的设置:操作系统Windows server 2016主机上的datadog代理。windows容器。把细节留给其他可能需要的人。我在Docker中运行了这个,对我来说,最简单的方法是使用环境变量DD_DOGSTATSD_NON_LOCAL_TRAFFIC=True。另见。