logstash自定义java插件
logstash自定义java插件
官方文档:https://www.elastic.co/guide/en/logstash/7.3/java-filter-plugin.html
版本:7.3.2(7.0以上都可以)
1、拉取logstash源码
git clone --branch v7.3.2 --single-branch https://github.com/elastic/logstash.git
1、v7.3.2 是对应的版本号,可以根据需要修改,拉取可能会慢,或者不成功,多试几次,一定多试几次
2、拉取成功后在idea里执行
gradlew.bat assemble
可能会很慢,多试几次,看到绿色部分代表成功
3、拉取成功后可以看到rubyUtils.gradle文件,7.0以前是没有这个文件的,很重要
2、拉取logstash示例 -java filter example(主要教你怎么修改官方的例子,以后可以完全自己创建,一定要熟悉Gradle类型的项目,以后教你怎么从0创建插件)
git clone https://github.com/logstash-plugins/logstash-filter-java_filter_example.git
1、拉取可能会慢,或者不成功,多试几次,一定多试几次
源码的代码 包名我修改了
package org.lyra;
import co.elastic.logstash.api.Configuration;
import co.elastic.logstash.api.Context;
import co.elastic.logstash.api.Event;
import co.elastic.logstash.api.Filter;
import co.elastic.logstash.api.FilterMatchListener;
import co.elastic.logstash.api.LogstashPlugin;
import co.elastic.logstash.api.PluginConfigSpec;
import org.apache.commons.lang3.StringUtils;
import java.util.Collection;
import java.util.Collections;
// class name must match plugin name
@LogstashPlugin(name = "java_filter_example")
public class JavaFilterExample implements Filter {
public static final PluginConfigSpec<String> SOURCE_CONFIG =
PluginConfigSpec.stringSetting("source", "message");
private String id