2014-09-22 5 views
3

Я запускаю Logstash 1.4.1, по сравнению с последними, я не могу найти нигде в моих установочных папках, содержит информацию о драгоценных камнях (по сравнению с последним кодом в github есть те gembag.rb, Gemfile и т. Д. ..)Как добавить драгоценные камни в Logstash

Моя текущая проблема: мне нужно использовать несколько камней, которые Logstash не имеют из коробки, просто require 'gemname' кажется, не работает. Может ли кто-нибудь привести меня к чтению, в котором объясняется, как добавить эти сторонние драгоценные камни или показать мне некоторые примеры кодов, которые могут это сделать.

Большое спасибо!

ответ

9
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.

+0

Это фантастическое решение @Alain. Я думаю, что даже с последним logstash это все еще выполнимо? –

+0

Я просто сделал это на моем 1.4.0 logstash install. Последний - 1.4.2, который не должен был сильно меняться ... –

+0

только что подтвердил, что он работает на 1.4.2, а также – schadr

5

Это то, что сработало для меня в 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 в некоторой точке вдоль пути, но я не помню, что было необходимо для это работать.

1

Например:

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" 
0

Logstash может изменить JRuby версию в будущем. Например, JRuby 2.3.0 используется в logstash 6.0.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 
Смежные вопросы