張春生,郭長杰,尹兆濤
基于大數據技術的IT基礎設施日志分析系統設計與實現
張春生,郭長杰,尹兆濤
針對IT運維人員對基礎設施各類日志進行統一管理和查詢的需求,分析、設計了基于Hadoop的日志系統功能架構、技術架構以及應用場景。系統通過Rsyslog統一收集各類日志數據,利用Hive對日志進行進一步清洗和轉換,將海量日志數據分類存儲于HDFS,按業務規則統計分析日志信息,將計算結果定時導入MySQL數據庫用于前端展示。系統實現了日志統一收集、分析處理、查詢告警等功能,為IT運維人員提前發現系統故障、排查安全隱患提供有效工具。
IT基礎設施;Hadoop;日志分析;系統架構
隨著企業上線應用的信息系統越來越多,數據中心的負載壓力越來越大,IT運維工作量和運維難度與日俱增。監測服務器產生的系統日志、網絡安全日志、應用程序日志是IT運維的基本手段,是排查、解析系統故障的重要措施,也是監控系統運行狀態的重要方法。IT基礎設施日志信息數據量大,位置分散,解析困難,對運維人員來說手工查看日志記錄,不僅效率低下,也難以發現日志中蘊含的有用信息。企業和科研機構利用各種技術手段對日志進行分析和管理,發現和解決了諸多隱性問題。龐松健等針對BOSS系統辦理業務出現問題及故障時的時間和效率問題建立日志分析管理平臺[1];羅新提出了防火墻日志分析系統的實現方案,給出了基于后臺程序進行日志數據處理及以B/S模式提供數據查詢的日志分析系統的設計和實現方法[2];Chen Hau Wang、Yong Qing Wei等人利用Hadoop工具搭建網絡日志分析平臺,提前發現各種網絡隱患[3][4];為提高對復雜ERP系統的審計效率,利用Petri網技術對數據庫日志進行分析[5]。通過日志分析能夠提前發現系統運行隱患,系統安全由事后控制變為事中、事前控制,實現從被動運維向主動運維的轉變。
數據中心產生的日志豐富多樣,包括系統日志、網絡日志、安全日志、應用程序日志等,蘊含了大量的潛在信息,如通過對登錄記錄、賬號創建、安全設置修改、事件清除等數據的分析能夠判斷是否存在病毒攻擊等安全隱患;對短時間內CPU、內存、文件系統等使用率進行歷史統計能夠發現設備故障;對配置變更類、接口狀態改變類、設備狀態改變類、安全類的日志數據進行統計和分析,能夠預測網絡中斷、網絡攻擊等安全問題。由于日志分析題量巨大,且數據結構多樣,善于處理海量數據的Hadoop等大數據技術可應用于日志分析[6-8]。本文針對IT基礎設施各類日志統一存儲、分析管理,分析了系統的需求,研究了系統功能、技術架構、應用場景的設計,實現集日志收集、日志分析、日志查詢,告警預測功能于一體的日志分析管理平臺,有利于信息系統問題與漏洞的及時排查、發現,有助于IT部門主動發現問題、主動處理問題、主動排除隱患,保障系統安全穩定運行,提高運維效率。
1.1業務需求
1)日志集成需求
目前運維人員查看日志方式為手動登陸到每臺服務器中進行查看,不僅效率低下,檢索功能弱而且難以挖掘日志中潛在信息,預防系統隱患。傳統運維模式下安全問題無法保證,系統被入侵后日志可以隨意被刪除,而分析人員卻無法獲取入侵信息,因此日志的存儲與查詢功能需求迫切。
2)統計與分析需求
隨著日志越來越多,對其進行分析與統計變得十分困難,導致運維人員不能及時從日志中發現系統漏洞和安全事件以及發生的規律。
3)展示需求
將預先定義的業務統計規則以報表、柱狀圖、餅圖、曲線圖等清晰直觀的展示方式呈現出來,運維人員可以清晰地了解設備的狀況,運行趨勢,為系統穩定運行提供決策支持。
1.2功能需求
1)日志統計查詢需求
查詢是日志分析系統的重要功能,包括支持按照日志類型查詢、關鍵業務參數精確與模糊查詢、按照設備查詢日志以及在指定時間范圍內的日志查詢信息,能夠有效幫助運維人員根據實際情況方便地讀取日志,并對其進行篩選提取出有價值信息。通過日志查詢能夠減輕大量的重復查找工作,使運維人員有更多的精力對系統進行更完整、及時的維護工作。
2)統計與分析需求
日志的統計分析功能可以為運維人員提供系統的某一時段、某一關鍵行為統計信息(如設備地址沖突的次數、設備異常流量、服務重啟次數),為系統維護、更換硬件,提早發現安全隱患提供重要依據,對系統運維有著重要作用。因此報表統計與分析功能需要具備以下幾點:(1)統計需求。系統的統計功能需要具備過濾、聚合、統計與分析能力,可以在全面采集設備日志信息的基礎上為運維人員提供實用、精簡、完備的統計信息。(2)報表需求。系統根據用戶統計分析的需求和目標自動生成柱狀圖、餅圖、曲線圖等直觀的統計報表(如設備接口狀態趨勢圖、地址沖突頻度排名表、設備溫度異常趨勢圖等)。
3)系統管理需求
(1)用戶管理:系統中的用戶需要對本系統進行操作,如用戶的增加、權限的增加與修改,支持基于用戶組的權限分配和管理。
(2)設備組管理:對主機進行管理,包括主機的各種信息(如主機名、所屬組、權限等),提供添加、修改、刪除管理設備IP地址及設備類型的功能。
(3)規則管理:通過管理平臺可以對報警規則、日志級別、采集策略進行設置。
2.1總體架構
日志分析平臺架構如圖1所示:

