gpt4 book ai didi

docker - 连接Logstash和Rabbitmq Docker容器

转载 作者:行者123 更新时间:2023-12-02 18:33:27 25 4
gpt4 key购买 nike

我正在尝试从Docker镜像启动Logstash,以将日志发送到在另一个Docker容器上运行的RabbitMQ实例。

我链接了两个容器,并使用以下命令和配置文件启动了Logstash:

docker run --link rabbitmq:rabbit -it log-sender logstash -f config.conf

config.conf:
input { 
stdin {
}
}
output {
rabbitmq {
host => "RABBIT_PORT_5672_TCP_ADDR"
exchange => "test_exchange"
exchange_type => "fanout"
}
}

我得到以下错误:

RabbitMQ connection error: Connection to RABBIT_PORT_5672_TCP_ADDR:5672 refused: host unknown. Will attempt to reconnect in 10 seconds... {:exception=>#, :backtrace=>["/opt/logstash/vendor/bundle/jruby/1.9/gems/march_hare- 2.1.2-java/lib/march_hare/session.rb:361:in 'converting_rjc_exceptions_to_ruby'" , "/opt/logstash/vendor/bundle/jruby/1.9/gems/march_hare-2.1.2-java/lib/march_ha re/session.rb:382:in 'new_connection_impl'", "/opt/logstash/vendor/bundle/jruby/ 1.9/gems/march_hare-2.1.2-java/lib/march_hare/session.rb:82:in 'initialize'", "/ ... uts/rabbitmq/march_hare.rb:18:in 'register'", "org/jruby/RubyArray.java:1613:in 'each'", "/opt/logstash/lib/logstash/pipeline.rb:220:in 'outputworker'", "/opt/l ogstash/lib/logstash/pipeline.rb:152:in `start_outputs'"], :level=>:error}



兔子 docker 是 base image,使用以下命令运行:
docker run -d -p 5672:5672 -p 15672:15672 rabbitmq

似乎由于某种原因,我的Logstash镜像无法访问RabbitMQ镜像的端口。使用curl我可以从主机在端口5672上获取响应“AMPQ”,但不能从Logstash镜像获取响应。

最佳答案

我遇到了同样的问题。我在How to reference environment variables in logstash configuration file?的帮助下指出了正确的道路。

请记住,您上面的文件是静态Logstash配置文件。因此,出现在文件中的字符串RABBIT_PORT_5672_TCP_ADDR永远不会被Logstash扩展为环境变量$RABBIT_PORT_5672_TCP_ADDR中包含的实际IP地址。

如何将正确的IP地址输入Logstash配置文件? 您不是

Docker在容器上使用/ etc / hosts进行some magic。如果您正确设置了多容器环境,则应该在Logstash容器的hosts文件中看到Rabbit容器名称的条目。

这使您可以使用Rabbit容器的名称作为Logstash容器上Logstash配置中的地址:

rabbitmq {
host => "name_of_your_rabbit_container"
}

如果要仔细检查,请在系统中添加 copy the Logstash container's hosts file。打开它,您应该看到一个条目,其中包含由Docker生成的IP地址和Rabbit容器的名称。

关于docker - 连接Logstash和Rabbitmq Docker容器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29850223/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com