graylog 的报警编码上并不是很难,核心就是一个job,然后对于event 进行关联聚合查询,之后对于符合规则的event 触发
不同的报警规则(邮件,http,遗留模式)
几个核心参考类功能
- job 定义
事件通知job
- 通知实现
- 聚合消息处理
一个问题
因为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