gpt4 book ai didi

gem - 无法安装 gems 以在自制过滤器 logstash 1.5.2 中使用

转载 作者:行者123 更新时间:2023-12-05 05:25:12 25 4
gpt4 key购买 nike

我需要在 logstash 1.5.2 中安装 gems

我制作了一个需要 typhoeus ruby​​ gem 的过滤器。我尝试使用 gem install typhoeus 并将环境变量 GEM_HOME 设置为 pathToLogstash-1.5.2/vendor/bundle/jruby/1.9(解释为 here )。现在可以在 pathToLogstash-1.5.2/vendor/bundle/jruby/1.9/gems 中找到文件夹 typhoeus

然而,当我使用名为“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 (<=1.4) 安装 gems 的方法 here

谁能告诉我在 logstash 1.5 中做同样事情的方法?

谢谢

最佳答案

您不需要手动安装 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指导。我已经做过几次了,我认为这是最好的方法。我遇到过 bundle 和 jruby 版本的一些问题,所以我建议你使用 RVM完成任务。

关于gem - 无法安装 gems 以在自制过滤器 logstash 1.5.2 中使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31877701/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com