NetFlow流量采集與聚合的研究實(shí)現(xiàn)
NetFlow的原始數(shù)據(jù)數(shù)據(jù)量非常龐大,保存每一條流數(shù)據(jù)的原始記錄將會使對數(shù)據(jù)進(jìn)行查詢分析時(shí)產(chǎn)生效率低下的問題,在絕大部分應(yīng)用中也沒有必要把數(shù)據(jù)粒度設(shè)計(jì)得如此之小。所謂流量聚合,是指對符合NetFlow數(shù)據(jù)格式的原始流記錄根據(jù)一定條件進(jìn)行流量合并,實(shí)現(xiàn)多條流合并為一條的過程,以實(shí)現(xiàn)原始流的壓縮整理。
2.3.1 聚合策略
流量聚合有三個(gè)關(guān)鍵要素:聚合條件(F)、時(shí)間粒度(T)和聚合項(xiàng)(C)。滿足相同聚合條件和時(shí)間粒度的流進(jìn)行流量疊加,并保留聚合項(xiàng)。三元組聚合策略:F,T,c>,其中:本文引用地址:http://2s4d.com/article/188834.htm
按照實(shí)際流量分析的需要,從F,T,C中各取出一個(gè)值組成一個(gè)聚合策略。對于T的粒度要根據(jù)實(shí)際監(jiān)控的時(shí)間長短和監(jiān)測精度來設(shè)置,一般來說T=3 min適合于當(dāng)天實(shí)時(shí)流量的監(jiān)測;T=30 min用于一周流量的分析;T=3 h用于一月內(nèi)流量的分析。
2.3.2 聚合的實(shí)現(xiàn)
對于一個(gè)新采集的原始流,必須能根據(jù)其所攜帶的聚合條件信息快速匹配是否已存在與其相同聚合條件的聚合流,若有則做流量疊加,若沒有則創(chuàng)建一條新的聚合流。Hash表具有從Key快速映射到Value的特點(diǎn),這種特點(diǎn)對于實(shí)時(shí)性較高的聚合非常有意義。圖3為流量聚合的}Iash表設(shè)計(jì)。
在圖3中聚合條件(F)作為Key,聚合項(xiàng)(C)作為Hash函數(shù)的映射值,時(shí)間粒度(T)作為Hash表導(dǎo)出到數(shù)據(jù)庫的時(shí)間。這樣可以滿足實(shí)時(shí)流量監(jiān)測的需要,同時(shí)也壓縮數(shù)據(jù)減少存儲空間,提高數(shù)據(jù)的查詢效率。
3 實(shí)際NetFlow流采集與流量監(jiān)測
在本系統(tǒng)設(shè)計(jì)的數(shù)據(jù)采集器的支持下,系統(tǒng)數(shù)據(jù)庫為前端分析提供了充足且多樣化的數(shù)據(jù)準(zhǔn)備,前端程序只需通過簡單的查詢語句即可得到所需的數(shù)據(jù)集,簡化了查詢的工作量。利用該系統(tǒng)采集NetFlow數(shù)據(jù)包50 000個(gè),時(shí)間持續(xù)約7 h,時(shí)間粒度為3 min,主要檢驗(yàn)丟包情況,以及聚合后壓縮效率。這次采集無丟包發(fā)生,表1為該系統(tǒng)采集的數(shù)據(jù)結(jié)果。
圖4是系統(tǒng)由所采集的數(shù)據(jù)生成的該時(shí)段的流量監(jiān)測圖。
4 結(jié) 語
NetFlow數(shù)據(jù)流的海量特征使得服務(wù)器程序的效率至關(guān)重要,因此基于NetFlow的流量監(jiān)測的主要任務(wù)是如何根據(jù)應(yīng)用保存最重要的網(wǎng)絡(luò)流特征以及如何更高效地實(shí)現(xiàn)數(shù)據(jù)檢索?;贜etFlow特點(diǎn),提出了一套適用于大流量網(wǎng)絡(luò)的流量采集與聚合存儲方案。流量采集通過多線程和緩沖區(qū)機(jī)制實(shí)現(xiàn),有效提高了流量采集的可靠性。采集的原始流經(jīng)聚合,并通過合理的分級存儲策略進(jìn)行存儲組織,為前端的數(shù)據(jù)分析提供了全面支持。本系統(tǒng)在實(shí)際應(yīng)用中取得了良好效果。下一步還將對采集和多級聚合存儲方案進(jìn)行改進(jìn),以豐富系統(tǒng)對網(wǎng)絡(luò)流量統(tǒng)計(jì)分析功能,并力爭為異常流量分析提供較為完善的數(shù)據(jù)支持。
評論