Logstash的Javafilter

你知道如何使用Logstash的rubyfilter,这使我能够在Ruby中编写代码,它通常包含在配置文件中,如下所示

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

现在我有两个Jar文件,我想包含在我的filter中,以便我可以根据我在这些Jar文件中的操作处理我的输入。 但是,我不能(显然)在ruby代码中包含Jar文件。 我一直在寻找解决方案。 有帮助吗?

谢谢。

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

显示创建新gem的步骤,并在以后将其用作Logstash的filter。

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

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中的资源可被后来的命令(如importinclude_package

请注意,通过需要在$LOAD_PATH搜索jar文件,就像正常的ruby文件一样。