圖1 日志分析平臺整體架構
圖1包括日志數據收集,數據清洗、轉換,數據分析與存儲、數據展示4部分。其中日志收集層通過日志收集服務器采集各地機房產生的windows日志、linux日志、網絡日志、防火墻日志等,并對數據進行初步的清洗。在數據存儲層,通過Hive對日志數據進行進一步清洗和轉換,將海量日志數據分類存儲于HDFS中。根據業務規則對日志數據進行統計分析,并將統計結果導入到傳統數據庫中,最終將業務以圖表,報表等方式顯示系統指標、安全狀況、運行狀態等分析結果。
2.2功能架構
日志分析平臺主要功能分為日志收集、日志存儲分析以及前端展示模塊。
用于確定VAR模型最佳滯后期的統計量主要有LogL、LR、FPE、AIC、SC、HQ。表3為VAR模型0-4階的LogL、LR、FPE、AIC、SC、HQ值。
1)日志收集模塊
本模塊的功能為通過日志收集服務器,采用定時腳本,自動采集來自系統、網絡、安全、應用程序等方面的日志數據。對各種格式和類型的數據進行清理篩選,并將日志數據轉換成挖掘工具識別的格式進行歸類存儲。
2)日志存儲分析模塊
日志的分析挖掘功能是本系統的核心模塊,按業務規則對日志進行分析,且負責與Hadoop集群、數據庫進行交互。針對系統可能存在的業務漏洞,采用Hive建立業務分析模型,查找符合條件的日志數據,實現相應業務監控項異常數據的監測。該模塊還包含業務規則腳本管理調度,包括腳本上傳、任務配置管理、腳本執行狀態監控等,以保證本系統每日任務的定時執行。
3)前端展示模塊
本模塊的功能是對每天的挖掘結果詳情以及統計分析結果進行可視化顯示,展現形式包括數據形式、圖表形式,例如曲線圖以及餅圖等。如圖2所示:

圖2 日志分析平臺功能架構
除了展示數據之外還提供查詢功能,使用戶更快更直接地了解到各個業務異常數據的趨勢以及具體情況。
2.3技術架構
傳統的日志分析系統處理海量數據能力欠缺,傳統數據庫無法高效地分析處理日志文件,并且單一節點的計算能力已經不能滿足要求,而Hadoop支持大規模集群操作,在集群上可以方便地增加多至上千個節點并行計算,其計算速度會隨集群數量相應增加。因此技術架構采用Hadoop集群為系統核心。
采集日志數據的方式包括文本方式采集、SNMP Trap方式采集和syslog方式采集,各種方式的優缺點如表1所示:

