如何使用JRuby从爆炸jar运行logstash

时间:2012-11-13 13:58:29

标签: ruby ubuntu jruby logstash

我对jrubyrvm环境不太满意,因此我无法尝试使用它运行logstash(据说这是最快的方法)。< / p>

我尝试过的事情:

  • 我安装了rvm环境(作为旁注,标准安装脚本会创建一个新的.bash_profile,当你在Ubuntu上时会禁用标准的.bashrc脚本。这可能会让人感到困惑。像我这样的用户......几个小时后我想知道为什么我的别名不会起作用!)
  • 我在新目录中解压缩了logstash(jar xvf /logstash-1.1.4-monolithic.jar
  • 我已按https://rvm.io/rvm/install/rvm install 1.9.2的说明操作了$ ruby logstash.rb /home/orabig/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require': cannot load such file -- logstash/agent (LoadError) from /home/orabig/.rvm/rubies/ruby-1.9.3-p286/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require' from logstash.rb:1:in `<main>' (尽管我还做了一些尝试/错误/重做操作,所以我无法记住确切的命令列表)

然后我尝试了几个命令,但没有一个命令工作:

jruby-1.7.0 logstash.rb agent -f ../etc/inout.config -v

而以下几行在几秒后返回:

java -jar (...)/logstash-1.1.4-monolithic.jar agent -f ../etc/inout.config -v

(当使用java命令行调用inout.config文件时,如下所示:)

  $ rvm install 1.6.8
  (...)
  $ rvm use 1.6.8
  $ export JRUBY_OPTS=--1.9
  $ ruby logstash.rb agent -f ../etc/inout.config -v
  $ jruby-1.6.8 logstash.rb agent -f ../etc/inout.config -v

所以我现在基本上被困住了,因为我会越多地尝试随机的东西,我就越害怕搞乱我的配置...

更新:在logstash页面(https://github.com/logstash/logstash)上,看起来它正在使用1.6.8 ruby​​版本(不过它&#39 ;不清楚,我不确定它是否有任何区别......) 所以我也试过了:

{{1}}

但是当我跑最后两行中的任何一行时都没有发生......

1 个答案:

答案 0 :(得分:1)

由于rvm工具会让你知道:你必须在登录shell中才能使用rvm。

因此,运行bash -login或使用rvm选择并运行您的ruby版本,如下所示:

rvm install 1.7.0 # note that 1.7.0 will also work
export JRUBY_OPTS=--1.9
rvm 1.7.0 do bundle install
rvm 1.7.0 do ruby lib/logstash/runner.rb agent -f ../etc/inout.config -v

这将告诉rvm使用jruby-1.7.0运行您的logstash代理。