首页 \ 问答 \ logstash rabbitmq输出从不发布到交换(logstash rabbitmq output never posts to exchange)

logstash rabbitmq输出从不发布到交换(logstash rabbitmq output never posts to exchange)

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

这就是问题:没有任何东西可以发布到交易所,如在Web界面中看到的那样。

有任何想法吗?

我的输出配置:

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的兔子日志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

  • I've got logstash running, and successfully reading in a file
    • rabbitmq is running, I'm watching the log, and I can see the web interface
    • I've configured logstash to output to a rabbitmq exchange... I think!

Here's the problem: nothing ever gets posted to the exchange, as seen in the web interface.

Any ideas?

My output config:

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

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

UPDATE: I'm watching the rabbit log with tail -F /usr/local/var/log/rabbitmq/rabbit\@localhost.log

As it turns out, the problem was that there was no routing key set for the exchange and queue.

A working config is:

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"
   }
}

Here's a sample receiver code (using 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

原文:https://stackoverflow.com/questions/23207812
更新时间:2022-03-28 21:03

相关问答

更多

相关文章

更多

最新问答

更多
  • 获取MVC 4使用的DisplayMode后缀(Get the DisplayMode Suffix being used by MVC 4)
  • 如何通过引用返回对象?(How is returning an object by reference possible?)
  • 矩阵如何存储在内存中?(How are matrices stored in memory?)
  • 每个请求的Java新会话?(Java New Session For Each Request?)
  • css:浮动div中重叠的标题h1(css: overlapping headlines h1 in floated divs)
  • 无论图像如何,Caffe预测同一类(Caffe predicts same class regardless of image)
  • xcode语法颜色编码解释?(xcode syntax color coding explained?)
  • 在Access 2010 Runtime中使用Office 2000校对工具(Use Office 2000 proofing tools in Access 2010 Runtime)
  • 从单独的Web主机将图像传输到服务器上(Getting images onto server from separate web host)
  • 从旧版本复制文件并保留它们(旧/新版本)(Copy a file from old revision and keep both of them (old / new revision))
  • 西安哪有PLC可控制编程的培训
  • 在Entity Framework中选择基类(Select base class in Entity Framework)
  • 在Android中出现错误“数据集和渲染器应该不为null,并且应该具有相同数量的系列”(Error “Dataset and renderer should be not null and should have the same number of series” in Android)
  • 电脑二级VF有什么用
  • Datamapper Ruby如何添加Hook方法(Datamapper Ruby How to add Hook Method)
  • 金华英语角.
  • 手机软件如何制作
  • 用于Android webview中图像保存的上下文菜单(Context Menu for Image Saving in an Android webview)
  • 注意:未定义的偏移量:PHP(Notice: Undefined offset: PHP)
  • 如何读R中的大数据集[复制](How to read large dataset in R [duplicate])
  • Unity 5 Heighmap与地形宽度/地形长度的分辨率关系?(Unity 5 Heighmap Resolution relationship to terrain width / terrain length?)
  • 如何通知PipedOutputStream线程写入最后一个字节的PipedInputStream线程?(How to notify PipedInputStream thread that PipedOutputStream thread has written last byte?)
  • python的访问器方法有哪些
  • DeviceNetworkInformation:哪个是哪个?(DeviceNetworkInformation: Which is which?)
  • 在Ruby中对组合进行排序(Sorting a combination in Ruby)
  • 网站开发的流程?
  • 使用Zend Framework 2中的JOIN sql检索数据(Retrieve data using JOIN sql in Zend Framework 2)
  • 条带格式类型格式模式编号无法正常工作(Stripes format type format pattern number not working properly)
  • 透明度错误IE11(Transparency bug IE11)
  • linux的基本操作命令。。。