0
点赞
收藏
分享

微信扫一扫

Logstash系列之--JAVA自定义插件

爪哇驿站 2022-05-23 阅读 46


Logstash系列之--自定义插件(JAVA)

说明

官方文档:​​How to write a Java filter plugin | Logstash Reference [7.2] | Elastic​​

安装版本:7.2.0

1、拉取logstash对应版本代码

git clone --branch v7.2.0 --single-branch https://github.com/elastic/logstash.git

2、gradlew.bat assemble ,这一步卡了整整一天,因为不熟悉gradle,要么build失败,要么下载jar失败,下载插件失败,不行试下reimport gradle

Logstash系列之--JAVA自定义插件_git

Logstash系列之--JAVA自定义插件_git_02

3、拉取java filter example例子

git clone https://github.com/logstash-plugins/logstash-filter-java_filter_example.git

4、修改改项目的build.gradle文件,这里我是修改成第一个logstash项目rubbyUtils的绝对路径

Logstash系列之--JAVA自定义插件_git_03

引用第一个项目编译出来的jar包 

compile fileTree(dir: "D:\\test\\logstash\\logstash-core", include: "build/libs/logstash-core-7.2.0.jar")

Logstash系列之--JAVA自定义插件_elk_04

5、这个时候执行gradlew.bat assemble,报错找不到logstash-filter-java_filter_example/目录下的version.xml,因此我直接复制第一个项目的version.xml到example项目的目录下

Logstash系列之--JAVA自定义插件_elk_05

6、执行gradlew.bat assemble,如果没有报错,则可以进行打包

Logstash系列之--JAVA自定义插件_git_06

7、打包命令:gradlew gem,出现BUILD SUCCESSFUL 则成功打包

Logstash系列之--JAVA自定义插件_git_07

8、如图所示,就是我们安装插件用的gem文件

Logstash系列之--JAVA自定义插件_jar_08

9、安装自定义插件前,我们先修改服务器logstash的Gemfile文件,不然安装速度很慢,甚至被killed

vim /home/hadoop/logstash/logstash-7.2.0/Gemfile

修改source链接

Logstash系列之--JAVA自定义插件_git_09

10,然后可以上传gem文件到logstash服务器进行安装

bin/logstash-plugin install --no-verify --local logstash-filter-java_filter_example-1.0.0.gem

Logstash系列之--JAVA自定义插件_java_10

检查插件有没有安装命令:

bin/logstash-plugin  list  | grep  example

11、测试,编写logstash配置文件

input {
stdin { }
}
filter {
java_filter_example {}
}
output {
stdout { codec => rubydebug }
}

启动logstash:

bin/logstash -f agent.conf

输入hello,可看到相应输出olleh的信息倒序,则证明自定义插件测试安装成功,下面我们就可以修改example项目编写我们需要的自定义插件。

问题记录:

1、jre/lib目录缺少tool.jar

Logstash系列之--JAVA自定义插件_elk_11

2、没有使用官网提供的命令gradlew.bat assemble进行build,使用了自己本地的gradle assemble,导致插件找不到

Logstash系列之--JAVA自定义插件_java_12

3、超时问题,修改项目中Gemfile文件的gem源,同样,在服务器安装插件的时候慢,可以修改服务器logstash中Gemfile的gem源

常用gem源地址

  http://rubygems.org/

  http://gems.github.com

  http://gems.rubyforge.org

  http://ruby.taobao.org

4、打包不同插件时候,需要删除根目录下vender/jar-dependencies/org/logstashplugins下的其他插件目录,否则使用插件时候会报错。


举报

相关推荐

0 条评论