吳麗瓊,黃曉波,唐 樂(lè),肖建毅,唐亮亮
(廣東電力信息科技有限公司,廣州 510000)
隨著科技的發(fā)展與網(wǎng)絡(luò)的普及,社會(huì)中越來(lái)越多的工作能夠通過(guò)網(wǎng)絡(luò)應(yīng)用實(shí)現(xiàn)。在這個(gè)過(guò)程中,網(wǎng)絡(luò)管理員和系統(tǒng)管理員需要重點(diǎn)關(guān)注的是如何避免網(wǎng)絡(luò)應(yīng)用當(dāng)中存在的安全漏洞被黑客所挖掘和利用,破壞網(wǎng)絡(luò)連接或影響應(yīng)用運(yùn)行。結(jié)合系統(tǒng)運(yùn)維實(shí)際工作可知,運(yùn)維人員可通過(guò)日志記錄系統(tǒng)和運(yùn)行狀態(tài),定位和分析運(yùn)行故障,審計(jì)和回溯操作記錄。日志文件數(shù)據(jù)具有豐富而有效的信息量,但同時(shí)也具有巨大的信息體量。
在實(shí)際工作當(dāng)中,日志類型豐富、存儲(chǔ)格式多樣、獲取方式復(fù)雜,為了對(duì)日志數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析以從大量繁雜的日志數(shù)據(jù)中提取有價(jià)值的信息,系統(tǒng)運(yùn)維實(shí)現(xiàn)日志集中化管理、規(guī)范化清理和關(guān)鍵字搜索的需求日漸增長(zhǎng)。同時(shí),對(duì)于系統(tǒng)優(yōu)化來(lái)說(shuō),用戶增長(zhǎng)分析、產(chǎn)品優(yōu)化體驗(yàn)等也能夠從業(yè)務(wù)日志數(shù)據(jù)中獲取業(yè)務(wù)鏈關(guān)聯(lián)分析數(shù)據(jù)和用戶行為分析數(shù)據(jù),能夠有效地完善系統(tǒng)功能,提升用戶體驗(yàn)。
針對(duì)以上問(wèn)題,本文提出一種基于大數(shù)據(jù)日志智能分析模型的日志審計(jì)分析平臺(tái),從網(wǎng)絡(luò)安全和系統(tǒng)運(yùn)維的需求出發(fā),提出基于多元日志分析的智能安全感知算法,擁有日志切割提取、可視化多維分析等核心功能,采用B/S 架構(gòu),通過(guò)JDBC及SSH采集提取網(wǎng)絡(luò)、中間件、數(shù)據(jù)庫(kù)、設(shè)備等機(jī)器的實(shí)時(shí)日志數(shù)據(jù),通過(guò)前端WEB界面進(jìn)行分析與展示,實(shí)現(xiàn)統(tǒng)一管理、隱患分析、故障定位、安全預(yù)警等分析功能,收集多元日志數(shù)據(jù)并充分利用IT設(shè)備基礎(chǔ)結(jié)構(gòu)日志和和安全日志進(jìn)行數(shù)據(jù)分析和挖掘,給運(yùn)維人員提供價(jià)值最大化的日志數(shù)據(jù)信息。
針對(duì)操作系統(tǒng)和軟件的差異這一問(wèn)題,日志審計(jì)分析平臺(tái)內(nèi)置了識(shí)別算法,利用flume框架進(jìn)行日志抽取的,該框架能夠根據(jù)相關(guān)特征對(duì)不同系統(tǒng)以及不同的軟件運(yùn)行產(chǎn)生的日志文件進(jìn)行智能識(shí)別,實(shí)現(xiàn)快速模版匹配,實(shí)現(xiàn)高效的字段切割提取。例如,自動(dòng)識(shí)別庫(kù)功能,保障日志自動(dòng)識(shí)別入庫(kù),目前均已支持了常見(jiàn)的IT設(shè)備日志,具體如表1所示。
ElasticSearch 算法是一種基于Lucene 的開(kāi)源分布式算法,可以實(shí)現(xiàn)實(shí)時(shí)的數(shù)據(jù)搜索與分析,基于ElasticSearch算法開(kāi)發(fā)除了支持全文檢索,還可以使用字段、數(shù)值范圍檢索,指定時(shí)間范圍查詢的大數(shù)據(jù)檢索,使2億條數(shù)據(jù)可以達(dá)到秒級(jí)響應(yīng)。
日志審計(jì)分析平臺(tái)為數(shù)據(jù)的快速檢索設(shè)計(jì)了強(qiáng)大的搜索函數(shù),可以支持復(fù)雜的統(tǒng)計(jì)語(yǔ)句及強(qiáng)大的管理搜索功能,利用文本高效的讀寫性能和大數(shù)據(jù)的分布式架構(gòu),實(shí)現(xiàn)對(duì)數(shù)十億的數(shù)據(jù)、任意關(guān)鍵字的秒級(jí)搜索。支持在搜索結(jié)果界面直接展示分布圖,對(duì)結(jié)果進(jìn)行圖形化的下鉆展示和取樣等操作。針對(duì)文本分析設(shè)計(jì)的函數(shù)搜索分析語(yǔ)言,支持相關(guān)邏輯表達(dá)式的關(guān)聯(lián)運(yùn)算,同時(shí)也支持聚合函數(shù)的運(yùn)算(如count和sum)、字符串、數(shù)字、時(shí)間操作函數(shù)。提供業(yè)界強(qiáng)大的分析統(tǒng)計(jì)功能,同時(shí)系統(tǒng)還支持自定義的換行規(guī)則,包括自動(dòng),正則表達(dá)式、原始換行幾種方式,支持大小寫區(qū)分和不區(qū)分的短語(yǔ)搜索、多詞搜索以及實(shí)時(shí)模式等功能,滿足日志管理搜索查詢的所有需求??梢暬缑嫒鐖D1所示。日志審計(jì)分析平臺(tái)為了方便不同用戶的搜索需求,開(kāi)發(fā)了支持多種應(yīng)用模式的信息檢索功能。
表1 支持設(shè)備列表
圖1 搜索函數(shù)
日志審計(jì)分析平臺(tái)可以根據(jù)特殊字符對(duì)存儲(chǔ)的日志進(jìn)行可視化切割,特殊字符包括空格、豎線或用戶根據(jù)自己的需要自定義的字符等進(jìn)行自動(dòng)切割,也可以通過(guò)劃詞的方式自動(dòng)生成正則表達(dá)式的方式對(duì)日志進(jìn)行切割提取。此外,對(duì)于xml、json、API 接口等日志數(shù)據(jù)也可以實(shí)現(xiàn)自動(dòng)快速的切割接入。日志審計(jì)分析平臺(tái)采用的是自主研發(fā)的切割算法,支持隨時(shí)自定義和二次切割,能夠充分根據(jù)客戶要求進(jìn)行定制,實(shí)現(xiàn)特定需求。
日志審計(jì)分析平臺(tái)支持多維度日志分析,支持可視化拖拽組合報(bào)表生成。同時(shí),平臺(tái)支持對(duì)數(shù)據(jù)按多種不同維度進(jìn)行切片,便于用戶按需對(duì)數(shù)據(jù)進(jìn)行抽取和分析處理。
系統(tǒng)支持通過(guò)字段進(jìn)行配置報(bào)表功能,支持多種圖形選擇,并且可以對(duì)報(bào)表進(jìn)行修改、分享給其他用戶使用,可以將報(bào)表放置到儀表盤上進(jìn)行大屏展示,通過(guò)執(zhí)行計(jì)劃可以定期將報(bào)表內(nèi)容通過(guò)郵件的方式發(fā)送給用戶。如圖2所示。
支持對(duì)多個(gè)日志數(shù)據(jù)進(jìn)行關(guān)聯(lián)分析,通過(guò)配置關(guān)聯(lián)字段進(jìn)行展示分析,系統(tǒng)內(nèi)置對(duì)日志按照時(shí)間軸的方式進(jìn)行分析。除了針對(duì)日志的關(guān)鍵字進(jìn)行搜索和分析外,用戶還可以通過(guò)調(diào)用函數(shù)搜索語(yǔ)句中的函數(shù)實(shí)現(xiàn)各種靈活的邏輯判斷和數(shù)據(jù)統(tǒng)計(jì),為用戶帶來(lái)可以自定義的告警能力,滿足企業(yè)級(jí)用戶對(duì)各種特定場(chǎng)景的不同需求。除了最基礎(chǔ)的閾值和關(guān)鍵字告警以外,還分別支持針對(duì)事件數(shù)、字段數(shù)、連續(xù)統(tǒng)計(jì)和基線對(duì)比等高級(jí)告警功能。
圖2 報(bào)表
日志審計(jì)分析平臺(tái)使用基線預(yù)測(cè)相關(guān)算法,涉及ARIMA模型,下面將展開(kāi)闡述。一個(gè)完整的基線告警由基線計(jì)算,容忍線計(jì)算和產(chǎn)生警告的方法三部分組成。其中,基線的計(jì)算是整個(gè)流程的基礎(chǔ),基線計(jì)算的流程如圖3所示。
圖3 基線計(jì)算流程圖
基線,即數(shù)據(jù)變化的基準(zhǔn)線,用來(lái)描述某個(gè)數(shù)據(jù)的正常的變化范圍和波動(dòng)空間,如圖4 所示?;€告警也稱基線范圍,用來(lái)設(shè)置判定異常的界限,同時(shí)它是以基線為基礎(chǔ),上下浮動(dòng)所指定的值[1]。關(guān)于浮動(dòng)值的設(shè)定,可選擇百分比和絕對(duì)值。
基線的設(shè)置是以設(shè)備運(yùn)行的過(guò)程中所產(chǎn)生的數(shù)據(jù)為標(biāo)準(zhǔn),這個(gè)標(biāo)準(zhǔn)理論上是不會(huì)發(fā)生變化的,除非根據(jù)實(shí)際需求進(jìn)行人為更改。但是基線也并非是一成不變的,比如某網(wǎng)站的訪問(wèn)量可能在其搞活動(dòng)期間會(huì)大幅度上升,CPU 和內(nèi)存的利用率必然會(huì)有所提升,如果利用同樣的基線作為告警的標(biāo)準(zhǔn),則可能會(huì)出現(xiàn)誤判,引起不必要的人力和資源的消耗。所以根據(jù)實(shí)際情況,將告警的基線進(jìn)行改進(jìn)[3],改進(jìn)后的基線如圖5、6所示。
圖4 某個(gè)數(shù)據(jù)正常的變化范圍和波動(dòng)空間
圖5 基于告警線的改進(jìn)圖
圖6 動(dòng)態(tài)基線改進(jìn)圖
首先利用用戶系統(tǒng)所產(chǎn)生的日志文件對(duì)要計(jì)算的樣本進(jìn)行數(shù)據(jù)采集,然后將采集到的數(shù)據(jù)進(jìn)行降噪處理,除去多余的噪音,提高數(shù)據(jù)的純度。根據(jù)數(shù)據(jù)的分布情況進(jìn)行線性回歸分析,最終得到的那條回歸曲線即為基線[2]。
動(dòng)態(tài)基線告警的實(shí)現(xiàn)為服務(wù)器、中間件及數(shù)據(jù)庫(kù)的CPU、內(nèi)存利用率提供了一種專門且高效的管理方法,提高了各類軟件相互通信的支撐系統(tǒng)的可靠性,動(dòng)態(tài)基線告警系統(tǒng)將傳統(tǒng)1天2次的人工巡檢升級(jí)為系統(tǒng)7天24 h全天候智能監(jiān)控,故障監(jiān)控平均發(fā)現(xiàn)時(shí)間由之前的1.5 h 縮短為1 min 以內(nèi),這樣不僅增強(qiáng)了系統(tǒng)的可用性,也提高了運(yùn)維人員的工作效率。
2.2.1 ARIMA模型簡(jiǎn)介
ARIMA 模型全稱為自回歸積分滑動(dòng)平均模型(Autoregressive Integrated Moving Average Model,簡(jiǎn)記 ARIMA),AR是自回歸,p 為自回歸項(xiàng);MA 為移動(dòng)平均,q 為移動(dòng)平均項(xiàng)數(shù),d 為時(shí)間序列成為平穩(wěn)時(shí)所做的差分次數(shù)[4]。ARIMA模型在預(yù)測(cè)過(guò)程中不僅考慮了某一現(xiàn)象在時(shí)間序列上的依存性,又考慮了隨機(jī)波動(dòng)的干擾性,對(duì)于某一現(xiàn)象運(yùn)行短期趨勢(shì)的預(yù)測(cè)準(zhǔn)確率較高,是應(yīng)用廣泛的時(shí)間序列預(yù)測(cè)方法之一[5-6]。
下面簡(jiǎn)單介紹一下ARIMA模型中涉及到的幾個(gè)概念。
(1)平穩(wěn)隨機(jī)過(guò)程
若一個(gè)隨機(jī)過(guò)程m 階以下的矩的取值全部與時(shí)間無(wú)關(guān),則稱該過(guò)程為m 階平穩(wěn)過(guò)程。通常使用一階平穩(wěn)過(guò)程,即隨機(jī)過(guò)程xt的均值mt不隨時(shí)間變化。
(2)自回歸過(guò)程
式中:φi為自回歸參數(shù),ut為白噪聲過(guò)程。
則稱xt為p階自回歸過(guò)程,用AR(p)表示。
(3)移動(dòng)平均過(guò)程
式中:θi為自回歸參數(shù),ut為白噪聲過(guò)程。
則稱式(2)為q階移動(dòng)平均過(guò)程,記為MA(q)。之所以成為移動(dòng)平均,是因?yàn)閤t是由q+1 個(gè)ut及其滯后項(xiàng)加權(quán)構(gòu)成的。
(4)自回歸移動(dòng)平均過(guò)程
如果一個(gè)剔除均值和確定成分的線性隨機(jī)過(guò)程由自回歸和移動(dòng)平均兩部分共同構(gòu)成,則稱其為自回歸移動(dòng)平均過(guò)程,記為ARMA(p,q),表示如下:
(5)差分
時(shí)間序列變量的本期值與其滯后值相減的運(yùn)算稱為差分:
其中Δ 稱為一階差分算子。
二次一階差分表示為:
2.2.2 數(shù)據(jù)的平穩(wěn)性處理和白噪聲檢驗(yàn)
ARIMA 模型在建立時(shí)通常會(huì)先用ADF(Augmented Dickey-Fuller)單位根檢驗(yàn)來(lái)判斷數(shù)據(jù)的平穩(wěn)性。對(duì)于非平穩(wěn)性的時(shí)間序列,可以采取取對(duì)數(shù)處理或者進(jìn)行差分處理,然后再對(duì)修正后的數(shù)據(jù)進(jìn)行平穩(wěn)性的判斷。也可以采取差分的形式,而差分的次數(shù)就是ARIMA(p,d,q)模型中的階數(shù)d。差分的過(guò)程中的階數(shù)的選擇要適當(dāng),一般情況下差分的次數(shù)不會(huì)超過(guò)2次。處理完成的數(shù)據(jù)由原來(lái)的ARIMA(p,d,q)模型就轉(zhuǎn)化為ARIMA(p,q)模型[7]。若采集到的數(shù)據(jù)為時(shí)間序列之間彼此無(wú)關(guān)聯(lián)的平穩(wěn)時(shí)間序列,應(yīng)采取不同的方法。此時(shí)序列為純隨機(jī)序列,又被稱為白噪聲序列,它具有兩個(gè)非常重要的性質(zhì):(1)純隨機(jī)性;(2)方差齊性。純隨機(jī)性是判斷信息是否被提取完整的重要依據(jù),方差齊性則是指數(shù)據(jù)序列當(dāng)中所有的變量方差相等。只有當(dāng)方差齊性成立的時(shí)候,用最小二乘法得到的未知參數(shù)估計(jì)值才會(huì)準(zhǔn)確有效,否則無(wú)法準(zhǔn)確的估計(jì)參數(shù)值。純隨機(jī)性通常采用構(gòu)造檢驗(yàn)統(tǒng)計(jì)量,一般為Q 統(tǒng)計(jì)量。異方差的檢驗(yàn)方法采用懷特檢驗(yàn)法[8]。
2.2.3 參數(shù)分析
分析確定ARIMA 模型參數(shù)p、d、q 的方法有兩種:(1)方法一是通過(guò)分析人員對(duì)時(shí)間序列的充分了解,根據(jù)日志記錄數(shù)據(jù)所呈現(xiàn)出的趨勢(shì)確定差分次數(shù)d,使ARIMA 模型中的時(shí)間序列平穩(wěn)化,然后再使用自回歸函數(shù)圖來(lái)確定滑動(dòng)過(guò)程中平均的階數(shù)q,用偏自回歸函數(shù)圖來(lái)確定自回歸過(guò)程的階數(shù)p;(2)方法二直接使用擬合得到的信息準(zhǔn)則法確定階數(shù),這里的信息準(zhǔn)側(cè)有赤池信息準(zhǔn)則(AIC,Akaike Information Criterion)和貝葉斯信息準(zhǔn)則(BIC,Bayesian Information Criterion),它們的分析原理都是擬合殘差最小的階數(shù)p 和q 就是最合適的。
方法一確定模型參數(shù)p、d、q的方法要求分析者對(duì)時(shí)間序列的數(shù)據(jù)背景,以及對(duì)ARIMA模型原理都非常熟悉,才能夠確定出合適的參數(shù)結(jié)果;方法二則可以借助SPSS等統(tǒng)計(jì)分析工具快速嘗試各種p、d、q 的數(shù)值組合,然后比較AIC 或BIC兩種信息準(zhǔn)則,確定最終的ARIMA模型參數(shù)[8]。
對(duì)比兩種方法,方法一需要操作人員對(duì)數(shù)據(jù)和ARIMA模型原理有十分深入的了解,因此結(jié)果一般都更為精準(zhǔn),但是時(shí)間成本相對(duì)較大,時(shí)間成本也相對(duì)較高;方法二則通過(guò)借助計(jì)算機(jī)軟件輔助,快速得到結(jié)果,但是可能會(huì)遺漏一些重要信息,造成與真實(shí)結(jié)果的些許偏差。當(dāng)然最好是在分析的過(guò)程將兩種方法結(jié)合使用,先用計(jì)算機(jī)快速獲得結(jié)果,再對(duì)該結(jié)果進(jìn)行改進(jìn)確認(rèn),以實(shí)現(xiàn)參數(shù)的最優(yōu)解[8]。
日志審計(jì)分析平臺(tái)使用基于多元日志分析的智能安全感知算法,并結(jié)合經(jīng)典的ARIMA模型使平臺(tái)能夠?qū)Χ喾N系統(tǒng)產(chǎn)生的多元日志從精準(zhǔn)的分段切割,數(shù)據(jù)的檢索分析到對(duì)未來(lái)的數(shù)據(jù)進(jìn)行預(yù)測(cè)估計(jì),可以以圖表的形式形象地將結(jié)果呈現(xiàn)在用戶面前,避免了原來(lái)純文字或數(shù)據(jù)所帶來(lái)的抽象。目前平臺(tái)已經(jīng)實(shí)現(xiàn)智能化的運(yùn)維分析,進(jìn)一步將日志審計(jì)分析平臺(tái)繼續(xù)研發(fā)優(yōu)化,從智能和安全的角度出發(fā),完善系統(tǒng)功能,以求滿足廣大用戶多樣的需求,進(jìn)一步提升智能化運(yùn)維和保障運(yùn)維安全性。