Kafka+Flink构建秒级异常检测系统

“基于行动者(人或机器)的行为是否正常作出决策”的异常检测技术,已广泛应用于各大领域,如金融场景中的交易检测、贷款检测;工业场景中的生产线预警;安防场景中的入侵检测等。消息队列Kafka+流计算Flink,就是这项技术的关键。

Kafka+Flink构建秒级异常检测系统

阿里云1888元代金券大礼包免费领取

技术实现

在线系统,常见检测功能:

1)针对单条事件进行检测 ;
2)根据全局上下文进行检测,比如全局黑名单;
3)根据用户画像或近期一段时间的信息进行检测,比如最近20次交易时间与地点 。

消息队列kafka

1)将检测的事件、检测的结果、拒绝或通过的原因等数据发送到下游,供流计算和离线计算进行处理。

Flink近实时处理

1)汇总统计全局的检测状态,并做同期对比,比如规则拦截率变化、全局通过率波动;
2)近实时的更新用户的属性,如最近的交易时间&地点。

Kafka+Flink构建秒级异常检测系统

Kafka+Flink构建秒级异常检测系统

实现方法

在线检测系统

交易的异常检测的实现,可以是一个web服务器,或者是嵌入到客户端的系统。其主要任务就是检阅到来的事件并反馈同意或拒绝。

针对每一个进入的事件,可以进行三个层次的检测:

  • 事件级检测:只用该事件本身就能完成检测,比如格式判断或基本规则验证(例如:10<A<30,B不为空等等)
  • 全局上下文检测:在全局信息中的上下文中,比如存在一个全局的黑名单,判断该用户是否在黑名单中。
  • 画像内容检测:针对该行动者本身的跨多条记录分析,比如该用户前100次交易都发生在杭州,而本次交易发生在北京且距上次交易只有10分钟,那就有理由发出异常信号。系统至少要保存三方面的内容,一是整个检测的过程,一是进行判断的规则,一是所需的全局数据,除此之外,根据需要决定是否把用户画像在本地做缓存。
  • Kafka大数据通讯

    kafka主要用来把检测的事件、检测的结果、拒绝或通过的原因等数据发送到下游,供流计算和离线计算进行处理。

    Flink近实时处理

    系统完成了异常检测,并把决策发送到了kafka,接下来需要使用这些数据针对当前的策略进行新一轮的防御性检测。系统常见异常:

  • 某条规则之前的拦截率是20%,突然降低到了5%;
  • 某天规则上线后,大量的正常用户均被拦截掉了;
  • 某个人在电子产品上的花费突然增长了100倍,但同时其他人也有很多类似的行为,这可能具有某种说得通的解释(比如Iphone上市);
  • 某人连续几次行为,单次都正常,但不应该有这么多次,比如一天内连续买了100次同一产品(开窗分析);
  • 业务方根据流计算产生的近实时结果能够及时发现规则有没有问题,进而对规则作出调整。 除此之外,流计算还能进行用户画像的实时更新,比如统计用户过去10分钟的几次行为,最近10次的登陆地点等等。
  • Maxcompute/hadoop离线存储于探索性分析

    通过脚本、sql、或机器学习算法来进行探索性分析,发现新的模型,比如通过聚类算法把用户进行聚类、对行为打标后进行模型的训练等等,或者周期性的重新计算用户画像。

    Hbase用户画像

    Hbase保存着流计算&离线计算产生的用户画像,供检测系统使用且能满足实时查询的需求。

    2024阿里云服务器租用价格
    ①阿里云官方活动:https://t.aliyun.com/U/bLynLC 云服务器99元1年,新老同享,多配置特价
    ②代金券:领券入口 aliyun.club 免费领取12张代金券,总面值2088元优惠券。