问题在于:没有任何内容可以发布到交易所,如网页界面所示。
有什么想法吗?
我的输出配置:
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
答案 0 :(得分:4)
您的rabbitmq参数似乎不够,用户名,密码和端口尚未配置。
您可以配置两个输出,一个是rabbitmq,另一个是文件,用于放置日志的创建和日志存储即可。
注意logstash的版本(log stash,rabbitmq插件),它在我之前的试用中给了我很多麻烦(登录到另一台redis服务器等)。
您可以调试rabbitmq的日志。
ps -ef|grep erl
您可以在参数中找到日志文件的路径。
确保启用了rabbitmq的网络管理器插件,并正确配置了防火墙,然后打开rabbitmq的网络管理器,ipaddress:15672
检查交换机的类型是否正常(在这种情况下'直接'可能是正确的选择),您的消息使用者配置正常,以及您的消费者的队列已被正确约束。
尝试通过网络管理员将消息发布给您的消费者,并确保消费者能够顺利运作。
在日志存储推送登录到您的消费者时监控您的队列。