从Docker容器内部,如何连接到端点?

hmmo2u0o  于 2022-12-18  发布在  Docker
关注(0)|答案(1)|浏览(108)

我在EC2示例中安装了cloudwatch代理,并且在该示例上安装了Docker映像。从EC2示例,我可以成功地将日志发送到cloudwatch的端点(0.0.0.0:25888)。但当我使用docker exec -it <container id> bash进入Docker映像时,我尝试从container内部发布相同的日志,但失败并显示以下错误:

2861 2022-07-21 00:11:18,686 ERROR (10.0.1.124,1385:MainThread) aws_embedded_metrics.sinks.tcp_client: Failed to connect to the socket. [Errno 111] Connection refused
2862 2022-07-21 00:11:18,686 INFO (10.0.1.124,1385:MainThread) aws_embedded_metrics.sinks.agent_sink: Parsed agent endpoint (tcp) 0.0.0.0:25888

想知道是否有人知道这里的根本原因或任何调试线索?提前感谢!

rryofs0p

rryofs0p1#

我也遇到过这种情况。我的解决方案(变通方案?)是:
1.确保cloudwatch代理正在监听udp://0.0.0.0:25888而不是127.0.0.1(默认).我看到的CWAgent文档没有任何关于如何实现这一点的示例.
1.进入容器后,使用Docker主机IP发送消息,对我来说是export AWS_EMF_AGENT_ENDPOINT=udp://172.17.0.1:25888,因为我使用的是aws-embedded-metrics-python.YMMV,具体取决于您使用的底层库。

相关问题