10

你知道 Logstash 有一个 Ruby 过滤器,它使我能够用 Ruby 编写代码,它通常包含在配置文件中,如下所示

filter {
      ruby {
           code => "...."
      }
}

现在我有两个 Jar 文件,我想将它们包含在我的过滤器中,以便可以根据我在这些 Jar 文件中的操作来处理我的输入。但是,我不能(显然)在 ruby​​ 代码中包含 Jar 文件。我一直在寻找解决方案。

4

2 回答 2

0

所以为了回答这个问题,我从 Elastc.co 找到了这个精彩的教程:

展示了创建新 gem 并将其用作 Logstash 的过滤器的步骤。

https://www.elastic.co/guide/en/logstash/current/_how_to_write_a_logstash_filter_plugin.html

于 2015-09-08T06:51:38.710 回答
0

Orrr回答你原来的问题,

可以在你的 ruby​​ 代码中包含一个 JAR,但你需要使用 jruby,

请参阅此处有关如何从 JRuby 中的 JAR 访问 java 代码的说明:

https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby#from-jar-files

要使用来自 JRuby 的 jar 文件中的资源,该 jar 文件必须位于类路径中或通过 require 方法可用:

require 'path/to/mycode.jar'这需要使 mycode.jar 中的资源可以被以后的命令(如import和 )发现include_package

请注意,通过 require 搜索加载 jar 文件$LOAD_PATH ,就像搜索普通的 ruby​​ 文件一样。

于 2015-09-08T18:32:03.727 回答