Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon ec2 无法从docker容器内部访问datadog代理_Amazon Ec2_Docker_Localhost_Statsd_Datadog - Fatal编程技术网

Amazon ec2 无法从docker容器内部访问datadog代理

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容器,并从容器内部运行相同的脚

我在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('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。另见。