基于 Spark 的实时攻击检测系统,最大的亮点就是数据又快又稳。Spark Streaming搭配Kafka或者Flume,实时数据流一点不吃力,响应也快,适合安全系统这种对延迟要求高的场景。嗯,还有一点,Spark 的内存计算机制也香,省去了频繁读写 HDFS 的麻烦。
HDFS 的分布式存储用起来也比较安心,哪怕节点挂了也不怕,数据不会丢。是日志这种大批量堆积的玩意儿,扔进 HDFS 就对了。再加上MLlib,你还能搞些攻击行为的模式识别,比如识别 SQL 注入或异常登录行为。
缓存的话我一般用Redis,存点会话信息、黑名单啥的,查得快,而且支持的数据结构也多,比如hash、zset都挺好用。后台数据落地用MySQL也挺稳,查询方便,写报警日志、用户操作记录都蛮合适。
如果你想深入折腾,可以去看看这几个资料:
- Spark & Spark Streaming 实战学习 —— 学会流的第一步
- Apache Spark 机器学习 PDF —— MLlib 入门不错的参考
- Pro Spark Streaming 实时指南 —— 配置、调优都讲得比较细
- Flume 助力 Spark Streaming 实时数据 —— 配合用效果更佳
如果你正在做安全相关的项目,或者正愁着怎么实时检测异常数据,这套方案可以考虑试试。