摘要:本文以Hadoop大數據框架為基礎,將Hadoop框架與關聯規(guī)則分析法相結合,對Linux系統(tǒng)的日志文件進行挖掘與分析,對于提高Linux系統(tǒng)日志的存儲能力、分析效率具有重要意義。
關鍵詞:Linux系統(tǒng);Hadoop平臺;日志分析平臺
一、引言
Linux系統(tǒng)是當前主流的操作系統(tǒng)之一,因其功能強大、性能穩(wěn)定而成為大型服務器、數據庫服務器的主要支撐性操作系統(tǒng)。Linux系統(tǒng)具有非常強大且靈活的日志功能,無論是用戶的操作還是系統(tǒng)內核與程序所產生的各類信息,均能夠以日志的形式記錄下來,為用戶查詢歷史操作以及管理員全面掌控Linux系統(tǒng)的運行狀態(tài)提供重要依據[1]。Linux系統(tǒng)的日志隨著系統(tǒng)的長時間運行而不斷累積,其增長速度非常快,累積的日志文件會占用大量的系統(tǒng)硬盤存儲空間,而Linux系統(tǒng)中的syslog只負責將操作記錄與日志信息接收并存儲在日志文件中,無法對日志文件進行精細化管理與深度化應用,一方面會導致日志文件中的記錄不斷新增會導致日志文件過大,日志文件的存儲、組織與管理存在難度;另一方面日志中記錄的累加給傳統(tǒng)數據挖掘分析方法帶來了大數據量的挑戰(zhàn),管理員或用戶在檢索、挖掘分析與應用日志文件時存在越來越大的難度[2]。Hadoop是當前應對大數據存儲、管理與應用的平臺,其HDFS為大數據存儲提供方法支撐,MapReduce為大數據分析與挖掘提供平臺支撐,將Hadoop應用到Linux系統(tǒng)日志文件管理與分析中,可以提高Linux系統(tǒng)日志的存儲能力與管理效率。
二、基于Hadoop的Linux系統(tǒng)日志分析平臺需求分析
Linux系統(tǒng)的日志文件中全面記錄了系統(tǒng)的運行狀態(tài)、錯誤信息等,對于挖掘與診斷Linux系統(tǒng)中存在的問題、解決系統(tǒng)存在的問題具有重要價值,為Linux系統(tǒng)的故障診斷與信息挖掘提供“有據可查”的綜合性線索。利用Hadoop大數據平臺存儲與管理Linux系統(tǒng)的日志文件,可以有效存儲Linux系統(tǒng)海量的日志文件,快速挖掘分析Linux系統(tǒng)日志文件中的潛在規(guī)律,當Linux系統(tǒng)遭到攻擊時,可以借助系統(tǒng)日志文件以及Hadoop系統(tǒng)快速尋找到攻擊者留下的痕跡[3]。基于Hadoop的Linux日志分析平臺需要能夠對導入到Hadoop平臺的日志數據進行清洗與過濾,對日志數據進行關聯規(guī)則分析,并對日志數據挖掘與分析結果進行數據展示。
三、基于Hadoop的Linux系統(tǒng)日志分析平臺設計
基于Hadoop的Linux系統(tǒng)日志分析平臺總體架構包括如下:
(1)基礎設施層
基礎設施層為存儲各類Linux系統(tǒng)日志文件數據以及Hadoop大數據平臺運行提供所依賴的基礎軟硬件環(huán)境與基礎硬件設備設施,包括存儲系統(tǒng)、網絡環(huán)境等。
(2)數據資源層
數據資源層為基于Hadoop的Linux系統(tǒng)日志分析平臺中的各類數據,包括用戶日志、程序日志、內核與系統(tǒng)日志等。數據資源層為基于Hadoop的Linux系統(tǒng)日志分析平臺提供豐富的數據支撐。
(3)服務資源層
服務資源層是基于Hadoop的Linux系統(tǒng)日志分析平臺的基礎服務支撐層,用于連接數據層與應用層,包括資源服務總線、各類服務接口、接口構建工具[4]。基于Hadoop的Linux系統(tǒng)日志分析平臺的服務資源層基于數據資源層提供的數據支撐,向應用層提供查詢檢索、統(tǒng)計分析等基礎服務。
四、基于Hadoop的Linux系統(tǒng)日志分析平臺實現
基于Hadoop的Linux系統(tǒng)日志分析平臺工作流程如圖1所示。
基于Hadoop的Linux系統(tǒng)日志分析平臺中主要的兩個核心功能包括日志數據預處理功能與關聯規(guī)則挖掘分析功能,其具體實現如下:
(1)日志數據預處理
Linux系統(tǒng)的Syslog協(xié)議提供了一種傳輸方式,允許一臺主機通過IP 網絡發(fā)送事件給事件的接收者(Syslog服務器)。Syslog的消息內容沒有一個統(tǒng)一的格式。Syslog協(xié)議是發(fā)送者與接收者之間的通信,不需要額外的協(xié)調機制。Syslog消息格式由三部分組成,如下是一個Syslog消息[5]:
<30>Oct 9 22:33:20 hlfedoraauditd[1787]: The audit daemon is exiting.
其中:
“<30>”是PRI 部分;
“Oct 9 22:33:20 hlfedora”是HEADER部分;
“auditd[1787]: The audit daemon is exiting.”是MSG部分。
由于各個日志記錄描述事件的格式不同,從日志記錄收集到的事件,經過解析后,必須要采用統(tǒng)一的格式,以便于進一步數據挖掘處理。可以采用對日志分類編號的方法,對安全設備與其產生的日志統(tǒng)一進行標號,每一中日志的分類號為Signature ID,該安全設備的日志編號為Normalized ID。從而日志進行統(tǒng)一(Normalization)后的格式為:事件觸發(fā)時間(Frist time)、事件結束時間(Last time)、源地址(Source IP )、目的地址(Dest. IP)、源端口(Source Port)、目的端口(Dest. Port)、事件嚴重級別(Event Subtype)、唯一事件號(Signature ID),事件類別編號(Normalized ID)等等。使用對日志分類編號的統(tǒng)一化方法,可以簡化日志分析,避免針對日志內容分類的復雜性。
(2)關聯規(guī)則分析
關聯分析是在大規(guī)模數據集中尋找有趣關系的任務。這些關系可以有兩種形式:頻繁項集、關聯規(guī)則,頻繁項集(frequent item sets)是經常出現在一塊的信息日志集合,關聯規(guī)則(association rules)暗示兩種日志之間可能存在很強的關系。關聯分析的目標包括兩項:發(fā)現頻繁項集和發(fā)現關聯規(guī)則。首先需要找到頻繁項集,然后才能獲得關聯規(guī)則(正如前文所講,計算關聯規(guī)則的可信度需要用到頻繁項集的支持度)。Apriori算法是發(fā)現頻繁項集的一種方法。Apriori算法的兩個輸入參數分別是最小支持度和數據集。
五、結論
日志文件對于診斷和解決系統(tǒng)中的問題很有幫助,因為在Linux系統(tǒng)中運行的程序通常會把系統(tǒng)消息和錯誤消息寫入相應的日志文件,這樣系統(tǒng)一旦出現問題就會“有據可查”。此外,當主機遭受攻擊時,日志文件還可以幫助尋找攻擊者留下的痕跡,本文對基于Hadoop的Linux系統(tǒng)日志分析平臺的功能需求、總體框架設計以及主要功能的實現進行詳細闡述,為基于Hadoop的Linux系統(tǒng)日志分析平臺設計與實現提供參考。
參考文獻:
[1]王全民,王蕊,趙欽.Linux環(huán)境下的日志分析系統(tǒng)LASL[J].北京工業(yè)大學學報,2005(04):420-422.
作者簡介;;劉亮,長沙民政職業(yè)技術學院助教,研究生,碩士,研究方向:大數據技術與應用。