陳易平,俞 龍,諶 頏
(1.廣東技術師范大學天河學院 計算機科學與工程學院, 廣州 510540;2.華南農業大學 電子工程學院, 廣州 510642)
隨著互聯網的快速發展,全球信息共享已經逐步成為現實,社會大眾在在日常工作和生活中,通過各種聯網設備進行辦公和娛樂,大大提高了工作的效率和生活的便利性。隨著互聯網用戶數量的快速增加,網絡信息量也急劇增長,意味著全世界已經進入了大數據信息化時代[1-4]。數據規模的增加也導致運維的難度逐漸變大。如果運維不當可能導致故障或者異常,從而造成經濟上的巨大損失,例如蠕蟲攻擊、網絡的配置錯誤或者服務器負載異常等。如何高效地維護大數據環境下的眾多網絡設施成為目前網絡維護領域急需解決的重要問題[5]。
面對當前龐大數據量的網絡設備運維任務,傳統的方法需要人工根據經驗完成。工程師需要通過時刻監控網絡設備的硬件、性能狀態等參數來掌握當前網絡系統的運行狀況,以便對網絡服務的質量進行評估。但人工操作的準確性依賴于經驗,且穩定性較差。因此,對網絡服務設備的準確故障預警是運維管理中必不可少的任務[6-7]。針對網絡流量的預測和異常檢測,國內外已經有不少研究成果,如時間序列分析、小波分析、擬合、神經網絡等。如文獻[8]提出了含自適應閾值的ARMA網絡流量異常檢測算法。該算法利用滑動平均模型預測網絡流量,利用中心極限定理確定動態的閾值區間,通過判斷網絡流量誤差是否落在閾值區間作為檢測點是否異常的準則。文獻[9]將傳統的ARIMA預測模型和BP神經網絡模型結合來進行精確的無線網絡流量預測,并使用粒子群優化算法對BP神經網絡預測模型進行優化以解決局部最小值陷入和訓練收斂速率低等問題。文獻[10]證明了網絡流量的自回歸短期預測是個NP問題,并分析了小波神經網絡預測算法的時間復雜度。研究結果表明:相比BP神經網絡和GRNN,小波神經網絡在解決此類NP問題時具有良好的預測效果和收斂速度。
通過上述研究結果分析,可以看出基于預測模型的智能化網絡流量監測已經得到應用,但是其預測精度和適用性還有待提高,特別是大數據環境下。因此,本文提出了一種基于小波神經網絡和ARMA的流量異常檢測方法。使用序列預測偏差擬合正態分布來構建異常可置區間,從而對時間序列分析法中的ARMA模型進行了改進。采用貝葉斯組合理論把小波神經網絡預測與ARMA時間序列預測相結合,建立了組合模型來實現流量異常預警。組合模型的依據是對具有近似平穩特征的網絡流量ARMA預測模型效果較好,而對于變化較多的網絡流量小波神經網絡預測模型效果較好。因此提出了組合預測思路,實驗結果表明:提出組合預測模型的相對誤差較小、精度較好。
不同于傳統的網絡設備,大數據應用的規模和自動化程度更高,導致大數據環境下的網絡設備管理和維護需要解決更加復雜的問題。如何有效實現網絡流量監測成為了目前相關研究領域的熱點方向。檢測到異常后需要發出預設的報警通知,并下載日志進行統計分析判斷,通常把異常請求的IP加入防火墻的黑名單中,并更改端口號。網絡流量模型通常采用信道傳輸速率的時間序列來表示,單位是Mbit/s。在統計學中,一般通過一組隨機變量X1,X2,…,Xt,…來表示某種隨機事件時間序列,即{Xt,t∈T}。

圖1 小波神經網絡的原理結構
一般通過網絡流量的自相似性和周期性來區分異常,主要方式是構建異常檢測置信區間。對于ARMA模型來說,{Xt}的定義如下所示:
Xt=φ1Xt-1+…+φpXt-p+
εt-θ1εt-1-…-θqεt-q
(1)

本文采用的小波神經網絡由m個輸入層節點、n個輸出層節點和s個隱含層節點構成[11]。其中,φ表示一個單獨的函數φ(x)生成的小波基函數。φ可以通過變換與平移操作得到,計算方法如式(2)所示[12]。
(2)
式中:φ(x)表示一個位于時間空間和頻率空間的母小波;向量aj={aj1,aj2,…,ajm}表示尺度參數;bj={bj1,bj2,…,bjm}表示轉換參數;x={x1,x2,…,xm}表示小波神經網絡的輸入。
神經元j的網絡內部活動可通過式(3)表示:
(3)
式中:Wij表示輸入i和隱藏節點j之間的權重。通過母小波φ(v)計算第j個神經元的輸出。
選取Morlet小波函數作為激勵函數[13]。Morlet母小波可通過式(4)計算得到。

