[英]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.