如何在logstash管道ruby过滤器中使用gem



我有一个带有依赖模块的ruby文件,该文件在logstash管道中被调用。即。。。

filter{
ruby {
path  => "/path/to/script.rb"
}
}

我得到一个错误,当通过运行脚本的pod中的logstash管道调用脚本时,找不到它们。

如何或在哪里安装这些?我能跑吗"gem安装我的gem";在管道中的某个地方,或者你将如何完成这项工作?

目前还没有安装gem的官方方法(至少(。然而,可能有几个选择:

  1. 您可以向/usr/share/logstash/Gemfile添加一个Gem,然后像往常一样在脚本中使用它们。显然,这可能有点古怪,因为logstash的更新可能需要重新安装gem。

  2. 编写一个自定义插件,但对于你可能想要的东西来说,这可能是一种过度的做法。

  3. 正如下面链接的票证的作者所说,您可以:将Gem添加到位于/usr/share/logstash/Gemfile的logstash的Gemfile中,通过运行/usr/share/logstash/bin/logstash-plugin update logstash-filter-grok强制执行Gem更新,然后在Ruby过滤器中使用它。有关更多详细信息,请参阅下面的票证。

注意:此答案使用此票证中引用的信息:

https://github.com/elastic/logstash/issues/7016

希望能有所帮助。

最新更新