我在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
想知道是否有人知道这里的根本原因或任何调试线索?提前感谢!
1条答案
按热度按时间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,具体取决于您使用的底层库。