当前位置: 首页 > 知识库问答 >
问题:

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

巫墨一
2023-03-14

我在Amazon linux ec2上安装了dd-agent。如果我直接在主机上运行我的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”接收指标。

希望有人能帮我。提前谢谢你。

共有3个答案

席嘉祯
2023-03-14

在这种情况下,您实际上不想使用主机的IP。如果您正在运行docker dd代理,则可以使用两个环境变量

statsd。连接(DOGSTATSD_端口_8125_UDP_地址,DOGSTATSD_端口_8125_UDP_端口)

这应该能奏效。如果没有,您应该能够在Datadog文档的这一部分中找到与您的问题相关的信息。

此外,我应该指出,Datadog在其文档中显示的唯一Python库是datadogpy。

卫嘉言
2023-03-14

如果dd代理监听localhost,它只能从localhost(127.0.0.1)接收数据。尝试将dd代理主机更改为0.0.0,而不是localhost

我们正在使用docker dd代理,它在OOTB中工作。

庄实
2023-03-14

您需要在/etc/dd agent/datadog中设置非本地流量:yes。conf文件。否则,代理将拒绝容器中的度量。

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

docker dd代理映像默认情况下启用非本地流量:yes

 类似资料:
  • tl;如果在Docker容器中运行,一个RestController正确回答,另一个则不正确。 该服务有两个API 和。 它们都是通过docker compose运行的。 返回。 返回一个空的200响应。正如预期的那样。 应该返回一个200响应和一个每次调用API时都会增加的数字。可悲的是,事实并非如此。 在本地运行该服务可以提供预期的结果。 maven spotify插件用于从以下创建图像。 我

  • 问题内容: 我已经创建了hashicorp保管库部署并配置了kubernetes auth。保管库容器从Pod内部调用kubernetes api进行k8s身份验证,并且该调用失败,并显示500个错误代码(连接被拒绝)。我正在将docker用于Windows kubernetes。 我将以下配置添加到Vault中以进行kubernetes身份验证机制。 payload.json 我得到了预期的20

  • 我可以对Docker API进行cUrl调用,但是如果我从容器(docker-comals)运行相同的脚本,我就无法到达任何API终结点。 我的请求如下: 原因可能是使用了localhost,但我现在还找不到解决方案。有什么建议吗? 编辑:下面是我正在使用的堆栈(Api平台)的简要摘要https://api-platform.com/).每个容器都连接到“api_默认”网桥网络: 基于php=Sy

  • 我有一个docker应用程序,我使用以下docker compose。yml运行它: 我有一个没有docker化的服务器在我的机器上运行,我可以通过访问它。我希望我的服务能够访问它。 我发现有人建议在我的服务配置中添加以下内容: 但是当我添加这个时,并尝试,我得到。当我尝试<code>curl时,也会出现同样的错误http://host.docker.internal:3000。 我拼命地尝试将端

  • 我有一个关于这个问题的问题https://hub.docker.com/r/jupyter/scipy-notebook.我正在尝试使用docker compose运行此图像: 组成: Dockerfile 我用手够不着它http://locahost:8888 .... 网址。我使用Windows10作为主机,并尝试从这个docker compose和这些工作中访问其他服务。

  • 问题内容: 如何在使用Vagrant / Virtualbox的2 centos VM与使用docker for mac的docker容器之间设置网络。他们都需要能够相互访问。 目前,我无法从Docker容器中访问虚拟机。 流浪汉设置: 虚拟机可以互相访问,但Docker容器无法访问虚拟机 问题答案: 您需要连接运行docker容器的网络和将无业游民的VM引导到主机上同一桥设备的网络: 1. 创建