我对jruby
和rvm
环境不太满意,因此在尝试使用logstash时遇到麻烦(据说这是最快的方法)。
我尝试过的
我安装了rvm
环境(作为旁注,标准安装脚本会创建一个新的.bash_profile
,当您在Ubuntu上时,它将禁用标准.bashrc脚本。这会使像我这样的新用户感到困惑...我想知道几个小时后,为什么我的“ ll”别名不起作用!)
我在新目录中解压了logstash(jar xvf /logstash-1.1.4-monolithic.jar
)
我已按照https://rvm.io/rvm/install/中的说明将其作为rvm install 1.9.2
(尽管我也进行了一些try / error / redo操作,所以我不记得确切的命令列表了)
然后我尝试了几个命令,但是没有一个起作用:
$ 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
(inout.config文件在通过java命令行调用时有效:)
java -jar (...)/logstash-1.1.4-monolithic.jar agent -f ../etc/inout.config -v
所以现在我基本上陷入了困境,因为我尝试随机事物的次数越多,恐怕就越会搞乱我的配置...
更新:在logstash页面(https://github.com/logstash/logstash)上,它似乎正在与1.6.8 ruby版本一起使用(但是尚不清楚,我不确定是否会有所不同。) )
所以我也尝试了:
$ 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
但是当我运行最后两行之一时什么也没发生...
最佳答案
正如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代理。