/ / Comment ajouter des pierres précieuses dans Logstash - elasticsearch, logstash

Comment ajouter des gemmes dans Logstash - elasticsearch, logstash

J'exécute Logstash 1.4.1, en comparant au dernier en date, je ne peux "trouver nulle part dans mes dossiers d'installation des informations sur les gem

Mon problème actuel est que je dois utiliser plusieurs gemmes que Logstash n’a pas hors de la boîte, simplement. require "gemname" semble ne fonctionne pas. Quelqu'un pourrait-il m'indiquer les lectures qui expliquent comment ajouter ces gemmes tierces ou me montrer des exemples de codes qui peuvent le faire?

Merci beaucoup!

Réponses:

9 pour la réponse № 1
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

Si vous installez un fichier GEM local, indiquez le chemin d'accès au fichier dans GEM_PATH.


5 pour la réponse № 2

C'est ce qui a fonctionné pour moi dans 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

Ensuite, j'ai dû éditer /opt/logstash/Gemfile inclure la ligne:

gem "PACKAGE_NAME", "PACKAGE_VERSION"

Je sais que nous avons aussi fait une yum install ruby-devel à un moment donné, mais je ne me souviens pas si cela était nécessaire pour que cela fonctionne.


1 pour la réponse № 3

Par exemple:

env GEM_HOME=vendor/bundle/jruby/1.9 vendor/jruby/bin/jruby vendor/jruby/bin/gem install zookeeper -v 1.4.11 -V

éditer Gemfile:

gem "zookeeper", "1.4.11"

0 pour la réponse № 4

Script agnostique de la version de Logstash (peut également être utilisé pour 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

En fait, voici le script complet pour installer une gemme et ajouter des métadonnées de paquet au 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 peut changer la version de JRuby dans le futur. Par exemple, JRuby 2.3.0 est utilisé dans logstash 6.0.0. Le script ci-dessus ne vous oblige pas à modifier la version de JRuby dans le chemin lors de la mise à niveau de logstash.