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中的资源可被后来的命令(如import
和include_package
。请注意,通过需要在
$LOAD_PATH
搜索jar文件,就像正常的ruby文件一样。