楊毅
摘 要:針對傳統(tǒng)網(wǎng)絡負載異常監(jiān)測方法中精準度較差、有效性較低等問題,本文提出一種基于爬蟲大數(shù)據(jù)的網(wǎng)絡負載異常監(jiān)測方法。為了驗證該方法的有效性,將其與傳統(tǒng)監(jiān)測方法進行對比實驗。實驗結果表明,該方法實用性和精準度更高,更適用于對網(wǎng)絡負載異常的監(jiān)測。
關鍵詞:爬蟲大數(shù)據(jù);網(wǎng)絡負載;異常監(jiān)測
中圖分類號: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
隨著網(wǎng)絡信息技術的快速發(fā)展,網(wǎng)絡中接入的負載量成倍增長,而這些網(wǎng)絡負載產(chǎn)生的數(shù)據(jù)信息成為目前網(wǎng)絡環(huán)境中數(shù)據(jù)分析的來源[1]。因此,負載數(shù)據(jù)成為網(wǎng)絡信息中最重要的、最具價值的數(shù)據(jù)源。理論上,網(wǎng)絡負載越多,對采集到的數(shù)據(jù)樣本分析越有價值,但實際上,大量的負載連接到網(wǎng)絡中,會嚴重影響整個網(wǎng)絡環(huán)境的穩(wěn)定性和功能性。在實際網(wǎng)絡環(huán)境中,在線負載量會受大數(shù)據(jù)平臺中接入網(wǎng)絡的負載總量、計算能力、相應時間及數(shù)據(jù)所能承載的上限限制,因此網(wǎng)絡負載與大數(shù)據(jù)平臺進行數(shù)據(jù)交換時必須與其建立起相應的有效連接[2]。為了避免因未進行有效通信的負載而占用通道的問題產(chǎn)生,提出一種網(wǎng)絡負載異常監(jiān)測方法,提高網(wǎng)絡資源的利用效率。傳統(tǒng)監(jiān)測方法是以服務器與負載是否產(chǎn)生通信為判定標準,但這種方法存在一定的局限性,需要占用較多的資源。本文提出一種基于爬蟲大數(shù)據(jù)的網(wǎng)絡負載異常監(jiān)測方法,以判斷網(wǎng)絡負載的連接情況。
1 基于爬蟲大數(shù)據(jù)的網(wǎng)絡負載異常監(jiān)測方法
1.1 網(wǎng)絡負載異常監(jiān)測流程設計
網(wǎng)絡爬蟲,又被稱為網(wǎng)頁蜘蛛、網(wǎng)絡機器人,是一種按照一定的規(guī)則,自動地抓取萬維網(wǎng)信息的程序或者腳本[3]。對網(wǎng)絡負載異常進行監(jiān)測需要各類相關數(shù)據(jù),而爬蟲大數(shù)據(jù)對獲取負載異常監(jiān)測的相關數(shù)據(jù)具有一定程度的幫助。圖1為基于爬蟲大數(shù)據(jù)的網(wǎng)絡負載異常監(jiān)測方法的監(jiān)測流程設計。
基于爬蟲大數(shù)據(jù)的網(wǎng)絡負載異常監(jiān)測方法是利用被監(jiān)測的網(wǎng)絡負載數(shù)據(jù),將采集到的數(shù)據(jù)信息與未出現(xiàn)異常的數(shù)據(jù)信息進行比較分析,找出負載異常情況。與傳統(tǒng)監(jiān)測方法相比,該監(jiān)測方法更能有效找出網(wǎng)絡負載異常的線索[4]。該方法的具體流程如下。
第一步:確定網(wǎng)絡負載異常目標。在對數(shù)據(jù)進行監(jiān)測前,要確定需要被監(jiān)測的具體網(wǎng)絡環(huán)境及其中的相關數(shù)據(jù)。
第二步:分析負載異常整體結構。為了獲取上述數(shù)據(jù)信息,需要對相應的網(wǎng)絡負載進行分析。
第三步:實現(xiàn)爬蟲大數(shù)據(jù),采集所需異常數(shù)據(jù)。利用爬蟲大數(shù)據(jù)實現(xiàn)對上述數(shù)據(jù)信息的獲取。
第四步:對采集到的負載異常數(shù)據(jù)進行計算和分析。針對上述采集到的數(shù)據(jù)信息,在對大數(shù)據(jù)集成及預處理的基礎上,根據(jù)集中分析和分散核查的監(jiān)測思路,利用大數(shù)據(jù)可視化的相應工具對數(shù)據(jù)進行分析,通過可視化的分析結果進行觀測,并快速從大數(shù)據(jù)信息中找出異常數(shù)據(jù),獲取負載異常線索[5]。監(jiān)測人員對負載異常進行監(jiān)測的過程中,需要對異常數(shù)據(jù)進行細化處理,并全面分析被監(jiān)測數(shù)據(jù)。在可視化分析結果的基礎上,監(jiān)測人員可借助相應的查詢方法或監(jiān)測軟件對被監(jiān)測的數(shù)據(jù)信息進行建?;蚍治?,從而進一步獲取相關異常證據(jù)。在此基礎上,通過對數(shù)據(jù)信息進行異常確定,獲取到最終的網(wǎng)絡負載異常結果。
1.2 基于爬蟲大數(shù)據(jù)的異常數(shù)據(jù)采集
網(wǎng)絡負載異常數(shù)據(jù)的采集是獲取相應網(wǎng)絡負載數(shù)據(jù)的重要環(huán)節(jié)。網(wǎng)絡負載異常數(shù)據(jù)采集主要分為四部分:Web爬蟲、數(shù)據(jù)處理、爬取隊列及數(shù)據(jù)庫。四個部分的主要功能分別為:從網(wǎng)絡中獲取相應的負載數(shù)據(jù)信息,并從中抽取需要的屬性數(shù)據(jù)信息;對爬蟲獲取的數(shù)據(jù)信息進行處理;為爬蟲提供需要獲取異常數(shù)據(jù)的隊列;數(shù)據(jù)庫中主要包括需要獲取的異常數(shù)據(jù)信息、從網(wǎng)絡中抽出的數(shù)據(jù)及經(jīng)過處理后的數(shù)據(jù)。
Web爬蟲獲取數(shù)據(jù)的過程為:網(wǎng)絡→鏈接獲取→異常鏈接過濾→內(nèi)容獲取→異常內(nèi)容過濾→爬取隊列→異常數(shù)據(jù)采集。具體過程為:在網(wǎng)絡中獲取相應的鏈接;從內(nèi)容中抽取相應的正文內(nèi)容和鏈接;進一步判斷鏈接地址時已經(jīng)是被獲取過的;從中提取所需利用價值的數(shù)據(jù);為爬蟲提供所需異常數(shù)據(jù)的隊列;最后將所有數(shù)據(jù)信息存儲在數(shù)據(jù)庫當中。
利用爬蟲抓取網(wǎng)絡中負載數(shù)據(jù)的方法可分為三種。第一種方法是以廣度優(yōu)先,由根節(jié)點開始,對當前被監(jiān)測的負載進行搜索,再對下一層進行搜索,以此類推,逐層搜索,從而完成對負載數(shù)據(jù)的獲取[6]。第二種方法是以深度優(yōu)先,從根節(jié)點出發(fā),找出其葉子節(jié)點,以此類推。在一個網(wǎng)絡環(huán)境當中,選擇一個鏈接,被鏈接的網(wǎng)頁將指向深度優(yōu)先的搜索策略,以此形成單獨存在的一條搜索鏈,當搜索到?jīng)]有其他鏈接存在時,完成對網(wǎng)絡負載數(shù)據(jù)的獲取。第三種方法是最佳優(yōu)先,通過計算得出預測模型與實際網(wǎng)絡的相似程度或相關性,根據(jù)事先設定的閾值進行選擇,從而完成對網(wǎng)絡負載數(shù)據(jù)的獲取??筛鶕?jù)實際要求,選擇不同的爬蟲大數(shù)據(jù)獲取方法。
在進行爬蟲大數(shù)據(jù)采集過程中,需要增加過濾設備,用于判斷獲取到的數(shù)據(jù)信息是否存在于未出現(xiàn)異常的數(shù)據(jù)集合中。過濾設備的基本思路為:當由爬蟲大數(shù)據(jù)獲取到的數(shù)據(jù)信息進入集合中,利用散列函數(shù)對每個數(shù)據(jù)元素映射成為一個位數(shù)組中的某一個點,并將其設置為0。在檢索過程中,只需要判斷該點是否為0即可得知該數(shù)據(jù)是否在未出現(xiàn)異常的數(shù)據(jù)集合中。若集合中出現(xiàn)任何不為0的子集,則表示集合中存在負載異常數(shù)據(jù),將這一部分集合過濾出來;若集合中的數(shù)據(jù)均為0,則表示該集合中所有的數(shù)據(jù)均為未出現(xiàn)異常的負載數(shù)據(jù)[7]。由于過濾設備中的存儲空間及插入、查詢的時間均為常數(shù),因此,對監(jiān)測人員來說,監(jiān)測復雜程度更低。加之散列函數(shù)相互之間不具有一定的關聯(lián)關系,因此更有利于硬件設施方面的并行實現(xiàn)。由于過濾設備不具有存儲數(shù)據(jù)信息的功能,因此,對某些保密性要求更高的數(shù)據(jù)信息而言,安全性更高。
1.3 網(wǎng)絡負載異常數(shù)據(jù)計算
假設網(wǎng)絡負載的數(shù)量為[m]個,在某一時間段[s]中,構建相應的負載監(jiān)測模型,網(wǎng)絡負載的變化從時間軸上看是沒有規(guī)律可言的,因此分析接入大數(shù)據(jù)平臺的負載可以用時間序列對負載數(shù)量進行預判[8]。結合爬蟲大數(shù)據(jù)的采集,根據(jù)上一時間段中的負載實際數(shù)量和預測的負載數(shù)量建立當前時間段內(nèi)的網(wǎng)絡負載異常預測模型,通過對數(shù)據(jù)進行不斷修正,使其無限逼近于真實的負載數(shù)量。
假設在某一時間段[s]中的負載數(shù)量的預測數(shù)值為[Fs],則[fs]表示在時間段[s]內(nèi)的實際負載數(shù)量,則可得出相應的計算網(wǎng)絡負載數(shù)量預測值公式為:
[Fs+1=Fs+λ(fs-Fs)]? ? ? ? ? ? ? ? ? ? ?(1)
公式(1)中,[λ]表示為權重因子。
通過公式(1)可得出相鄰兩次負載數(shù)量的預測變化值為:
[ε=Fs-Fs-1]? ? ? ? ? ? ? ? ? ? ? ? ? ?(2)
公式(2)中,[ε]表示變化值。
為了使監(jiān)測方法的準確性更高,對于每次在計算過程中產(chǎn)生的誤差,應采用對多次預測數(shù)值求取平均數(shù)[F]的方式提升監(jiān)測方法的精準度。
根據(jù)[ε]和[F]相差的數(shù)值判斷出最終的網(wǎng)絡負載數(shù)量變化情況。若計算出的結構[ε]≥[F],則表示在當前時間段內(nèi),負載數(shù)量的變化情況明顯,此時可能出現(xiàn)了網(wǎng)絡負載異?,F(xiàn)象,應采取相應的措施,對當前接入網(wǎng)絡中的負載進行重新監(jiān)測,并判斷此時監(jiān)測情況及負載的類別;[ε]<[F],則表示在當前時間段內(nèi),負載數(shù)量的變化情況不明顯,未出現(xiàn)網(wǎng)絡負載異常現(xiàn)象,因此保持原有監(jiān)測方法和相關參數(shù)不變。
通常情況下,網(wǎng)絡負載還會出現(xiàn)偽在線負載的現(xiàn)象,造成網(wǎng)絡中的資源浪費。針對這一問題,還需要驗證負載是否在線。利用爬蟲大數(shù)據(jù)對在線的負載狀態(tài)進行判別,用于判斷在線用戶的真實情況。根據(jù)上述構建的預測模型計算出負載數(shù)量的輸入量,而網(wǎng)絡負載在當前監(jiān)測時間段內(nèi)的通信看作是網(wǎng)絡輸出。將公式(1)中獲取到的負載預測值作為研究對象,以網(wǎng)絡負載的實際個數(shù)作為輸出,假設[m]個負載的通信時間為[ai(i=1,2,…,m)],根據(jù)輸出量,判斷此時負載的連接情況及負載的通信情況。通過正向運算可得出:
[Hj=g(i=1mωa-T),j=1,2,…,l]? ? ? ? ? ? ? ? (3)
公式(3)中,[Hj]為正向運算的結果;[ω]表示為權重;[T]表示為閾值;[l]表示為負載數(shù)量;[g]表示為傳遞關系。通過(3)計算出的結果與實際結果進行比較可得出兩者之間存在的誤差值,再通過反向運算將權重與閾值更新,以此可以不斷減小負載異常監(jiān)測的結果誤差,從而獲取實際負載數(shù)量的在線情況。若通過本文上述方法利用爬蟲大數(shù)據(jù)獲取到的數(shù)據(jù)信息在設定的數(shù)據(jù)量閾值范圍內(nèi),則表示此時網(wǎng)絡負載處于正常的連接狀態(tài)及正常的通信狀態(tài);若數(shù)據(jù)信息不在設定范圍內(nèi),則表示此時網(wǎng)絡負載的連接為無效連接,負載處于異常狀態(tài)。
2 對比實驗
為了驗證本文提出的基于爬蟲大數(shù)據(jù)的網(wǎng)絡負載異常監(jiān)測方法的有效性,將該方法與傳統(tǒng)監(jiān)測方法進行對比,實驗設計如下。
2.1 實驗準備
首先構建實驗平臺,設置網(wǎng)絡負載的數(shù)據(jù)樣本為2 000個。將2 000個樣本建立成一個樣本集合,并將數(shù)據(jù)全部接入平臺中。設置本文提出的監(jiān)測方法為實驗組,傳統(tǒng)監(jiān)測方法為對照組。將樣本分為兩組,每組1 000個,對其負載分別進行60min的不間斷調(diào)整,加入人工手段,讓部分負載失去連接,分別利用兩組方法對其網(wǎng)絡負載異常進行監(jiān)測,比較對照組和實驗組的監(jiān)測性能。
2.2 實驗結果及分析
為了保證實驗的客觀性,在保證其他外界影響因素均相同的情況下,完成實驗。對實驗過程中的相關數(shù)據(jù)進行記錄,并通過計算得出兩組方法監(jiān)測結果的精確度,如表1所示。
通過本文構建的實驗及表1可以得出,經(jīng)過60min的監(jiān)測與實際的負載異常數(shù)量相比,實驗組的監(jiān)測精確度明顯高于對照組的監(jiān)測精確度。雖然表1中對照組的監(jiān)測精度能夠達到91%以上,但從整體實驗過程來看,監(jiān)測精度的穩(wěn)定性不強,精確度在70%~91%波動過大。這主要是因為,傳統(tǒng)監(jiān)測方法是利用服務器定時對每個負載發(fā)送信號,再對發(fā)送信號的時間及接受反饋的相應參數(shù)進行記錄,根據(jù)時間差判斷負載的異常情況,這種方法浪費網(wǎng)絡資源,對大數(shù)據(jù)平臺的適用性較差。實驗組的監(jiān)測方法在獲取網(wǎng)絡負載數(shù)據(jù)的過程中,避免了傳統(tǒng)方法運用過程中出現(xiàn)的問題,因此平均精確度可高達95%以上,且擬合性更高,精確度的誤差波動范圍較小。可見,本文提出的基于爬蟲大數(shù)據(jù)的網(wǎng)絡負載異常監(jiān)測方法的監(jiān)測精確度更高、適應性更強,更適用于對網(wǎng)絡負載進行異常監(jiān)測。
3 結語
本文提出一種基于爬蟲大數(shù)據(jù)的網(wǎng)絡負載異常監(jiān)測方法,在提高監(jiān)測精確度的同時,提高了大數(shù)據(jù)平臺中資源的使用效率。實驗證明,本文設計的網(wǎng)絡負載異常監(jiān)測方法具有更強的適用性。在后續(xù)的研究中還將針對爬蟲大數(shù)據(jù)采集進行更加深入的研究,找出最適用于網(wǎng)絡負載異常監(jiān)測的網(wǎng)絡爬蟲類型,方便相關人員的監(jiān)測,提高監(jiān)測的運行效率及性能,為日后對結構更加復雜的網(wǎng)絡環(huán)境的負載異常監(jiān)測提供理論基礎。
參考文獻:
[1]李星.基于小波神經(jīng)網(wǎng)絡的大數(shù)據(jù)在線負載異常監(jiān)測技術研究[J].現(xiàn)代電子技術,2019(11):95-97.
[2]章昭輝,崔君.大規(guī)模網(wǎng)絡服務系統(tǒng)行為異常的敏捷感知方法[J].計算機學報,2017(2):505-519.
[3]劉江,劉國璽,張雁,等.基于多線程和翻譯的網(wǎng)絡爬蟲鳥類音頻數(shù)據(jù)采集系統(tǒng)設計與實現(xiàn)[J].現(xiàn)代計算機(專業(yè)版),2018(30):85-92.
[4]高峰,劉震,高輝.結合有監(jiān)督廣度優(yōu)先搜索策略的通用垂直爬蟲方法[J].計算機工程,2018(11):289-299.
[5]石恩名,肖曉軍,盧宇.基于云平臺的分布式高性能網(wǎng)絡爬蟲的研究與設計[J].電信科學,2017(8):180-186.
[6]劉順程,岳思穎.大數(shù)據(jù)時代下基于Python的網(wǎng)絡信息爬取技術[J].電子技術與軟件工程,2017(21):160-161.
[7]郭二強,李博.大數(shù)據(jù)環(huán)境下基于Python的網(wǎng)絡爬蟲技術[J].計算機產(chǎn)品與流通,2017(12):82-83.
[8]曾健榮,張仰森,鄭佳,等.面向多數(shù)據(jù)源的網(wǎng)絡爬蟲實現(xiàn)技術及應用[J].計算機科學,2019(5):304-309.