杨毅
摘 要:针对传统网络负载异常监测方法中精准度较差、有效性较低等问题,本文提出一种基于爬虫大数据的网络负载异常监测方法。为了验证该方法的有效性,将其与传统监测方法进行对比实验。实验结果表明,该方法实用性和精准度更高,更适用于对网络负载异常的监测。
关键词:爬虫大数据;网络负载;异常监测
中图分类号:TP393.08;TN915.02 文献标识码:A 文章编号:1003-5168(2019)34-0033-03
Network Load Anomaly Monitoring Method Based on Crawler Big Data
YANG Yi
(School of Information Engineering, Henan University of Animal Husbandry and Economy,Zhengzhou Henan 450018)
Abstract: Aiming at the problems of poor accuracy and low effectiveness in traditional network load anomaly monitoring methods, this paper proposed a network load anomaly monitoring method based on crawler big data. In order to verify the effectiveness of this method, it was compared with the traditional monitoring method. Experimental results show that this method is more practical and accurate, and more suitable for monitoring network load anomalies.
Keywords: crawler big data;network load;abnormal monitoring
随着网络信息技术的快速发展,网络中接入的负载量成倍增长,而这些网络负载产生的数据信息成为目前网络环境中数据分析的来源[1]。因此,负载数据成为网络信息中最重要的、最具价值的数据源。理论上,网络负载越多,对采集到的数据样本分析越有价值,但实际上,大量的负载连接到网络中,会严重影响整个网络环境的稳定性和功能性。在实际网络环境中,在线负载量会受大数据平台中接入网络的负载总量、计算能力、相应时间及数据所能承载的上限限制,因此网络负载与大数据平台进行数据交换时必须与其建立起相应的有效连接[2]。为了避免因未进行有效通信的负载而占用通道的问题产生,提出一种网络负载异常监测方法,提高网络资源的利用效率。传统监测方法是以服务器与负载是否产生通信为判定标准,但这种方法存在一定的局限性,需要占用较多的资源。本文提出一种基于爬虫大数据的网络负载异常监测方法,以判断网络负载的连接情况。
1 基于爬虫大数据的网络负载异常监测方法
1.1 网络负载异常监测流程设计
网络爬虫,又被称为网页蜘蛛、网络机器人,是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本[3]。对网络负载异常进行监测需要各类相关数据,而爬虫大数据对获取负载异常监测的相关数据具有一定程度的帮助。图1为基于爬虫大数据的网络负载异常监测方法的监测流程设计。
基于爬虫大数据的网络负载异常监测方法是利用被监测的网络负载数据,将采集到的数据信息与未出现异常的数据信息进行比较分析,找出负载异常情况。与传统监测方法相比,该监测方法更能有效找出网络负载异常的线索[4]。该方法的具体流程如下。
第一步:确定网络负载异常目标。在对数据进行监测前,要确定需要被监测的具体网络环境及其中的相关数据。
第二步:分析负载异常整体结构。为了获取上述数据信息,需要对相应的网络负载进行分析。
第三步:实现爬虫大数据,采集所需异常数据。利用爬虫大数据实现对上述数据信息的获取。
第四步:对采集到的负载异常数据进行计算和分析。针对上述采集到的数据信息,在对大数据集成及预处理的基础上,根据集中分析和分散核查的监测思路,利用大数据可视化的相应工具对数据进行分析,通过可视化的分析结果进行观测,并快速从大数据信息中找出异常数据,获取负载异常线索[5]。监测人员对负载异常进行监测的过程中,需要对异常数据进行细化处理,并全面分析被监测数据。在可视化分析结果的基础上,监测人员可借助相应的查询方法或监测软件对被监测的数据信息进行建模或分析,从而进一步获取相关异常证据。在此基础上,通过对数据信息进行异常确定,获取到最终的网络负载异常结果。
1.2 基于爬虫大数据的异常数据采集
网络负载异常数据的采集是获取相应网络负载数据的重要环节。网络负载异常数据采集主要分为四部分:Web爬虫、数据处理、爬取队列及数据库。四个部分的主要功能分别为:从网络中获取相应的负载数据信息,并从中抽取需要的属性数据信息;对爬虫获取的数据信息进行处理;为爬虫提供需要获取异常数据的队列;数据库中主要包括需要获取的异常數据信息、从网络中抽出的数据及经过处理后的数据。
Web爬虫获取数据的过程为:网络→链接获取→异常链接过滤→内容获取→异常内容过滤→爬取队列→异常数据采集。具体过程为:在网络中获取相应的链接;从内容中抽取相应的正文内容和链接;进一步判断链接地址时已经是被获取过的;从中提取所需利用价值的数据;为爬虫提供所需异常数据的队列;最后将所有数据信息存储在数据库当中。
利用爬虫抓取网络中负载数据的方法可分为三种。第一种方法是以广度优先,由根节点开始,对当前被监测的负载进行搜索,再对下一层进行搜索,以此类推,逐层搜索,从而完成对负载数据的获取[6]。第二种方法是以深度优先,从根节点出发,找出其叶子节点,以此类推。在一个网络环境当中,选择一个链接,被链接的网页将指向深度优先的搜索策略,以此形成单独存在的一条搜索链,当搜索到没有其他链接存在时,完成对网络负载数据的获取。第三种方法是最佳优先,通过计算得出预测模型与实际网络的相似程度或相关性,根据事先设定的阈值进行选择,从而完成对网络负载数据的获取。可根据实际要求,选择不同的爬虫大数据获取方法。
在进行爬虫大数据采集过程中,需要增加过滤设备,用于判断获取到的数据信息是否存在于未出现异常的数据集合中。过滤设备的基本思路为:当由爬虫大数据获取到的数据信息进入集合中,利用散列函数对每个数据元素映射成为一个位数组中的某一个点,并将其设置为0。在检索过程中,只需要判断该点是否为0即可得知该数据是否在未出现异常的数据集合中。若集合中出现任何不为0的子集,则表示集合中存在负载异常数据,将这一部分集合过滤出来;若集合中的数据均为0,则表示该集合中所有的数据均为未出现异常的负载数据[7]。由于过滤设备中的存储空间及插入、查询的时间均为常数,因此,对监测人员来说,监测复杂程度更低。加之散列函数相互之间不具有一定的关联关系,因此更有利于硬件设施方面的并行实现。由于过滤设备不具有存储数据信息的功能,因此,对某些保密性要求更高的数据信息而言,安全性更高。
1.3 网络负载异常数据计算
假设网络负载的数量为[m]个,在某一时间段[s]中,构建相应的负载监测模型,网络负载的变化从时间轴上看是没有规律可言的,因此分析接入大数据平台的负载可以用时间序列对负载数量进行预判[8]。结合爬虫大数据的采集,根据上一时间段中的负载实际数量和预测的负载数量建立当前时间段内的网络负载异常预测模型,通过对数据进行不断修正,使其无限逼近于真实的负载数量。
假设在某一时间段[s]中的负载数量的预测数值为[Fs],则[fs]表示在时间段[s]内的实际负载数量,则可得出相应的计算网络负载数量预测值公式为:
[Fs+1=Fs+λ(fs-Fs)] (1)
公式(1)中,[λ]表示为权重因子。
通过公式(1)可得出相邻两次负载数量的预测变化值为:
[ε=Fs-Fs-1] (2)
公式(2)中,[ε]表示变化值。
为了使监测方法的准确性更高,对于每次在计算过程中产生的误差,应采用对多次预测数值求取平均数[F]的方式提升监测方法的精准度。
根据[ε]和[F]相差的数值判断出最终的网络负载数量变化情况。若计算出的结构[ε]≥[F],则表示在当前时间段内,负载数量的变化情况明显,此时可能出现了网络负载异常现象,应采取相应的措施,对当前接入网络中的负载进行重新监测,并判断此时监测情况及负载的类别;[ε]<[F],则表示在当前时间段内,负载数量的变化情况不明显,未出现网络负载异常现象,因此保持原有监测方法和相关参数不变。
通常情况下,网络负载还会出现伪在线负载的现象,造成网络中的资源浪费。针对这一问题,还需要验证负载是否在线。利用爬虫大数据对在线的负载状态进行判别,用于判断在线用户的真实情况。根据上述构建的预测模型计算出负载数量的输入量,而网络负载在当前监测时间段内的通信看作是网络输出。将公式(1)中获取到的负载预测值作为研究对象,以网络负载的实际个数作为输出,假设[m]个负载的通信时间为[ai(i=1,2,…,m)],根据输出量,判断此时负载的连接情况及负载的通信情况。通过正向运算可得出:
[Hj=g(i=1mωa-T),j=1,2,…,l] (3)
公式(3)中,[Hj]為正向运算的结果;[ω]表示为权重;[T]表示为阈值;[l]表示为负载数量;[g]表示为传递关系。通过(3)计算出的结果与实际结果进行比较可得出两者之间存在的误差值,再通过反向运算将权重与阈值更新,以此可以不断减小负载异常监测的结果误差,从而获取实际负载数量的在线情况。若通过本文上述方法利用爬虫大数据获取到的数据信息在设定的数据量阈值范围内,则表示此时网络负载处于正常的连接状态及正常的通信状态;若数据信息不在设定范围内,则表示此时网络负载的连接为无效连接,负载处于异常状态。
2 对比实验
为了验证本文提出的基于爬虫大数据的网络负载异常监测方法的有效性,将该方法与传统监测方法进行对比,实验设计如下。
2.1 实验准备
首先构建实验平台,设置网络负载的数据样本为2 000个。将2 000个样本建立成一个样本集合,并将数据全部接入平台中。设置本文提出的监测方法为实验组,传统监测方法为对照组。将样本分为两组,每组1 000个,对其负载分别进行60min的不间断调整,加入人工手段,让部分负载失去连接,分别利用两组方法对其网络负载异常进行监测,比较对照组和实验组的监测性能。
2.2 实验结果及分析
为了保证实验的客观性,在保证其他外界影响因素均相同的情况下,完成实验。对实验过程中的相关数据进行记录,并通过计算得出两组方法监测结果的精确度,如表1所示。
通过本文构建的实验及表1可以得出,经过60min的监测与实际的负载异常数量相比,实验组的监测精确度明显高于对照组的监测精确度。虽然表1中对照组的监测精度能够达到91%以上,但从整体实验过程来看,监测精度的稳定性不强,精确度在70%~91%波动过大。这主要是因为,传统监测方法是利用服务器定时对每个负载发送信号,再对发送信号的时间及接受反馈的相应参数进行记录,根据时间差判断负载的异常情况,这种方法浪费网络资源,对大数据平台的适用性较差。实验组的监测方法在获取网络负载数据的过程中,避免了传统方法运用过程中出现的问题,因此平均精确度可高达95%以上,且拟合性更高,精确度的误差波动范围较小。可见,本文提出的基于爬虫大数据的网络负载异常监测方法的监测精确度更高、适应性更强,更适用于对网络负载进行异常监测。
3 结语
本文提出一种基于爬虫大数据的网络负载异常监测方法,在提高监测精确度的同时,提高了大数据平台中资源的使用效率。实验证明,本文设计的网络负载异常监测方法具有更强的适用性。在后续的研究中还将针对爬虫大数据采集进行更加深入的研究,找出最适用于网络负载异常监测的网络爬虫类型,方便相关人员的监测,提高监测的运行效率及性能,为日后对结构更加复杂的网络环境的负载异常监测提供理论基础。
参考文献:
[1]李星.基于小波神经网络的大数据在线负载异常监测技术研究[J].现代电子技术,2019(11):95-97.
[2]章昭辉,崔君.大规模网络服务系统行为异常的敏捷感知方法[J].计算机学报,2017(2):505-519.
[3]刘江,刘国玺,张雁,等.基于多线程和翻译的网络爬虫鸟类音频数据采集系统设计与实现[J].现代计算机(专业版),2018(30):85-92.
[4]高峰,刘震,高辉.结合有监督广度优先搜索策略的通用垂直爬虫方法[J].计算机工程,2018(11):289-299.
[5]石恩名,肖晓军,卢宇.基于云平台的分布式高性能网络爬虫的研究與设计[J].电信科学,2017(8):180-186.
[6]刘顺程,岳思颖.大数据时代下基于Python的网络信息爬取技术[J].电子技术与软件工程,2017(21):160-161.
[7]郭二强,李博.大数据环境下基于Python的网络爬虫技术[J].计算机产品与流通,2017(12):82-83.
[8]曾健荣,张仰森,郑佳,等.面向多数据源的网络爬虫实现技术及应用[J].计算机科学,2019(5):304-309.