Logstash crash for "LoadError: no such file to load -- restclient"

(Silvana Vezzoli) #1

I installed logstash 1.5.2 on Centos 6.5 VM (test environment).
My previous used version was Logstash 1.4.2 and I kept the same configuration files used with previous version.
When I launch logstash I get the following error:
LoadError: no such file to load -- restclient
require at org/jruby/RubyKernel.java:1072
require at /application/nfmoss/vendors/logstash/vendor/bundle/jruby/1.9/gems/polyglot-0.3.5/lib/polyglot.rb:65
register at (ruby filter init):5
eval at org/jruby/RubyKernel.java:1111
register at /application/nfmoss/vendors/logstash/vendor/bundle/jruby/1.9/gems/logstash-filter-ruby-1.0.0/lib/logstash/filters/ruby.rb:29
each at org/jruby/RubyArray.java:1613
start_filters at /application/nfmoss/vendors/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-
run at /application/nfmoss/vendors/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-
execute at /application/nfmoss/vendors/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-
run at /application/nfmoss/vendors/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-
call at org/jruby/RubyProc.java:271
run at /application/nfmoss/vendors/logstash/vendor/bundle/jruby/1.9/gems/logstash-core-
call at org/jruby/RubyProc.java:271
initialize at /application/nfmoss/vendors/logstash/vendor/bundle/jruby/1.9/gems/stud-0.0.20/lib/stud/task.rb:12

I use a ruby logstash filter for my use case and I need the rest-client gem, but this gem isn't present under my installation path

So I tried to install the rest-client gem with the command "sudo gem install rest-client" (after execution of command "sudo yum install rubygems"), but I get another error:
Building native extensions. This could take a while...
ERROR: Error installing rest-client:
ERROR: Failed to build gem native extension.
/usr/bin/ruby extconf.rb
mkmf.rb can't find header files for ruby at /usr/lib/ruby/ruby.h
Gem files will remain installed in /usr/lib/ruby/gems/1.8/gems/unf_ext- for inspection.
Results logged to /usr/lib/ruby/gems/1.8/gems/unf_ext-

Now, I don't know what I have to do.
I work in a test environment not in a developing environment.
Some suggestion?


(Silvana Vezzoli) #2

My question is: is there a command to install the rest-client gem on top of the Logstash core pipeline?

If I try this installation using the command $LS_HOME/bin/plugin install rest-client, rightly, I have the following response:
Validating rest-client
Found rest-client (1.8.0), but was for platforms x86-mingw32 ,x64-mingw32 ,x86-mswin32
rest-client is not a Logstash plugin
ERROR: Installation aborted, verification failed for rest-client

(Mark Walkom) #3

How did you install LS?

(Silvana Vezzoli) #4

tar -zxvf logstash-1.5.2.tar.gz under my installation path

(Mark Walkom) #5

I don't believe there is a rest-client plugin for LS.

(Silvana Vezzoli) #6

No, indeed, I talk about the rest-client gem not the rest-client plugin.

The LS_HOME/logstash-1.5.2/vendor/bundle/jruby/1.9/gems folder is created when I unzip the logstash package on my installation path.

Under this folder I can see a list of ruby gems used by logstash with a list of logstash plugins.

Now, the folder LS_HOME/logstash-1.4.2/vendor/bundle/jruby/1.9/gems, related to 1.4.2 version, includes
the rest-client-1.6.7 ruby gem whereas the folder LS_HOME/logstash-1.5.2/vendor/bundle/jruby/1.9/gems doesn't include any ruby rest-client gem.

My ruby filter requires the rest-client gem but logstash crashes at starting for the error
LoadError: no such file to load -- rest-client.

On logstash github page https://github.com/elastic/logstash I can see the Gemfile.jruby-1.9.lock file where there is a ruby gems list including the rest-client (1.8.0) gem with his dependencies,
but after package installation this ruby gem isn't present under LS_HOME/logstash-1.5.2/vendor/bundle/jruby/1.9/gems folder.
Maybe, something in package building is wrong.

I'd like to know if there is some work around to solve this problem.

(system) #7