[关闭]
@dume2007 2022-06-02T17:28:28.000000Z 字数 1469 阅读 575

鑫合汇事件规则匹配预警系统

一、项目功能介绍

该系统可通过埋点消息进行事件规则的匹配,实现预警通知性能监控数据统计等功能。

二、系统架构

2.1、技术框架

系统基于Storm分布式实时处理框架,以Kafka作为消息来源,Mongodb作为存储介质。由Rabbitmq广播通知给客户端。SpringBoot作为Web监控展示平台供用户查询监控记录,增删预警事件规则的配置。

监控展示平台测试地址:http://172.19.19.232:8080/ 账号/密码:manage/manage2018

2.2、系统时序图

此处输入图片的描述

2.3、系统类图

此处输入图片的描述

三、如何接入

3.1、消息埋点

3.1.1、日志格式约定

键名 键值 必须 说明
timestamp date True ISO8601标准时间格式。 示例:2018-07-25T00:25:26.000+08:00
channel String True 日志记录类型。埋点固定值:"xhh.point", 用于区分其它业务日志
service String True 业务系统分类。如鑫盾:xd, 鑫资产:xzc, 网贷:yrzif等
unique_id String True 同个行为事件里区分不同项目的唯一标识。如项目编号ID:G20180502004321
action String True 执行的动作。示例:repayment(需提供一系列动作的英文名称表示)
property Map False 额外业务参数

3.1.2、日志记录样例

  1. {"timestamp":"2018-07-25T00:26:15.000000+08:00", "channel":"xhh.point", "service":"xd", "action":"extended", "unique_id":"G20180502004321", "property":{"extended_times":"2", "expire_time":"2018-07-30 00:00:00"}}

3.2、消息推送

在客户端使用Filebeat推送埋点生成的日志到Kafka

3.3、定义事件匹配规则

  1. key : INC-0002
  2. title : 风审通过后,15天内未放款
  3. action :
  4. - through_risk_trial
  5. post_action : loan
  6. trigger :
  7. -
  8. type : datetime
  9. compare : gt # 默认与日志中的timestamp进行比较
  10. target : expire_time # 指定target,则与埋点消息属性property的expire_time键值进行比较
  11. value : 15
  12. unit: day
  1. key : YRZ-001
  2. title : 匹配投资金额大于账户余额
  3. action : finance
  4. trigger :
  5. -
  6. type : compare
  7. compare : gt
  8. from : finance_amout
  9. target : account_amout
  1. key : YRZ-002
  2. title : 财务完成了还款充值,但超过5分钟未调用还款系统
  3. action : repayment_recharge
  4. post_action : call_repayment_action
  5. trigger :
  6. -
  7. type : datetime
  8. compare : gt
  9. value : 5
  10. unit : minute

3.4、客户端监听预警消息并实现通知

预警系统并不包含消息系统,通过什么方式通知当事人(如短信,邮件,站内消息等)需客户端自己完成。预警系统会将匹配到的监控事件广播给Rabbitmq,由客户端自行消费处理。

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注