James Jiang
James Jiang

Reputation: 2163

How to add gems into Logstash

I am running Logstash 1.4.1, comparing to the latest, I can't find anywhere in my installation folders contains gem information (versus the latest code in github has those gembag.rb, Gemfile etc..)

My current issue is I need to use several gems that Logstash doesn't have out of box, simply require 'gemname' seems doesn't work. Could anyone direct me to the readings that explains how to add these 3rd party gems or show me some sample codes which can do this.

Thanks very much!

Upvotes: 4

Views: 12252

Answers (4)

Alex Simenduev
Alex Simenduev

Reputation: 846

I think the simplest way is:

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

or

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

Work for me on recent version of logstash...

Upvotes: 8

Nestle
Nestle

Reputation: 41

For example:

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

edit Gemfile:

gem "zookeeper", "1.4.11"

Upvotes: 1

turtlemonvh
turtlemonvh

Reputation: 9769

This is what worked for me in 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

Then I had to edit /opt/logstash/Gemfile to include the line:

gem "PACKAGE_NAME", "PACKAGE_VERSION"

I know we also did a yum install ruby-devel at some point along the way, but I don't remember if that was needed for this to work.

Upvotes: 5

Alain Collins
Alain Collins

Reputation: 16362

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

If you're installing a local gem file, put the path to the file in GEM_PATH.

Upvotes: 9

Related Questions