簡體   English   中英

如何將 gems 添加到 Logstash

[英]How to add gems into Logstash

我正在運行 Logstash 1.4.1,與最新版本相比,我在我的安裝文件夾中找不到任何包含 gem 信息的地方(而 github 中的最新代碼有那些 gembag.rb、Gemfile 等。)

我當前的問題是我需要使用 Logstash 沒有開箱即用的幾個 gem,只require 'gemname'似乎不起作用。 任何人都可以指導我閱讀解釋如何添加這些 3rd 方 gem 的閱讀材料,或者向我展示一些可以做到這一點的示例代碼。

非常感謝!

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 ,但我不記得是否需要這樣做才能正常工作。

我認為最簡單的方法是:

/usr/share/logstash/bin/ruby -S gem install <gem-name>

或者

/opt/logstash/bin/ruby -S gem install <gem-name>

在最新版本的logstash上為我工作...

例如:

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版本不可知腳本(也可用於logstash 6.0.0):

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

實際上,這里是安裝gem並將包元數據附加到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

Logstash將來可能會更改JRuby版本。 例如,JRuby 2.3.0用於logstash 6.0.0。 升級logstash時,上面的腳本不要求您在路徑中更改JRuby版本。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM