劉中原

摘要:本課題分別從大數據信息分析平臺、數據收集、數據存儲以及數據分析的架構著手分析;其次,通過實現K-means的MapReduce方法,采用Hadoop分布式計算平臺,同時分別從聚類功能結果測試和單機分析平臺性能對比測試,通過實驗測試,基于Hadoop的校園網絡日志分析系統在收集、處理、存儲、挖掘方面相比傳統單機處理有很大改進,不僅減少了開發人員工作量同時還提高了效率。
關鍵詞:大數據處理;Hadoop分布式;K-means
1 引言
如今,移動互聯網技術的發、大數據等新興技術的普及,整個社會的網絡信息技術發生了巨大的變化,信息化環境己進入了一個新的階段,這對學校網絡中心在對校園網絡的維護和管理上也提出了新的要求和挑戰。在當今時代,互聯網技術己經被十分深入地應用到高校的學習、工作和校園生活中,我國各大高校的校園網建設也越來越受到高校的重視,通過連接校園網絡上網,產生的日志數據具有實時、海量、動態、無規則等特點,但這些數據同時具有重要的價值。如何從這些復雜數據中找出我們需要的內容,這就需要對這些原始的日志數據內容進行一些處理,通過數據的處理,挖掘出對學校管理有用途的信息,這些信息對學校校園網絡建設以及學校對學生的管理都十分重要。現有的一些日志分析工具,如:Awstats、Webalizer等,都可以用來對網絡日志進行分析統計,但由于這些工具基本是屬于單機運行,在計算能力和存儲能力上,滿足不了如今校園網絡中海量的網絡日志的分析和處理,所以,通過使用Hadoop為框架,利用MapReduce編程模式和HDFS實現并行化處理,解決傳統日志分析在海量數據面前遇到的瓶頸,對校園網絡建設和管理有重要的意義。
2 大數據安全日志系統架構
2.1 智能信息分析平臺
智能信息分析平臺由數據的收集,保存,分析和優化功能模塊組成,每個模塊構造不同的數據格式和處理方法。從各種數據源中穩定地收集數據,并通過多個并行結構平均地保存數據,提供能夠基于高速搜索進行智能分析的系統結構。
2.2 數據收集算法
在考慮所有數據收集技術,海量數據傳輸,管理穩定性以及收集和使用數據的高可用性的基礎上,開發數據收集框架。安全設備中產生的所有信息都通過數據發送器實時保存在收集器中,例如源,格式數據,結構化/非結構化原始日志和原始日志。當前的數據收集過程顯示了在處理主要主頁中的Web日志,提出使用兩種方法,即agent/lessagent來收集信息,并通過考慮實時性和穩定性來增加選擇收集方法的靈活性。數據發送器自動分散錯誤和數據負載,并通過使用自動負載分配,檢測錯誤/重復和日志轉發技術來防止數據丟失。
通過應用大量的UDP數據包處理技術和數據轉發技術,可從由互鎖適配器Syslog/SNMP,具有UNIX/Windows性能的系統性能適配器,UNIX Syslog和Windows WMI構造的系統日志適配器傳輸大量信息。要將收集的信息通過適配器傳輸到傳輸隊列,可以通過驗證數據一致性并根據設備的性能調整數據傳輸量來完成。當發生數據溢出時,數據將無法傳輸并重復到保留的收集器。如果在此過程中發生諸如網絡遣散之類的錯誤,請臨時保存數據,然后通過具有SSL認證,SSL解碼器,SSL捕獲和LOG過濾器功能的數據接合適配器重復該數據。
2.3 數據存儲
收集器由基于分發的日志服務器構造,有收集器服務器的保存方法,通過收集系統獲得的數據供客戶通過接收和規范化過程初始查找信息,然后與規范化數據進行比較,并獲得與DB交互的索引值。接收安全日志,系統日志和應用程序日志的數據,并通過規范化對其進行規范化引擎,規范化文件和數據標記,使用分布式體系結構保存大量的安全日志文件,分散的體系結構在并行處理中進行處理以存儲海量數據,并通過基于分發的多索引器運行保存和實時索引工作。因此,每天的Tera字節(TB)數據可以通過分布式體系結構進行處理,每個收集器顯示出200000EPS的處理性能。特別是每個收集器在保存數據時自動檢查完整性,并將數據保存在壓縮和編碼的文件夾中。收集器通過構造數據備份/熱備用收集器來自動備份和還原,以自動保護原始數據免受多系統可能出現的故障的影響。從理論上講,這種管理結構可以存儲無限的數據,并且具有可擴展性和穩定性。與并行處理方式相比,通過以并行形式排列收集器也可以得到更快的結果,從而導致收集器數量和處理性能成比例。當數據大小較小時,該技術可以對處理大量安全日志大數據產生巨大的影響。
2.4 大數據分析系統
不能通過實時檢查來保證海量數據的速度,但是,可以通過輸入關鍵字或保存在收集器中的索引數據的條件來查找索引數據來進行操作。搜索到的大量安全日志數據分析通過數據細化(將問題細分成小塊的數據進行分析),使多重掃描變得更加容易。此外,通過兩種基于分布的多次掃描,還可以確保來自安全設備的數據的實時分析性能。其中之一是根據基線和閾值檢測數據的快速變化。另一個正在使用趨勢分析,該趨勢分析是基于統計數據來預測數據。
通過對設備/日志類型的實時監控,分析所有事件的相關性并以圖表的形式直觀地顯示出來。在實時監控過程中發現錯誤時,打開警報以可視化形式顯示威脅。單次掃描最多運行20億例,在每天200G~400G的簡單掃描條件下,在一分鐘內進行掃描。
2.4.1 數據分析日志系統。數據收集結構的構建應考慮所有數據收集技術,海量數據傳輸,管理穩定性以及數據收集和參與的高可用性。因此,所有源,格式數據,結構化/非結構化原始日志以及來自安全設備的原始日志都將實時收集,并通過數據發送器存儲在收集器中。
2.4.2 日志分析算法。課題提出使用PCRE(Perl兼容正則表達式)技術的方法,該技術支持非結構化數據規范化技術,該庫支持特殊的Separator技術和正則表達式。該算法用于分析日志,這些日志分為日志收集服務器,日志解析器和日志轉換。日志收集服務器使用FireWall事件,IDS事件,流量事件和WebFw事件等收集設備,通過數據過濾器將收集的數據傳遞到日志解析器。日志解析器負責解析收集到的設備對已過濾數據的轉換,并將數據標準化為常規數據。轉換后的數據保存在文件或內存中,并發送日志。同時,通過檢查原始數據,正則表達式和日志轉換,刪除以及選擇字段值以保存XML文件來完成規范化。
3 基于Hadoop日志分析系統的實現
3.1 Hadoop分布式平臺搭建
本課題采用Hadoop分布式開源框架,構建多機集群,其中Master主機開啟JobTracker,負責其他執行TaskTracker任務的Slave主機節點的任務調度,資源分配。Slave節點將Master節點分發的MapReduce任務,并將處理結果返回給主節點。
3.2 日志存儲模塊
日志安全分析平臺后端存儲主要由MySQL和HDFS實現,其中MySQL主要存儲業務處理結果數據,然HDFS存儲大量WEB日志文件數據以及清洗后的文件;其中HDFS開源工具sqoop可以實現從HDFS數據轉化為MYSQL關系型數據。
首先,在機器上安裝MySQL軟件并創建數據庫以及附屬表,當WEB日志經過日志挖掘模塊處理后,得到的數據信息是保存在HDFS布式文件系統中,這時可以使用sqoop工具將獲取到的數據信息轉存到MySQL數據庫上面。導出成功后,可以在MySQL數據庫里查詢數據信息,WEB日志數據以64M大小分塊存儲在HDFS平臺上,在不同DataNode節點都有數據副本,以保證數據安全,同時由于HDFS以下特性:
(1)HSDF可以處理TB級別的數據量,面對海量的WEB日志,HDFS是最適合不過的。
(2)支持流式的數據訪問方法,HDFS多節點數據備份,由于一次寫入,多點讀取,可以支持高并發數據請求目的。
(3)Hadoop框架對機器性能、資源要求不高,可以使用廉價的商用機器集群,Hadoop通過集群維持系統可靠性,可以保證單個節點故障不會導致系統奔潰。
3.3 WEB日志聚類算法的設計
本課題采用K-means進行相似用戶的挖掘,默認的聚類算法都是基于單機實現完成,由于采用Hadoop分布式平臺,需要對傳統的單機聚類算法進升級改造以適應分布式計算平臺。
K-means聚類算法每次迭代分兩步走,首先根據樣本點與中心點距離確定歸屬;其次,根據當前最新樣本點的分布可重新設定中心點位置。Hadoop的MapReduce的處理過程正好滿足K-means的計算步驟,其中Map函數選擇離樣本最近的中心點,更新該中心點的樣本庫;Reduce根據中心點的樣本庫重新計算中心點的位置,繼續后續的迭代處理,最終通過多次迭代計算,K-means可以達到收斂狀態。在實現分布式聚類每次通過MapReduce進行迭代計算,Reduce計算結果作為下次Map計算的輸入。
Map函數的設計中,Mapper函數功能是根據已有中心點的距離對當前樣本點進行分類;Mapper函數的輸入為每個用戶日志軌跡屬性向量t,通過Mapper計算得到輸出的中間結果是<中心點,t>,即是該用戶日志屬性向量所屬中心點。
通常在處理Map函數和Reduce函數之間增加Combiner函數處理,該函數主要是對Map函數輸出值進行合并輸出
通過并發K-means計算流程,可以保證在Hadoop分布式高效運行。將改進后的K-means距離算法成功應用于大數據校園網絡安全日志分析流程中。
3.4 系統運行結果分析
3.4.1 大數據分析功能測試結果分析。本課題分別隨機設置3、4、5個中心點進行相關實驗,每組實驗重復10次,取實驗的平均指標,最終實驗效果如圖1所示,圖中橫軸著表示了類簇中心的個數,縱軸表示該中心點下面所屬用戶占比量。
實驗結果表明相同數量的中心點得到實驗結果不盡相同,不同數量的中心點實驗結果也不一致,這是因為使用K-means聚類時,會隨機K個向量點作為初始中心參考點,但是隨著迭代次數增加,最終的聚類結果大體一致。
3.4.2 分布式分析平臺性能測試。在相同數據量下分別對單機和Hadoop集群的消耗時間比較,在數據量并不是很客觀的情況下,Hadoop集群并未領先于單機性能,主要是Hadoop集群在每次迭代計算過程中都會開啟新MapReduce任務,在數據量很小的情況下,時間占比主要在啟動任務資源;隨著數據量的增大,計算資源消耗占比時間也隨之增大,啟動任務消耗的時間占比越小,可以忽略。因此,在數據量非常可觀的情況下,Hadoop集群的計算效率明顯優越于單機性能。
參考文獻:
[1] 王參參,姜青云,李彤.基于大數據的日志分析平臺在銀行中的研究與實現[J].網絡安全技術與應用,2018(05).
[2] 胡沐創.大數據日志分析平臺應用探索與實踐[J].金融科技時代,2018.
[3] 應毅,任凱,劉亞軍.基于大數據的網絡日志分析技術[J].計算機科學,2018(S2).
[4] 楊敏,何海濤,趙瓊.流量大數據安全分析平臺的設計與實現[J].通信學報,2018(S1).
[5] 王秋紅.基于大數據技術的網絡教學平臺用戶行為分析研究[J].電子世界,2019(09).
[6] 單康康,王佶,常曉潔.基于大數據的校園網海量日志分析平臺研究[J].信息通信, 2017(03).
基金項目:本文系杭州職業技術學院2020年度校級科研項目“基于大數據的校園網絡安全日志分析平臺研究”(編號:ky202028)。
(作者單位:杭州職業技術學院 信息工程學院)