无法安装宝石以在自制过滤器logstash 1.5.2中使用

时间:2015-08-07 12:26:57

标签: gem install logstash

我需要在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中为我提供相同的方法吗?

谢谢

1 个答案:

答案 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'

Build&安装

当你完成所有这些工作后,你可以自动加载你的依赖项并构建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来完成任务。