【发布时间】:2016-01-06 05:50:21
【问题描述】:
我正在使用logstash来消费activeMQ中的消息,我需要使用“stomp”来让logstash支持activeMQ。在我的activeMQ配置文件“activeMQ.xml”中,我已经在“”部分有以下行
<transportConnector name="stomp" uri="stomp://0.0.0.0:61613?maximumConnections=1000&wireFormat.maxFrameSize=104857600"/>
在 logstash 方面,在我的 logstash 配置文件中,我有这个:
input {
stomp {
password => "admin"
user => "admin"
}
}
output {
file {
path => "C:\logstash\cosumedfromstomp.txt"
}
}
给出错误:
C:\logstash>rem java -jar logstash-1.1.13-flatjar.jar agent -f logstash-indexer.conf -- web --backend elasticsearch://127.0.0.1/volarb
C:\logstash>java -cp c:/logstash/logstash-1.1.13-monolithic logstash.runner agent -f logstash-indexer.conf
Exception in thread "LogStash::Runner" org.jruby.exceptions.RaiseException: (InvalidLocaleData) can not load translations from file:C:/logstash/locales/en.yml: #<Errno::ENOENT: No such file or directory - file:C:/logstash/locales/en.yml>
at RUBY.load_yml(C:/logstash/logstash-1.1.13-monolithic/gems/i18n-0.6.4/lib/i18n/backend/base.rb:180)
at org.jruby.RubyBasicObject.__send__(org/jruby/RubyBasicObject.java:1683)
at org.jruby.RubyKernel.send(org/jruby/RubyKernel.java:2107)
at RUBY.load_file(C:/logstash/logstash-1.1.13-monolithic/gems/i18n-0.6.4/lib/i18n/backend/base.rb:161)
at RUBY.load_translations(C:/logstash/logstash-1.1.13-monolithic/gems/i18n-0.6.4/lib/i18n/backend/base.rb:15)
at org.jruby.RubyArray.each(org/jruby/RubyArray.java:1613)
at RUBY.load_translations(C:/logstash/logstash-1.1.13-monolithic/gems/i18n-0.6.4/lib/i18n/backend/base.rb:15)
at RUBY.init_translations(C:/logstash/logstash-1.1.13-monolithic/gems/i18n-0.6.4/lib/i18n/backend/simple.rb:57)
at RUBY.lookup(C:/logstash/logstash-1.1.13-monolithic/gems/i18n-0.6.4/lib/i18n/backend/simple.rb:71)
at RUBY.translate(C:/logstash/logstash-1.1.13-monolithic/gems/i18n-0.6.4/lib/i18n/backend/base.rb:26)
at RUBY.translate(C:/logstash/logstash-1.1.13-monolithic/gems/i18n-0.6.4/lib/i18n.rb:156)
at org.jruby.RubyKernel.catch(org/jruby/RubyKernel.java:1174)
at RUBY.translate(C:/logstash/logstash-1.1.13-monolithic/gems/i18n-0.6.4/lib/i18n.rb:152)
at RUBY.validate_check_required_parameter_names(C:/logstash/logstash-1.1.13-monolithic/logstash/config/mixin.rb:233)
at org.jruby.RubyHash.each(org/jruby/RubyHash.java:1257)
at RUBY.validate_check_required_parameter_names(C:/logstash/logstash-1.1.13-monolithic/logstash/config/mixin.rb:225)
at RUBY.validate(C:/logstash/logstash-1.1.13-monolithic/logstash/config/mixin.rb:174)
at RUBY.config_init(C:/logstash/logstash-1.1.13-monolithic/logstash/config/mixin.rb:52)
at RUBY.initialize(C:/logstash/logstash-1.1.13-monolithic/logstash/inputs/base.rb:67)
at RUBY.parse_config(C:/logstash/logstash-1.1.13-monolithic/logstash/agent.rb:333)
at RUBY.parse(C:/logstash/logstash-1.1.13-monolithic/logstash/config/file.rb:53)
at RUBY.each(C:/logstash/logstash-1.1.13-monolithic/logstash/config/file.rb:91)
at org.jruby.RubyArray.each(org/jruby/RubyArray.java:1613)
at RUBY.each(C:/logstash/logstash-1.1.13-monolithic/logstash/config/file.rb:90)
at org.jruby.RubyHash.each(org/jruby/RubyHash.java:1257)
at RUBY.each(C:/logstash/logstash-1.1.13-monolithic/logstash/config/file.rb:83)
at RUBY.parse(C:/logstash/logstash-1.1.13-monolithic/logstash/config/file.rb:39)
at RUBY.parse_config(C:/logstash/logstash-1.1.13-monolithic/logstash/agent.rb:323)
at RUBY.run_with_config(C:/logstash/logstash-1.1.13-monolithic/logstash/agent.rb:427)
at org.jruby.ext.thread.Mutex.synchronize(org/jruby/ext/thread/Mutex.java:149)
at RUBY.run_with_config(C:/logstash/logstash-1.1.13-monolithic/logstash/agent.rb:426)
at RUBY.run(C:/logstash/logstash-1.1.13-monolithic/logstash/agent.rb:373)
at org.jruby.RubyProc.call(org/jruby/RubyProc.java:249)
at RUBY.initialize(C:/logstash/logstash-1.1.13-monolithic/gems/stud-0.0.13/lib/stud/task.rb:12)
如果我从我的 rabbitMQ 消费,使用以下 logstash 配置文件,它可以工作:
input {
rabbitmq {
host => "volarb-amqp"
queue => "elasticsearch"
key => "elasticsearch"
exchange => "elasticsearch"
type => "all"
durable => true
auto_delete => false
exclusive => false
format => "json_event"
debug => false
}
}
output {
file {
path => "C:\logstash\cosumedfromstomp.txt"
}
}
我的问题是关于如何使 activeMQ(stomp) 部分工作: 1,我的输入部分是否需要“queue =>”elasticsearch“”; 2、谁有logstash从acitveMQ中的一个队列消费的例子(带有stomp plubin)?
这里是使用 stomp 的链接:
http://logstash.net/docs/1.4.2/inputs/stomp
http://activemq.apache.org/stomp.html
【问题讨论】:
-
我强烈建议您升级到比 1.1.13 版更新的 logstash 版本,特别是关于 stomp,它在该版本中是 beta 版。