自制 Graylog-Notification 插件

背景

当前接到了一个需求,经过简化后如下:

  • 当客户端上传日志到 Graylog 后,判定项目名称和错误级别,符合规则的生产一条 Kafka 消息。

实现

参考 github/Graylog2/graylog-project-cli 安装 graylog-project-cli

生成项目

1
2
graylog-project bootstrap github://Graylog2/graylog-project.git
mvn archetype:generate -DarchetypeGroupId=org.graylog -DarchetypeArtifactId=graylog-plugin-archetype

静等片刻会出现以下的交互,根据需要填写即可。

1
2
3
4
5
6
groupId: cn.qingmg
artifactId: graylog-plugin-kafka-notification
version: 1.0.0
package: cn.qingmg.graylog.plugin.kafka.notification
githubRepo: https://github.com/qingmg/graylog-plugin-kafka-notification.git
pluginClassName: KafkaNotification

也可以直接使用 graylog-plugin-demo 进行改动。( 本文使用这种方式 )

1
2
git clone https://github.com/qingmg/graylog-plugin-demo.git
git clone https://github.com/Graylog2/graylog2-server.git

前置操作

因为我用的 graylog:4.0.1,所以需要先把环境都切到 4.0.1

1
2
cd graylog2-server
git checkout 4.0.1

然后需要把 graylog2-web-interface 用 yarn 编译一下,方便后面项目调用

1
2
yarn install
yarn run build

开发

参考 graylog-plugin-kafka-notification

相关说明

  • src/main: 后端代码
    • xxx/entity: 接收前端传入的参数
    • xxx/KafkaNotification.java: 实现业务逻辑代码
  • src/web : 前端代码