Java Logstash 过滤器
Java Filter For Logstash
你知道 Logstash 有一个 Ruby 过滤器,它使我能够在 Ruby 中编写代码,它通常包含在配置文件中,如下所示
filter {
ruby {
code => "...."
}
}
现在我有两个 Jar 文件,我想将它们包含在我的过滤器中,以便可以根据我在这些 Jar 文件中的操作来处理我的输入。但是,我不能(显然)在 ruby 代码中包含 Jar 文件。我一直在寻找解决方案。
所以为了回答这个问题,我从 Elastc.co 找到了这个精彩的教程:
显示创建新 gem 并稍后将其用作 Logstash 过滤器的步骤。
https://www.elastic.co/guide/en/logstash/current/_how_to_write_a_logstash_filter_plugin.html
或者回答你原来的问题,
你 可以 在你的 ruby 代码中包含一个 JAR,但你需要使用 jruby,
请参阅此处有关如何从 JRuby 中的 JAR 访问 java 代码的说明:
https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby#from-jar-files
To use resources within a jar file from JRuby, the jar file must
either be on the classpath or be made available with the require
method:
require 'path/to/mycode.jar'
This require makes the resources in
mycode.jar discoverable by later commands like import
and
include_package
.
Note that loading jar-files via require searches along the $LOAD_PATH
for them, like it would for normal ruby files.
你知道 Logstash 有一个 Ruby 过滤器,它使我能够在 Ruby 中编写代码,它通常包含在配置文件中,如下所示
filter {
ruby {
code => "...."
}
}
现在我有两个 Jar 文件,我想将它们包含在我的过滤器中,以便可以根据我在这些 Jar 文件中的操作来处理我的输入。但是,我不能(显然)在 ruby 代码中包含 Jar 文件。我一直在寻找解决方案。
所以为了回答这个问题,我从 Elastc.co 找到了这个精彩的教程:
显示创建新 gem 并稍后将其用作 Logstash 过滤器的步骤。
https://www.elastic.co/guide/en/logstash/current/_how_to_write_a_logstash_filter_plugin.html
或者回答你原来的问题,
你 可以 在你的 ruby 代码中包含一个 JAR,但你需要使用 jruby,
请参阅此处有关如何从 JRuby 中的 JAR 访问 java 代码的说明:
https://github.com/jruby/jruby/wiki/CallingJavaFromJRuby#from-jar-files
To use resources within a jar file from JRuby, the jar file must either be on the classpath or be made available with the require method:
require 'path/to/mycode.jar'
This require makes the resources in mycode.jar discoverable by later commands likeimport
andinclude_package
.Note that loading jar-files via require searches along the
$LOAD_PATH
for them, like it would for normal ruby files.