通常,將惡意用戶通過偽造大量合法報(bào)文,并將其發(fā)送到在線服務(wù)器而產(chǎn)生的網(wǎng)絡(luò)安全問題稱之為泛洪攻擊。以DHCP泛洪為例,這種惡意攻擊不僅耗盡了IP資源,讓合法用戶無法獲得lP地址,而且使服務(wù)器高負(fù)荷運(yùn)行甚至導(dǎo)致正常服務(wù)癱瘓。統(tǒng)計(jì)訪問日志中各lP地址的請求次數(shù)、提取請求異常頻繁的IP是檢測攻擊源、防御泛洪攻擊的有效方法之一。然而,訪問日志大多包含較多數(shù)據(jù)信息,日志文件大小通常是GB級的;傳統(tǒng)單機(jī)模式下多線程、多任務(wù)分解的日志分析模式設(shè)計(jì)過程繁雜、耗時(shí)較長,因而時(shí)效性很差。本文以MapReduce構(gòu)架為引導(dǎo),以Apache開源軟件Hadoop為基礎(chǔ),就Ha-doop兩大主流應(yīng)用場景之一日志分析,建立了Hadoop分布式日志分析系統(tǒng),并通過實(shí)驗(yàn)驗(yàn)證了其較單機(jī)模式的時(shí)效性優(yōu)勢,為有效解決泛洪攻擊奠定了基礎(chǔ)。此外,本文用虛擬機(jī)作為集群環(huán)境搭建平臺(tái),簡易、高效,且衍生出不同文件系統(tǒng)的虛擬機(jī)集群環(huán)境,十分有利于集群優(yōu)化。
1 搭建集群環(huán)境
1.1 集群環(huán)境
在Hadoop系統(tǒng)中,有一臺(tái)Master主機(jī),主要負(fù)責(zé)NameNode以及JobTracker的工作。其中Nameno-de是Hadoop分布式文件系統(tǒng)的管理者和調(diào)度者,JobTracker的主要職責(zé)則是啟動(dòng)、跟蹤、調(diào)度各個(gè)Slave的任務(wù)執(zhí)行。系統(tǒng)中還有多臺(tái)Slave,每一臺(tái)Slave通常具有DataNode的功能以及TaskTracker的工作。Datanode用來儲(chǔ)存系統(tǒng)中的數(shù)據(jù)信息及其備份,并根據(jù)應(yīng)用要求結(jié)合本地的TaskTracker執(zhí)行Map任務(wù)以及Reduce任務(wù)。本文實(shí)驗(yàn)構(gòu)建了由一臺(tái)普通PC機(jī)做Master、運(yùn)行在同一臺(tái)實(shí)體機(jī)上的三臺(tái)虛擬機(jī)做Slave的集群環(huán)境,而且三臺(tái)Slave的配置保持一致:虛擬硬件為1G內(nèi)存,雙核處理器,IDE硬盤;OS均為ArchLinux,JDK 1.6.0作為基礎(chǔ)平臺(tái),Hadoop版本為Version 0.21.0,另外虛擬機(jī)之間的通信通過虛擬出來的網(wǎng)橋?qū)崿F(xiàn)。
1.2 算法及程序
圖1 程序流程圖
圖1展示了實(shí)驗(yàn)中分布式日志分析算法的全部操作流程。首先,當(dāng)用戶將待處理日志文件導(dǎo)入Hadoop分布式文件系統(tǒng)(HDFS)時(shí),程序中的MapReduce函數(shù)庫自動(dòng)地把輸入文件分成M塊Split(對應(yīng)圖1中序號①),并將所有Splits及其備份相對均勻地存儲(chǔ)于各結(jié)點(diǎn)。其次,用戶調(diào)用日志分析程序?qū)σ汛嫒際DFS的輸入文件進(jìn)行l(wèi)P請求次數(shù)的分析與統(tǒng)計(jì)。這一過程主要由Map操作和Reduce操作共同完成。具體地,在Map操作階段,程序中的Map函數(shù)讀取系統(tǒng)分配的Splits,對輸入鍵/值對即Split中的每一行數(shù)據(jù)進(jìn)行分析,然后提取每一行中申請?jiān)L問的lP值并生成格式為<IP,1>的中間鍵/值對(對應(yīng)圖1中序號②);在Reduce操作階段,Reduce函數(shù)承接Map操作,將中間鍵/值對按照不同鍵值即IP值進(jìn)行累加,生成格式為<IP,N>的輸出鍵/值對(對應(yīng)圖1中序號③),其中N值即為對應(yīng)IP地址在被處理訪問日志中的請求次數(shù)。最后,將統(tǒng)計(jì)結(jié)果寫入輸出文件(對應(yīng)圖1中序號④),程序返回。
2 實(shí)驗(yàn)過程及結(jié)果
2.1 單機(jī)模式與分布式性能測試對比
通過運(yùn)行單機(jī)模式和分布式下2、4、8、10、20及40 G訪問日志的分析程序,并記錄各次程序耗時(shí)及運(yùn)行狀況,對兩種模式的性能進(jìn)行了比較,其結(jié)果如圖3所示。由于集群使用以太網(wǎng)協(xié)議進(jìn)行各結(jié)點(diǎn)之間的通信連接,其性能受到網(wǎng)絡(luò)穩(wěn)定因素的影響較大;因而在進(jìn)行分布式組別的測試時(shí),同一級別訪問日志的多次程序運(yùn)行耗時(shí)差別較大,圖表中各級別耗時(shí)值均為5組測試的平均取值。但單機(jī)模式不涉及上述因素,同一級別訪問日志的多次程序運(yùn)行耗時(shí)僅存在(±10)s的差別,因而取其中一組值作為最終值。
圖2 單機(jī)模式與分布式耗時(shí)對比
從圖2可以看出,隨著檢測文件的逐漸增大,分布式日志分析模式快速高效的特點(diǎn)逐漸趨于明顯,這不僅說明了它在處理較大量文件時(shí)較傳統(tǒng)單機(jī)模式的絕對性優(yōu)勢,同時(shí)也意味著實(shí)驗(yàn)所構(gòu)建的分布式日志分析系統(tǒng)更加適宜于解析泛洪攻擊源。
2.2Ext3文件系統(tǒng)與reiserfs文件系統(tǒng)集群性能測試對比
Hadoop的分布式文件系統(tǒng)HDFS是集群中文件的存儲(chǔ)、生成及刪除等操作的基礎(chǔ)。通過Master主機(jī)的調(diào)配,系統(tǒng)中所有文件及其副本均衡地分布于各Slaves的“hadoop. tmp. dir”目錄下,因而該目錄所處的底層Linux文件系統(tǒng)類型也是決定分布式集群性能優(yōu)劣的因素之一。本文分別建立了基于Ext3與Reiserfs文件系統(tǒng)的兩種集群環(huán)境,并通過大量測試對兩者的性能進(jìn)行了比較和分析,其測試結(jié)果如圖3。
圖3 Exa與reiserfs文件系統(tǒng)集群耗時(shí)對比
從圖3可以看出,當(dāng)測試的訪問日志大小改變時(shí),ext3文件系統(tǒng)集群與reiserfs文件系統(tǒng)集群進(jìn)行日志分析工作時(shí)所用的時(shí)間也不同,并在不同的文件大小區(qū)域內(nèi)呈現(xiàn)不同的趨勢。如在2~20 G區(qū)域ext3集群耗時(shí)較少,在40~60 G區(qū)域reiserfs集群耗時(shí)較少。根據(jù)此特性,筆者可以在不同應(yīng)用條件下選擇性能相對較高的文件系統(tǒng)構(gòu)建集群,以使分布式計(jì)算發(fā)揮出最大優(yōu)勢。
3 總結(jié)與展望
隨著互聯(lián)網(wǎng)的迅速普及和發(fā)展,網(wǎng)絡(luò)安全維護(hù)已經(jīng)成為網(wǎng)絡(luò)運(yùn)維的重要工作之一。與此同時(shí),并行.計(jì)算及分布式模式也已日趨主流。本文分析泛洪攻擊這一典型網(wǎng)絡(luò)安全問題的特點(diǎn),將分布式處理模式與網(wǎng)絡(luò)安全防御策略相結(jié)合,力圖為快速高效解決這一問題尋求突破口。此外,筆者期望將程序擴(kuò)展為可處理和分析多種日志的分布式日志分析系統(tǒng),針對各類型的日志進(jìn)行分類提取重要信息,進(jìn)而為網(wǎng)絡(luò)運(yùn)維工作提供多方面的幫助。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請注明出處:拓步ERP資訊網(wǎng)http://www.oesoe.com/
本文標(biāo)題:基于Hadoop的分布式日志分析系統(tǒng)
本文網(wǎng)址:http://www.oesoe.com/html/consultation/1083936581.html