表1 日志數據采集方式比較
推薦采用syslog方式進行日志數據采集。日志數據收集需要解決以下問題:統一日志存儲/切割方式使其便于Hadoop分析統計;集中管理海量日志數據;如何獲取日志增量;日志管理格式標準化。因此選擇功能更加完備的日志收集工具Rsyslog對日志進行收集。經過規范化、過濾、歸并和告警分析等處理后,以統一格式的日志形式進行集中存儲和管理。
采用HDFS進行數據存儲并利用Map/Reduce框架進行數據操作的模式具備高效的處理能力以及高擴展性和高容錯性。首先搭建服務器目錄共享服務,將日志收集目錄映射到Hadoop服務器中,在Hive中建立與日志格式對應的表空間,對日志標準字段進行映射。在Hadoop中以定時腳本將日志文件以統一對規則導入到Hive中進行存儲,并按照日期進行分區,用戶可以實現非常復雜的查詢,完成TB/PB級別的數據處理。
Hive具有對海量數據進行數據挖掘、離線分析等優勢,日志分析模塊采用Hive對HDFS中的數據進行清洗、分析,使用HQL語言以類似SQL的方式對日志文件進行Mapreduce并行處理。最終編寫sqoop腳本,通過spring的任務調度將業務統計規則定時執行,將經過處理的數據集合導入傳統數據庫Mysql中。前端展示采用Extjs+strust2+spring作為服務端架構,圖表采用EXTJSChart,用于柱狀圖、趨勢圖、餅狀圖的展示。如圖3所示:

圖3 日志分析平臺技術架構
3.1技術實現
構建Hadoop集群環境,設置多虛擬機,其中一臺作為master,其余作為slave。安裝Hadoop軟件,并設定主從節點。設定好Hadoop完全分布式環境后,啟動Hadoop相關服務,格式化namenode、secondarynamenode、tasktracker,接著用start-all.sh來啟動所有服務,包含namenode、datanode。
通過特定的業務規則,對日志處理、分析,獲取數據指標。日志分析系統執行步驟如下:
1)服務器每天產生的日志數據進行統一收集提交到HDFS中。
2)使用Hive、MapReduce對HDFS中的原始數據進行清洗。
3)對處理后的數據利用Hive進行統計分析,得到需要的指標,存儲在HDFS中。
4)利用Sqoop工具把數據從HDFS導出到mysql中。
5)將Mysql中的分析結果通過圖形、報表或記錄形式展示,便于查看與定位。
6)管理員對日志結果進行查看,對安全隱患,系統錯誤等進行排查。
3.2應用場景
日志分析系統通過對日志數據細致分析為運維人員提供統一的可視化查詢平臺,幫助IT管理員從海量日志數據中精確查找有用的事件信息、查看趨勢分析和歷史數據的統計,協助運維人員及時發現系統存在的問題,提前發現和規避災難,降低系統風險。與人工查看日志模式相比,運維人員能夠大大提高工作效率,將更多精力集中在系統故障分析和解決。
將日志進行統計,以表格和餅狀圖展示不同類型日志的數量,運維人員可根據問題類別查看相關日志,排除系統隱患。按照日志類型統計的數量進行排序,運維人員可以調出錯誤最多的機器進行檢查,分析原因,減少錯誤發生頻率,如圖4所示:


圖4 日志分析平臺統計分析示例
匯總日志信息,以柱狀圖、線形圖的形式展示日、周、月的日志量,顯示系統在某時間段內運行趨勢。使用線形圖展示,如圖5所示:

圖5 日志分析平臺統計分析示例
便于運維人員了解指定月份的系統問題數量的趨勢,排查異常數據,分析查看異常點,如圖6所示:

圖6 日志分析平臺統計分析示例
分析網絡日志,展示一周內被訪問IP次數的排名,一周流量趨勢圖,最近一天的網絡延遲趨勢以及被訪問端口的排名,如圖7所示:

