【问题标题】:logstash rabbitmq output never posts to exchangelogstash rabbitmq 输出从不发布到交换
【发布时间】:2014-04-24 08:17:32
【问题描述】:
  • 我已经运行了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

【问题讨论】:

  • 问题似乎是我的交换从未发布到我的队列中,所以它毕竟不是真正的 logstash 问题

标签: rabbitmq logstash


【解决方案1】:
  1. 你rabbitmq的参数好像不够,用户名、密码和端口都没有配置。

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

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

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

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

  1. 确保rabbitmq的web manager插件开启,防火墙配置正确,然后打开rabbitmq的web manager,ipaddress:15672

  2. 检查交换器的类型是否正常(在这种情况下“直接”可能是正确的选择),您的消息消费者配置正确,并且您的消费者队列已正确绑定到交换器。

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

  4. 在日志存储推送日志到您的使用者时监控您的队列。

【讨论】:

  • 1. :) 我会试试的! 2. 我在这个例子中删除了它,但是我正在这样做并查看传入的日志 3. :) 我会做一个笔记,谢谢 4. 我正在做:“tail -F /usr/local/var/log /rabbitmq/rabbit\@localhost.log" ...我看到了两端的连接,但没有别的
  • 我觉得你的问题可能出在rabbitmq的配置和测试上。并且在上面的帖子中添加了 4 个步骤。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-14
  • 1970-01-01
相关资源
最近更新 更多