(4)
因此,第j個神經元的輸出取決于:
(5)
顯然,隱藏層第j個單元取值由頻率參數aj和時間參數bj來決定。初始化小波的變換與平移參數:
ai=0.2(xmax-xmin)
(6)
bj=0.5(xmax+xmin)
(7)
式中xmax、xmin分別表示最大和最小輸入值。

F1:Xt=φ1Xt-1+…+φpXt-p+
εt-θ1εt-1-…-θqεt-q
(8)

(9)
利用式(8)對流量序列進行預測,式(9)則能對在線流量數據進行異常檢測。首先,對采集到的數據序列進行對數處理以降低標準差,然后通過差分析方法實現流量序列平穩化處理,具體方式如下:
lnSij=μ+αi+βj+yij
(10)
式中:Sij為7天中第j天第i個5 min的觀測值,j=1,2,3,4,5,i=1,2,3,…,288;μ為7天觀測值的平均值;αi為在第i個時刻的平均值與μ的偏差,∑iαi=0;βj為第j天的平均值與μ的偏差,∑jβj=0;yij表示測值的余值。
ARMA模型的(p,q)參數識別采用了Box-Jenkins提出的方法[14],也就是通過樣本的自相關函數和偏自相關函數的截尾性來給(p,q)參數定階。然后,通過序列的觀察值初步估計模型的未知參數φ1,…,φp,θ1,…,θq,μ。
一般采用矩估計方法計算參數μ的估計值:
(11)

如果有一個段網絡信號在時刻t的時間序列為yt,那么多個預測模型的輸出如下[15-16]:
(12)

(13)
式中k=1,2,…,K;t=1,2,…。
(14)

(15)

因此,K個組合模型對(t+1)的預測值為:

(16)


(17)

為了驗證本文提出的組合模型在大數據環境下的性能,在Hadoop平臺上進行了性能測試分析。
測試集群機器環境參數為:10臺網絡服務器節點,具有Intel i7處理器,CPU主頻為 3.2 GHz,8 GB內存。所有服務節點通過1 000 M光纖實現相互通信。在所有服務節點上均安裝了2.2.0版本的Hadoop,JDK版本為1.8。其中1個節點設置為Jobtracker,其他的9臺計算節點設置為tasktracker。每個tasktracker均具有1個reduce工作槽和2個map工作槽。每個服務節點的軟硬件參數如表1所示。

表1 實驗環境軟硬件參數
為了對提出組合模型的性能進行量化分析,選擇最常用的綜合評價指標[19-20]:相對誤差E,其計算方式如下:
(18)

以1臺網絡服務器節點上24 h內緩存的網絡流量數據為例,樣本為每5 min的平均流量速率,共計288個樣本點,其實際網絡流量曲線如圖2所示。可以看出,凌晨1點到6點時的流量最低,晚上8點至12點時流量最高,這與網絡服務器的實際正常運行情況相符合。但是,由于網絡流量的數值較大,因此如前面所述,將要對采集到的數據序列進行對數處理以降低標準差,平滑處理后的序列如圖3所示。

圖2 1 d的流量曲線示例

圖3 處理后的流量曲線
使用自相關函數(ACFA)和偏自相關函數(PACF)來估計F1模型的p與q的階數[19]。根據最小二乘參數估計、擬合結果及BIC最小化準則[15],綜合分析得出模型F1(1,3)擬合的效果最好,即p=1,q=3。
以每5 min的平均流量速率為采樣點,采集了10 d的流量數據作為數據集,共2 880個數據點,其中包含觀測到的異常點47個。使用BP神經網絡、小波神經網絡(WNN)、ARMA和組合模型對該數據集進行了網絡流量監測。通過式(18)計算得出4種模型的相對誤差,如表2所示。從表2可以看出:相比其他3種單一預測模型,所提出的組合模型能得到更好的監測效果,相對誤差更小,模型精度最佳。此外,BP神經網絡、WNN和ARMA模型正確檢測出異常點的數量分別為33、40和37,而組合模型正確檢測出異常點的數量較多,得到44個,異常檢測率達到93.6%。綜合以上結果得出:所提出的組合模型在流量的異常檢測上具有顯著的效果。

表2 不同模型的誤差對比
本文提出了一種基于小波神經網絡和ARMA的流量異常檢測方法。使用序列預測偏差擬合正態分布來構建異??芍脜^間,從而對時間序列分析法中的ARMA模型進行了改進。采用貝葉斯組合理論把小波神經網絡預測與ARMA時間序列預測相結合,建立了一個組合模型來實現流量異常預警。實驗結果驗證了所提出組合模型的有效性。但是,相比單一預測模型,組合模型在實際大數據環境中的實時性有所降低,且并不能反映出故障的種類。因此,未來研究重心將會向網絡故障定位和并行化實施方向發展。