本文基于苏宁易购电商平台的访问流量数据,深入挖掘流量变化趋势,并通过机器学习或统计算法建立模型,实现离线分析和实时预测,从而达到智能化的异常流量预警。
流量预测是流量控制的关键环节,也是实现流量控制智能化的重要步骤。对于苏宁易购来说,准确预测业务系统的流量趋势和及时预警异常流量至关重要。这可以帮助及时识别CC攻击、黄牛刷单、爬虫等威胁企业网络安全的行为。
流量预测和异常流量检测面临以下几个主要挑战:
流量系统种类繁多,特征各异:苏宁易购的多个系统每分钟产生的流量大小和趋势各不相同,访问的业务系统数量也在不断变化。
流量受业务活动影响大:促销活动频繁或力度大时,流量会显著增加;而促销活动少或力度小,流量波动也会增大。不同的业务系统对流量的影响也不同。
不同用户关注点不同:运维人员、用户和安全人员对流量异常的关注点各不相同。例如,运维人员关心系统压力,用户关心经济损失,安全人员则关心潜在的安全威胁。
需要实时高效计算:流量预测必须具备高实时性,以便及时发现异常流量并采取措施。苏宁易购的大流量和大促时期的流量暴增需要实时计算框架的支持。
流量受到用户行为的影响,不同时间段的流量阈值和峰值不同。白天(08-18点)流量较大,夜间(00-08点)流量较小。
通过对某一系统每天同一时间点的流量数据进行一周分析,发现一周内的流量波动很大,没有明显的规律,不利于预测未知流量。
同样地,对某一系统每天同一时间点的流量数据进行一个月分析,发现一个月内的流量波动依然很大,没有明显的时间规律,也不利于未知流量的预测。
本文探讨了基于时间序列的流量预测方法,具体包括ARMA(自回归滑动平均模型)、LSTM(长短期记忆网络)和MAD(相对中位差)+Mean(均值)模型。
本文主要介绍了流量预测的横向分析,因为横向数据与当前时间点的流量关联最密切。纵向数据虽然具有一定的规律性,但实时关联性较低。苏宁易购的业务系统流量主要有两大特征:白天流量波动大,夜间流量波动大但数量较少;以天为单位,流量呈现规律性波动。
最终选择统计模型进行流量预测,因为其特征工程简单、时效性强、拟合准确率高。ARMA和LSTM模型虽然复杂,但在多步长预测方面效果较差。此外,本文未使用传统的均方误差等统计指标评价模型,而是采用了自定义的误差计算方法,以更好地适应不同业务系统的流量特性。
未来,针对异常流量的检测可以通过机器学习分类和统计学模型来实现。借助Flink、Spark等大数据分析框架,可以实现快速的异常定位,这是流量预测下一阶段的重要研究方向。