我需要在logstash 1.5.2中安装gems
我制作了一个需要typhoeus
红宝石宝石的过滤器。
我尝试使用gem install typhoeus
安装它,并将环境变量 GEM_HOME 设置为pathToLogstash-1.5.2/vendor/bundle/jruby/1.9
(如here所述)。
现在可以在typhoeus
。
pathToLogstash-1.5.2/vendor/bundle/jruby/1.9/gems
然而,当我使用名为“indexFilter”的过滤器启动logstash时,例如:
#test.conf
input {file { path => "/tmp/test.log" } }
filter { indexFilter { } }
output {stdout {}}
启动
bin/logstash -f test.conf
将导致
The error reported is:
Couldn't find any filter plugin named 'indexFilter'. Are you sure this is correct? Trying to load the indexFilter filter plugin resulted in this error: no such file to load -- typhoeus
我找到了使用以前版本的logstash安装gem的方法(< = 1.4)here
任何人都可以在logstash 1.5中为我提供相同的方法吗?
谢谢
答案 0 :(得分:1)
您不需要手动安装typhoeus
gem。新的logstash插件环境负责处理您的依赖项。您只需在代码中提及它们(两次)。
对于新的过滤器插件,您应该具有如下目录结构:
├── Gemfile
├── LICENSE
├── README.md
├── Rakefile
├── lib
│ └── logstash
│ └── filters
│ └── mypluginname.rb
├── logstash-filter-mypluginname.gemspec
└── spec
└── filters
└── mypluginname_spec.rb
位于lib/logstash/filters/mypluginname.rb
:
require "typhoeus"
在logstash-filter-mypluginname.gemspec
:
s.add_runtime_dependency "typhoeus", '>= 0.7.3'
当你完成所有这些工作后,你可以自动加载你的依赖项并构建gem(确保你的目录被初始化为git存储库):
bundle install
rake vendor
bundle exec rspec
gem build logstash-filter-mypluginname.gemspec
然后使用logstash的内置插件管理器安装您的插件:
LS_HOME/bin/plugin install logstash-filter-mypluginname-0.0.1.gem
验证安装:
LS_HOME/bin/plugin list
我真的建议你坚持使用logstash的How to write a filter plugin指南。我已经完成了几次,在我看来这是最好的方法。我遇到了捆绑和jruby版本的一些问题,因此我建议您使用RVM来完成任务。