你知道如何使用Logstash的Ruby过滤器,这使我能够在Ruby中编写代码,它通常包含在配置文件中,如下所示
filter {
ruby {
code => "...."
}
}
现在我有两个Jar文件,我想包含在我的过滤器中,以便我可以根据我在这些Jar文件中的操作处理我的输入。但是,我不能(显然)在ruby代码中包含Jar文件。我一直在寻找解决方案。
答案 0 :(得分:0)
为了回答这个问题,我从Elastc.co找到了这个精彩的教程:
显示创建新gem的步骤,并稍后将其用作Logstash的过滤器。
https://www.elastic.co/guide/en/logstash/current/_how_to_write_a_logstash_filter_plugin.html
答案 1 :(得分:0)
Orrr回答你原来的问题,
你可以在你的ruby代码中包含一个JAR,但是你需要使用jruby,
请参阅此处有关如何从JRuby中的JAR访问Java代码的说明:
https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby#from-jar-files
要在JRuby的jar文件中使用资源,jar文件必须 要么在类路径上,要么在需要时可用 方法:
require 'path/to/mycode.jar'
这需要使资源进入 mycode.jar可以被后来的命令import
和}发现include_package
。请注意,通过
$LOAD_PATH
上的搜索来加载jar文件 对于他们来说,就像普通的红宝石文件一样。