圖7 網絡日志分析示例
分析堡壘機日志,列出最近被刪除的文件的詳細信息和異常操作的級別分類、數量。運維人員分析哪些操作為安全隱患,哪些操作影響系統穩定,提前制止和恢復系統,如:圖8所示:

圖8 堡壘機日志分析示例
IT基礎設施每天產生的日志蘊含了豐富的信息,通過信息技術對其進行分析挖掘能夠大大提高發現和預知系統隱患的能力,實現基于狀態的維修以及基于風險的維修,使IT運維由原來的被動運維向主動運維轉變。本文在需求分析的基礎上設計了系統的功能架構、以Hadoop為核心的技術架構,實現數據中心服務器各類日志數據的統一收集,經過統計分析以圖形、報表或記錄形式進行展示,便于管理員對日志分析結果進行查詢,對于保障系統安全穩定運行,提高數據中心優化控制能力具有一定的作用。下一步研究將集中在利用大數據技術對系統故障、安全等各類因素進行關聯分析,建立預測模型,提升系統智能化水平。
[6] 龐松建.Boss系統日志分析研究與應用[J].計算機工程應用技術,2013,9(28):6433-6436.
[7] 羅新.防火墻日志分析系統的設計與分析[J].Computer Era,2012,2:64-68.
[8] Chen HauWang ,Ching TsorngTsai, Chia Chen Fan, Shyan Ming Yuan. A Hadoop Based Weblog Analysis System[C].2014 7th International Conference onUbi-Media Computing and Workshops (UMEDIA), 12-14 July 2014:72 - 77.
[9] Yong Qing Wei, Guang Gang Zhou , Di Xu,Yu Chen. Design of the Web Log Analysis System Based on Hadoop[J].Advanced Materials Research,2014(926-930):2474-2477.
[10] 景波, 劉瑩, 陳耿.基于petri網的數據庫日志分析方法研究[J].計算機科學, 2014, 41 (6):250-253.
[11] Fengying Yang, Huichao Liu, Zhanping Zhao. Research on Cloud-Based Mass Log DataManagement Mechanism[J]. JOURNAL OF COMPUTERS,2014 ,9(6):1371-1377.
[12] MilindBhandare, Prof. KuntalBarua, VikasNagare, DynaneshwarEkhande, Rahul Pawar. Generic Log Analyzer Using HadoopMapreduceFramework[J].2013,3(9):603-607.
[13] 陳文波.基于Hadoop的日志分析系統[J].廣西大學學報:自然科學學報,2011,36(1):339-342.
Design and Implementation of Log Analysis System for IT Infrastructure Based on Big Data Technology
Zhang Chunsheng12,Guo Changjie2, Yin Zhaotao2
(1. Renmin University of China, Beijing 100872, China;2. Petrochina Planning and Engineering Institute, Beijing 100083, China;)
For managing and querying various types of logs for IT infrastructure, the functional architecture, technical architecture and application scenarios of the log analysis system based on Hadoop are analyzed and designed. Various logs are collected by Rsyslog, and then further cleaned and transformed by using Hive. The massive log data are stored into HDFS according to their classification, and are clustered, sequenced and analyzed on the basis of business rules. The calculation results are regularly imported to the MySQL database used for front-end display. The system realizes log collection, analysis, processing, query and other functions, and provides an effective tool for system administrators to identify system failures or security risks.
IT Infrastructure; Hadoop; Log Analysis; Constraint Satisfaction; System Architecture
TP311
A
1007-757X(2016)06-0049-04
2016.01.06)
張春生(1982-),男,河北雄縣人,中國人民大學,中國石油規劃總院,工程師,博士,研究方向:油氣行業信息技術應用、規劃,北
京,102206
郭長杰(1978-),男,日照市人,中國石油規劃總院,工程師,研究方向:油氣行業信息技術應用、規劃,北京,102206
尹兆濤(1980-),男,濰坊人,中國石油規劃總院,工程師,博士,研究方向:油氣行業信息技術應用、規劃,北京,102206