graylog 的报警编码上并不是很难,核心就是一个job,然后对于event 进行关联聚合查询,之后对于符合规则的event 触发
不同的报警规则(邮件,http,遗留模式)

几个核心参考类功能

  • job 定义

事件通知job

graylog  新版本报警处理_日志处理

 

 

  • 通知实现

graylog  新版本报警处理_java_02

 

 

  • 聚合消息处理

graylog  新版本报警处理_日志处理_03

 

 

一个问题

因为graylog 对于日志处理基于了本地日志处理(本地kafka),同时报警是在master (leader )处理的,如果本地日志偏移读取异常了,会造成报警会有问题
可以通过界面看到节点事件处理状态的偏移,如果是正整数就是正常的,否则可能会有报警一直推送不了的问题(实际有碰到过)

参考资料

graylog2-server/src/main/java/org/graylog/events/notifications/EventNotificationExecutionJob.java
graylog2-server/src/main/java/org/graylog/scheduler/JobExecutionEngine.java