gpt4 book ai didi

rabbitmq - Logstashrabbitmq 输出永远不会发布到交换

转载 作者:行者123 更新时间:2023-12-02 19:58:27 24 4
gpt4 key购买 nike

  • 我已经运行了logstash,并成功读取文件
    • rabbitmq 正在运行,我正在查看日志,并且可以看到 Web 界面
    • 我已经将logstash配置为输出到rabbitmq交换......我想!

问题在于:如网络界面所示,没有任何内容被发布到交易所。

有什么想法吗?

我的输出配置:

output {
rabbitmq {
codec => plain
host => localhost
exchange => yomtvraps
exchange_type => direct
}

file { path => "/tmp/heartbeat-from-logstash.log" }
}

更新:我正在看兔子日志tail -F/usr/local/var/log/rabbitmq/rabbit\@localhost.log

事实证明,问题是没有为交换器和队列设置路由键。

工作配置是:

output { 
rabbitmq {
codec => plain
host => localhost
exchange => yomtvraps
exchange_type => direct
key => yomtvraps

# these are defaults but you never know...
durable => true
port => 5672
user => "guest"
password => "guest"
}
}

这是一个示例接收器代码(使用 ruby​​“Bunny”)

require "bunny"

conn = Bunny.new(:automatically_recover => false)
conn.start

ch = conn.create_channel
q = ch.queue("yomtvraps")

exchange = ch.direct("yomtvraps", :durable => true)

begin
puts " [*] Waiting for messages. To exit press CTRL+C"
q.bind(exchange, :routing_key => "yomtvraps").subscribe(:block => true) do |delivery_info, properties, body|
puts " [x] Received #{body}"
end
rescue Interrupt => _
conn.close

exit(0)
end

最佳答案

  1. 你rabbitmq的参数好像不够,用户名、密码和端口都没有配置。

  2. 您可以配置两个输出,一个是rabbitmq,另一个是文件以验证日志的创建和日志存储是否正常。

  3. 注意logstash的版本(log stash、rabbitmq插件),它在我之前的试用中给我带来了很多麻烦(log stash到另一个redis服务器等)。

  4. 您可以调试rabbitmq的日志。

ps -ef|grep erl 您可以在参数中找到日志文件的路径。

  1. 确保rabbitmq的web管理器插件已启用,并且防火墙配置正确,然后打开rabbitmq的web管理器,ipaddress:15672

  2. 检查交换器的类型是否正确(在本例中“直接”可能是正确的选择),您的消息使用者配置是否正确,并且您的使用者队列是否已正确绑定(bind)到交换器。

  3. 尝试通过网络管理器将消息发布给您的消费者,并确保消费者正常工作。

  4. 当日志存储将日志推送到您的使用者时监视您的队列。

关于rabbitmq - Logstashrabbitmq 输出永远不会发布到交换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23207812/

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