我正在运行Logstash 1.4.1,与最新版本相比,我找不到任何地方在我的安装文件夹中包含宝石信息(与github中的最新代码有那些gembag.rb,Gemfile等..)如何将宝石添加到Logstash中
我目前的问题是我需要使用Logstash没有开箱的几个宝石,只是require 'gemname'
似乎不起作用。任何人都可以引导我阅读解释如何添加这些第三方宝石的读物,或者向我展示一些可以做到这一点的示例代码。
非常感谢!
我正在运行Logstash 1.4.1,与最新版本相比,我找不到任何地方在我的安装文件夹中包含宝石信息(与github中的最新代码有那些gembag.rb,Gemfile等..)如何将宝石添加到Logstash中
我目前的问题是我需要使用Logstash没有开箱的几个宝石,只是require 'gemname'
似乎不起作用。任何人都可以引导我阅读解释如何添加这些第三方宝石的读物,或者向我展示一些可以做到这一点的示例代码。
非常感谢!
cd /opt/logstash
env GEM_HOME=vendor/bundle/jruby/1.9 GEM_PATH="" java -jar vendor/jar/jruby-complete-1.7.11.jar -S gem install gemname
如果您要安装本地gem文件,请将文件的路径放在GEM_PATH中。
这是在logstash 2.0中为我工作的。
env GEM_HOME=/opt/logstash/vendor/bundle/jruby/1.9 /opt/logstash/vendor/jruby/bin/jruby /opt/logstash/vendor/jruby/bin/gem install PACKAGE_NAME -v PACKAGE_VERSION
然后我不得不编辑/opt/logstash/Gemfile
包括行:
gem "PACKAGE_NAME", "PACKAGE_VERSION"
我知道我们同样在沿途的一些问题做了yum install ruby-devel
,但我不记得,如果这是需要这工作。
例如:
env GEM_HOME=vendor/bundle/jruby/1.9 vendor/jruby/bin/jruby vendor/jruby/bin/gem install zookeeper -v 1.4.11 -V
编辑的Gemfile:
gem "zookeeper", "1.4.11"
Logstash可能会改变未来的JRuby版本。例如在logstash 6.0.0中使用JRuby 2.3.0。要安装的宝石无论哪个logstash版本旧的或使用新,运行这个命令:
env GEM_HOME=$$(echo /usr/share/logstash/vendor/bundle/jruby/*/) /opt/logstash/vendor/jruby/bin/jruby /opt/logstash/vendor/jruby/bin/gem install PACKAGE_NAME -v PACKAGE_VERSION
其实,这里是完整的脚本来同时安装宝石和包元数据附加到的Gemfile:
env GEM_HOME=$$(echo /usr/share/logstash/vendor/bundle/jruby/*/) /opt/logstash/vendor/jruby/bin/jruby /opt/logstash/vendor/jruby/bin/gem install PACKAGE_NAME -v PACKAGE_VERSION
echo 'gem \"PACKAGE_NAME\", \"PACKAGE_VERSION\"' >> /usr/share/logstash/Gemfile
这是一个梦幻般的解决方案@Alain。我猜即使是最新的logstash,这仍然是可行的? – 2014-10-24 01:06:22
我刚刚在1.4.0 logstash安装上做了这个。最新版本是1.4.2,不应该有太大变化... – 2014-10-24 01:08:39
刚刚证实它也在1.4.2上运行 – schadr 2015-01-06 17:56:11