I have the following ruby filter in my .conf
ruby {
code => '
require "rubygems";
require "gender_detector";
d = GenderDetector.new(:case_sensitive => false)
first_name = "MARK"
if first_name.to_s.empty?
gender = "U"
else
gender = d.get_gender(first_name, :usa)
end
sex = "U"
if gender == :male
sex = "M"
end
if gender == :female
sex = "F"
end
'
}
But I keep getting the error of
[ERROR] 2019-06-04 00:40:00.178 [[main]>worker5] ruby - Ruby exception occurred: no such file to load -- gender_detector
I have run the gem install using -
sudo /usr/share/logstash/vendor/jruby/bin/jruby -S gem install gender_detector
and it install correctly.
This is my ruby gems environment
RubyGems Environment:
- RUBYGEMS VERSION: 2.7.9
- RUBY VERSION: 2.5.3 (2019-04-09 patchlevel 0) [java]
- INSTALLATION DIRECTORY: /usr/share/logstash/vendor/jruby/lib/ruby/gems/shared
- USER INSTALLATION DIRECTORY: /home/mark/.gem/jruby/2.5.0
- RUBY EXECUTABLE: /usr/share/logstash/vendor/jruby/bin/jruby
- EXECUTABLE DIRECTORY: /usr/share/logstash/vendor/jruby/bin
- SPEC CACHE DIRECTORY: /home/mark/.gem/specs
- SYSTEM CONFIGURATION DIRECTORY: /usr/share/logstash/vendor/jruby/etc
- RUBYGEMS PLATFORMS:
- ruby
- universal-java-1.8
- GEM PATHS:
- /usr/share/logstash/vendor/jruby/lib/ruby/gems/shared
- /home/mark/.gem/jruby/2.5.0
- GEM CONFIGURATION:
- :update_sources => true
- :verbose => true
- :backtrace => false
- :bulk_threshold => 1000
- "install" => "--no-rdoc --no-ri --env-shebang"
- "update" => "--no-rdoc --no-ri --env-shebang"
- REMOTE SOURCES:
- https://rubygems.org/
- SHELL PATH:
- /usr/local/sbin
- /usr/local/bin
- /usr/sbin
- /usr/bin
- /sbin
- /bin
- /usr/games
- /usr/local/games
- /snap/bin
I'm thinking it is a path issue but I can seem to find the right setting for this gem.
Mark