自定义插件
自定义插件
简介
当前Hertzbeat
在使用时,主要依赖alert
模块对用户进行通知,然后用户采取一些措施如发送请求、执行sql
、执行shell
脚本等。
但目前只能通过手动或者webhook
接收告警信息进行自动化处理。基于此,HertzBeat
新增了plugin
模块,该模块有一个通用接口Plugin
,用户可以自己实现这个接口的alert
方法,接收Alert
类作为参数进行自定义操作。
用户添加自定义代码后,只需要对plugin
模块进行打包,拷贝到安装目录下/ext-lib
文件夹中,重启HertzBeat
主程序,即可实现告警后执行自定义功能,无需自己重新打包部署整个程序。
目前,HertzBeat
只在告警后设置了触发alert
方法,如需在采集、启动程序等时机设置触发方法,请在https://github.com/apache/hertzbeat/issues/new/choose
提Task
。
具体使用
- 拉取主分支代码
git clone https://github.com/apache/hertzbeat.git
,定位到plugin
模块的Plugin
接口。 - 在
org.apache.hertzbeat.plugin.impl
目录下, 新建一个接口实现类,如org.apache.hertzbeat.plugin.impl.DemoPluginImpl
,在实现类中接收Alert
类作为参数,实现alert
方法,逻辑由用户自定义,这里我们简单打印一下对象。 - 打包
hertzbeat-plugin
模块。 - 将打包后的
jar
包,拷贝到安装目录下的ext-lib
目录下(若为docker
安装则先将ext-lib
目录挂载出来,再拷贝到该目录下) - 然后重启
HertzBeat
,即可实现自定义告警后处理策略。