葛志輝,譚 悅,李陶深,葉 進(jìn)
(廣西大學(xué) 計(jì)算機(jī)與電子信息學(xué)院,南寧 530004)
隨著現(xiàn)代大型系統(tǒng)的應(yīng)用,各種支持全天侯在線服務(wù)的場(chǎng)景越來越多.然而,現(xiàn)代大型系統(tǒng)在為人們提供更好服務(wù)質(zhì)量的同時(shí),其對(duì)于系統(tǒng)的安全性需求變得愈加嚴(yán)苛.由于現(xiàn)代大型系統(tǒng)是全天候在線運(yùn)行的,所有發(fā)生在這些系統(tǒng)中的任何異常事件,如由攻擊引起的計(jì)算機(jī)或網(wǎng)絡(luò)服務(wù)中斷的行為,都有可能使系統(tǒng)崩潰和造成巨大的經(jīng)濟(jì)損失[1].為了能及時(shí)發(fā)現(xiàn)這些阻礙系統(tǒng)正常運(yùn)行的異常行為,避免造成更大的損失和影響,因此需要對(duì)系統(tǒng)進(jìn)行異常行為的檢測(cè)和潛在安全隱患的挖掘[2].
系統(tǒng)日志詳細(xì)地記錄了服務(wù)器、應(yīng)用軟件等相關(guān)活動(dòng)中必要的信息,是系統(tǒng)異常檢測(cè)的主要數(shù)據(jù)來源.對(duì)于傳統(tǒng)的獨(dú)立系統(tǒng),管理人員通常采用人工檢查的方式來獲得表明故障的日志.然而,隨著現(xiàn)代大型系統(tǒng)的普及,日志的復(fù)雜性增大,在此背景下,直接依靠人力檢查的傳統(tǒng)異常檢測(cè)方式變得不再現(xiàn)實(shí).為了滿足現(xiàn)代大型系統(tǒng)的異常檢測(cè)需求,以數(shù)據(jù)驅(qū)動(dòng)為核心的自動(dòng)日志分析技術(shù)得到了廣泛的研究和發(fā)展.其通過自動(dòng)化地學(xué)習(xí)日志模式和分析內(nèi)在聯(lián)系,從而有效識(shí)別出日志中的潛在異常.然而,現(xiàn)有的方法大多只是在單一視角通過特定的異常特征對(duì)日志直接進(jìn)行分析,缺少在多視角下對(duì)日志的深度分析及對(duì)異常日志所包含的信息量的利用.此外,單階段的單一技術(shù)檢測(cè)方式雖然在理論上可行,但是在實(shí)際應(yīng)用中還存在有計(jì)算困難、效率低等局限性.針對(duì)以上情況,我們提出了一種融合Canopy算法和譜聚類技術(shù)的多階段日志異常檢測(cè)方法CSCM,該方法通過提取日志中的信息量和在多視角下分析日志間的關(guān)聯(lián)性來實(shí)現(xiàn)異常數(shù)據(jù)的有效挖掘.本文的貢獻(xiàn)點(diǎn)如下:
1)提出引入信息熵以提取日志中蘊(yùn)含的信息量,并基于信息熵理論將原始日志集表征為多維加權(quán)信息點(diǎn).
2)提出了一種預(yù)聚類下細(xì)化分析與多視角異常提取相結(jié)合的分階段多技術(shù)的檢測(cè)方式.首先,通過Canopy進(jìn)行快速預(yù)聚類,提取子集重疊部分?jǐn)?shù)據(jù)以減少后續(xù)計(jì)算量;其次,利用譜聚類技術(shù)對(duì)提取的數(shù)據(jù)進(jìn)行細(xì)化分析,并結(jié)合預(yù)聚類結(jié)果進(jìn)行優(yōu)化,以解決譜聚類第2階段中的初始化問題;最后,針對(duì)聚類后的數(shù)據(jù)進(jìn)行多視角下的異常提取.
3)提出了多視角下異常日志的提取方法.通過在全局與局部視角下對(duì)日志間的內(nèi)部關(guān)聯(lián)進(jìn)行分析,分別提出顯性異常對(duì)象與隱性異常對(duì)象的定義,并結(jié)合稀疏簇各質(zhì)心特征向量的分析及信息點(diǎn)異常度指標(biāo)的計(jì)算,最終實(shí)現(xiàn)了異常數(shù)據(jù)的提取.
基于自動(dòng)日志分析的異常檢測(cè)技術(shù)有多種實(shí)現(xiàn)方式,主要可分為兩大維度:監(jiān)督類的方法和無監(jiān)督的方法.其中,監(jiān)督類的方法通常依賴標(biāo)簽日志集(如正?;虍惓?進(jìn)行檢測(cè).例如,Reidemeister等人[3]通過學(xué)習(xí)訓(xùn)練已知標(biāo)簽的日志集來構(gòu)造C4.5決策樹分類器,從而實(shí)現(xiàn)系統(tǒng)日志故障的自動(dòng)化檢測(cè).Kimura等人[4]通過訓(xùn)練已知標(biāo)簽的日志矢量數(shù)據(jù)來構(gòu)建高斯核支持向量機(jī),用以檢測(cè)系統(tǒng)可能發(fā)生的故障.但是,由于標(biāo)簽日志在現(xiàn)實(shí)中難以獲取,所以監(jiān)督類的方法在實(shí)際中的應(yīng)用存在一定的局限.與監(jiān)督類方法不同,無監(jiān)督的方法由于不需要先驗(yàn)知識(shí),因此可以很好的應(yīng)用于真實(shí)的生產(chǎn)環(huán)境.其檢測(cè)思想是通過分析數(shù)據(jù)間的關(guān)聯(lián)性來構(gòu)造正常行為基準(zhǔn),而偏離基準(zhǔn)的數(shù)據(jù)將被視為異常.例如,Lin等人[5]設(shè)計(jì)了一種基于層次聚類的異常檢測(cè)方法LogCluster,其通過知識(shí)庫(kù)的使用來構(gòu)建日志行為基準(zhǔn),用以檢測(cè)偏離基準(zhǔn)的異常日志.Chen[6]等人提出了一種基于增強(qiáng)型DBSCAN聚類的異常檢測(cè)方法.其通過對(duì)比正常日志的行為輪廓來進(jìn)行異常的識(shí)別.然而,這些方法只采用了單一的技術(shù)方法進(jìn)行分析,隨著日志數(shù)據(jù)的復(fù)雜性增大,由于技術(shù)本身的局限性,可能會(huì)出現(xiàn)檢測(cè)效率低或準(zhǔn)確度不夠的情況.為了解決以上的挑戰(zhàn),最近的研究逐漸趨向于分階段多技術(shù)相結(jié)合的方式,即通過在不同的階段中結(jié)合不同的技術(shù)來解決單一技術(shù)不能滿足檢測(cè)效率和準(zhǔn)確度平衡的問題.因此,在基于自動(dòng)日志分析的異常檢測(cè)研究中考慮分階段多技術(shù)相結(jié)合的方式對(duì)于檢測(cè)性能的提升有著重要意義.
另一類工作則集中在結(jié)合不同技術(shù)來分析日志文件的異常檢測(cè)研究.其通常采取的階段方式為:
1)初步篩選處理數(shù)據(jù),以輔助后續(xù)分析;
2)對(duì)初篩后的數(shù)據(jù)進(jìn)行分析,以識(shí)別異常.
例如,Ji等人[7]通過結(jié)合低維可視化技術(shù)PCA和K-Means聚類算法實(shí)現(xiàn)了DNS日志的異常檢測(cè).其采取先降維后聚類的階段方式有效的解決了高維日志數(shù)據(jù)計(jì)算困難的問題.Hajamydeen等人[8]提出兩階段的檢測(cè)策略,通過結(jié)合兩種聚類技術(shù)實(shí)現(xiàn)了對(duì)異構(gòu)日志數(shù)據(jù)的異常檢測(cè).Liu等人[9]提出了一種融合了K-prototype聚類和K-NN分類技術(shù)的日志異常檢測(cè)方法.該方法通過采用“聚類-過濾-細(xì)化”的多階段異常檢測(cè)方式有效的減少了待檢測(cè)的日志數(shù)據(jù).然而,這些工作多數(shù)只針對(duì)于特定的應(yīng)用服務(wù)場(chǎng)景.此外,它們大多沒有關(guān)注到日志本身所蘊(yùn)含的信息量及對(duì)異常候選日志多視角分析,使得方法在檢測(cè)性能上還有待提升.為了解決上述挑戰(zhàn),受到相關(guān)啟發(fā),本文通過利用日志中的信息量和分析多視角下的日志特性,提出了一種結(jié)合Canopy算法和譜聚類技術(shù)的多階段異常檢測(cè)方法CSCM( Model combining Canopy and Spectral Clustering),用以進(jìn)一步提高異常檢測(cè)性能.
為了提升模型的異常檢測(cè)性能,本文設(shè)計(jì)了一個(gè)基于自動(dòng)日志分析的異常檢測(cè)模型CSCM.該模型包含了多個(gè)檢測(cè)階段,分別為基于信息熵的數(shù)值化過程、Canopy預(yù)聚類分析、譜聚類細(xì)化分析和多視角異常對(duì)象提取.CSCM模型的檢測(cè)工作流程如圖1所示.
圖1 CSCM模型檢測(cè)工作流程圖Fig.1 Workflow of the CSCM model
原始日志通常為無結(jié)構(gòu)化的文本數(shù)據(jù),不利于檢測(cè)模型的識(shí)別.為了能應(yīng)用于檢測(cè)模型的輸入,原始日志需要進(jìn)行日志的數(shù)值化過程.首先,對(duì)于無結(jié)構(gòu)化的原始日志,采用文獻(xiàn)[10]中的方法對(duì)其進(jìn)行日志解析,形成結(jié)構(gòu)化的日志文件,并生成日志事件.然后,通過分組技術(shù)劃分日志文件,構(gòu)建日志事件計(jì)數(shù)矩陣.
信息熵理論通常被用于度量事物所包含的信息量,因此,為了能提取出日志中所包含的信息,提出在數(shù)值化過程中引入信息熵.認(rèn)為不同的日志事件在異常識(shí)別上具有不同的重要性,其能提供的信息量也是不相同的.對(duì)于發(fā)生概率較低的日志事件,例如,異常事件,其比經(jīng)常發(fā)生的正常日志事件更能提供較多的信息量.為了能最大程度的表征出日志中的信息,我們?yōu)槊總€(gè)日志事件計(jì)算其信息熵,并采用熵權(quán)法[11]為日志事件進(jìn)行加權(quán).
式(1)從概率統(tǒng)計(jì)方面給出了信息熵的定義:
(1)
其中,H(X)為信息熵,X為隨機(jī)變量,p(x)代表X中發(fā)生隨機(jī)事件x的概率.根據(jù)上述定義,引入信息熵為日志事件Ej進(jìn)行加權(quán),方法如式(2)所示:
(2)
其中,Wj為日志事件Ej的權(quán)重,m為事件類型數(shù),H(Ej)為日志事件Ej的信息熵.H(Ej)的取值如式(3)所示:
(3)
其中,n為日志序列總數(shù),c為歸一化系數(shù),p(Eij)表示在全部日志序列的Ej事件中,第i條日志序列中Ej事件發(fā)生的概率.c和p(Eij)的取值如式(4)、式(5)所示:
c=(lnn)-1
(4)
(5)
其中,Dij為第i條日志序列上Ej事件發(fā)生的次數(shù).
在所有的事件權(quán)重計(jì)算完成后,將會(huì)生成日志事件權(quán)重矢量W,W=(W1,W2,W3,…,Wm),然后,利用事件權(quán)重矢量W為計(jì)數(shù)矩陣進(jìn)行加權(quán).最終,可將原始無結(jié)構(gòu)化的文本日志數(shù)值化為m維空間下的多維加權(quán)信息點(diǎn),以用于檢測(cè)模型的輸入識(shí)別.
通常,數(shù)據(jù)的規(guī)模和模型的初始值是影響異常檢測(cè)模型的檢測(cè)性能的重要因素.在數(shù)據(jù)量大的情形下,檢測(cè)模型容易出現(xiàn)計(jì)算困難,檢測(cè)時(shí)間延長(zhǎng)的現(xiàn)象.同時(shí),不合理的初始值及繁瑣的初始化過程也會(huì)降低模型的檢測(cè)效果和加大計(jì)算量.為了提升模型的檢測(cè)性能,可以從減少數(shù)據(jù)量和優(yōu)化初始值選取的角度進(jìn)行分析.其中,減少數(shù)據(jù)量的方向之一是可以采用針對(duì)大規(guī)模數(shù)據(jù)處理的聚類算法先對(duì)數(shù)據(jù)進(jìn)行預(yù)聚類,然后,再針對(duì)聚類后的簇集進(jìn)行后續(xù)的處理.這類算法往往執(zhí)行速度快,計(jì)算簡(jiǎn)單,可以將大規(guī)模的數(shù)據(jù)快速聚集成簇,使得研究對(duì)象從單個(gè)的數(shù)據(jù)點(diǎn)轉(zhuǎn)換成包含多個(gè)相似點(diǎn)的簇集,從而減少后續(xù)需要分析的數(shù)據(jù).
Canopy是一種計(jì)算復(fù)雜度較低、執(zhí)行速度較快的聚類算法,可以快速地將海量高維數(shù)據(jù)聚類成簇,十分適用于數(shù)據(jù)的預(yù)聚類階段[11].其算法的基本思想是:通過初始定義中心點(diǎn)和區(qū)域半徑T1、T2,將數(shù)據(jù)集簡(jiǎn)單快速地粗聚類成若干可重疊的子集,如圖2所示.Canopy算法步驟如下:
圖2 Canopy聚類生成圖Fig.2 Result of Canopy clustering
Begin
Step1.從數(shù)據(jù)列表中任取一個(gè)樣本P作為第一個(gè)Canopy質(zhì)心,并將樣本P從數(shù)據(jù)列表中刪除;
Step2.從數(shù)據(jù)列表中任取一個(gè)樣本Q,用低成本的方式快速計(jì)算Q到所有Canopy質(zhì)心的距離,選擇其中最小的距離D;
Step3.若T2
Step4.重復(fù)步驟2、步驟3,直至數(shù)據(jù)列表為空.
End
由于Canopy算法對(duì)數(shù)據(jù)執(zhí)行的是“粗聚類”,其精度較低,故聚類后的簇集還需進(jìn)一步處理.為了提高模型的檢測(cè)效率和減少后續(xù)的計(jì)算量,我們只提取Canopy子集中相互交疊部分的數(shù)據(jù)進(jìn)行下一步的處理.這是因?yàn)榻化B部分的數(shù)據(jù)被Canopy粗聚類到了多個(gè)子集中,是屬于多個(gè)子集的共同元素,需要后續(xù)的進(jìn)一步劃分.而未處于交疊處的數(shù)據(jù)由于只歸屬于某一子集,所以無需額外的處理分析.因此,通過Canopy的預(yù)聚類過程及對(duì)子集交疊處數(shù)據(jù)的提取,可以減少后續(xù)階段的計(jì)算量,避免可確認(rèn)數(shù)據(jù)的重復(fù)計(jì)算,從而提高模型的檢測(cè)效率.
在提取出Canopy子集交疊處的數(shù)據(jù)之后,需要采用聚類精度更高的算法對(duì)提取的數(shù)據(jù)進(jìn)行進(jìn)一步劃分,以便于后續(xù)的異常提取,故本文采用譜聚類算法進(jìn)行細(xì)化分析.
譜聚類是一種從譜圖理論中發(fā)展出來的聚類算法,其主要思想是將聚類問題轉(zhuǎn)化為最優(yōu)子圖的劃分問題[13].相較于傳統(tǒng)的聚類算法,譜聚類在多維稀疏數(shù)據(jù)上的表現(xiàn)十分良好.譜聚類算法可分為兩個(gè)階段.第1階段:根據(jù)數(shù)據(jù)構(gòu)造相似矩陣并計(jì)算得到Laplacian矩陣,將Laplacian矩陣進(jìn)行特征分解獲得相應(yīng)的特征向量;第2階段:采用K-Means算法對(duì)特征向量進(jìn)行聚類.
然而,譜聚類算法的穩(wěn)定性極易受到第2階段K-Means算法的影響[14],其主要表現(xiàn)在K-Means算法對(duì)于初始中心點(diǎn)及簇?cái)?shù)k值的敏感性上.K-Means復(fù)雜度如式(6)所示:
K-Means_time=O(mndk)
(6)
其中,m為迭代次數(shù),n為數(shù)據(jù)點(diǎn)的個(gè)數(shù),d為數(shù)據(jù)維度和k為簇集數(shù).由于K-Means的初始值是完全隨機(jī)選取的,k值過多的枚舉嘗試和不合理初始中心點(diǎn)將會(huì)造成算法的迭代次數(shù)m增大,從而導(dǎo)致計(jì)算量增加和聚類效果不穩(wěn)定.為了減少譜聚類算法中的不穩(wěn)定因素,需要對(duì)譜聚類第2階段中的初始化問題進(jìn)行優(yōu)化.
此時(shí),由于已經(jīng)對(duì)數(shù)據(jù)進(jìn)行了Canopy的預(yù)聚類分析,所以可以結(jié)合預(yù)聚類的結(jié)果對(duì)第2階段初始值的選取進(jìn)行優(yōu)化,從而達(dá)到提高譜聚類算法穩(wěn)定性的目的.我們將Canopy預(yù)聚類生成的簇?cái)?shù)作為譜聚類第2階段中K-Means算法的k值,已生成的聚類中心作為譜聚類第2階段中K-Means的初始中心點(diǎn).通過結(jié)合Canopy預(yù)聚類結(jié)果獲取相應(yīng)的初始值,不僅可以增加初始值的可信度和算法的穩(wěn)定性,還能降低因過多的枚舉嘗試和迭代計(jì)算造成的額外計(jì)算量.從優(yōu)化初始值選取的角度減少模型的計(jì)算量,并提高模型的整體穩(wěn)定性和檢測(cè)精度.優(yōu)化后的譜聚類算法的細(xì)化步驟如下:
Begin
Step1.將Canopy預(yù)聚類生成的聚類中心作為聚類初始中心點(diǎn);
Step2.取任意兩個(gè)canopy子集交疊部分的數(shù)據(jù),并將其從數(shù)據(jù)列表中刪除;
Step3.為交疊數(shù)據(jù)構(gòu)造相似矩陣,通過Laplacian矩陣進(jìn)行特征分解并獲得相應(yīng)的特征向量;
Step4.將特征向量分配到最近的簇集,更新聚類中心;
Step5.重復(fù)步驟2、3、4,直至列表中交疊數(shù)據(jù)為空.
End
在譜聚類完成之后,交疊處的數(shù)據(jù)被細(xì)化地聚類到了每一簇中.此時(shí),為了能更好的服務(wù)于后續(xù)異常對(duì)象的提取,針對(duì)聚類后的簇集,將根據(jù)簇集所包含數(shù)據(jù)點(diǎn)的規(guī)模進(jìn)行密集簇和稀疏簇的劃分.劃分閾值為Q,Q=N/K,其中,N為數(shù)據(jù)點(diǎn)的總數(shù),K為生成的簇?cái)?shù).若簇中數(shù)據(jù)點(diǎn)的規(guī)模不小于閾值Q,該簇將被劃分為密集簇,反之,則為稀疏簇.
異常對(duì)象通常被定義為與其它數(shù)據(jù)顯著不同,并且偏離其他數(shù)據(jù)預(yù)期典型行為的對(duì)象.為了能充分識(shí)別出異常對(duì)象,本文根據(jù)不同視角下的日志分析,提出顯性異常對(duì)象與隱性異常對(duì)象的定義.將全局視角下明顯偏離數(shù)據(jù)集預(yù)期典型行為的對(duì)象定義為顯性異常對(duì)象,將局部視角下相對(duì)偏離數(shù)據(jù)集預(yù)期典型行為的對(duì)象定義為隱性異常對(duì)象,用以實(shí)現(xiàn)多視角下異常對(duì)象的提取.
通常,服務(wù)器在大多數(shù)的情況下為正常的運(yùn)行狀態(tài),因此,其生成的日志數(shù)據(jù)往往是由大量表征正常運(yùn)行的日志和少量表征異常狀況的日志組成.而這些表征正常運(yùn)行的日志在行為上大多是高度相關(guān)的,所以在聚類上通常會(huì)表現(xiàn)為大規(guī)模的密集集群,而異常日志由于與日志集中大多數(shù)正常日志的行為偏離,故會(huì)被聚類成小規(guī)模的稀疏簇[15].由于密集簇代表了日志集中大量日志的預(yù)期正常行為,因此,只需針對(duì)稀疏簇進(jìn)行異常對(duì)象的分析與判定.此外,質(zhì)心點(diǎn)通常代表了一個(gè)簇的總體向量特征,可以通過對(duì)稀疏簇各質(zhì)心點(diǎn)特征向量的分析來幫助實(shí)現(xiàn)異常對(duì)象的提取.
3.4.1 顯性異常對(duì)象的提取
基于顯性異常對(duì)象的定義,將質(zhì)心為異常特征向量的稀疏簇中的所有數(shù)據(jù)均識(shí)別為顯性異常對(duì)象.這是因?yàn)檫@一部分?jǐn)?shù)據(jù)的總體向量特征為異常狀態(tài),且在全局的視角下,可以觀察到其明顯地偏離于密集簇的大量典型正常行為.例如,某個(gè)時(shí)間段內(nèi)的連續(xù)身份認(rèn)證失敗或頻繁斷開連接等規(guī)模性較小的異常行為,通過聚類,將會(huì)被聚集成包含全部異常點(diǎn)且質(zhì)心為異常狀態(tài)的稀疏簇.因此,通過對(duì)稀疏簇異常質(zhì)心的分析,可以快速有效識(shí)別出顯性的異常對(duì)象.
3.4.2 隱性異常對(duì)象的提取
由于稀疏簇集中也會(huì)存在由正常行為聚集成的小規(guī)模簇,為了能檢測(cè)出局部視角下相對(duì)偏離的隱性異常對(duì)象,我們?yōu)橘|(zhì)心是正常特性向量的稀疏簇中每個(gè)數(shù)據(jù)點(diǎn)分配了一個(gè)基于局部異常因子(LOF)計(jì)算的異常度指標(biāo)LA.LA通過對(duì)比一個(gè)點(diǎn)與其鄰居的局部可達(dá)密度的情況來獲取該點(diǎn)的異常程度.因此,若一個(gè)點(diǎn)的局部可達(dá)密度與其鄰居們的局部可達(dá)密度均值的對(duì)比值越大,該點(diǎn)的局部異常因子就越大,則它的異常度指標(biāo)LA也就越高.
設(shè)o是簇中的任意一點(diǎn),Nk(o)為點(diǎn)o的k距離領(lǐng)域,p為k近鄰中的點(diǎn),則點(diǎn)o的異常度計(jì)算如式(7)所示:
(7)
其中,ρ(o)表示點(diǎn)o的局部可達(dá)密度,如式(8)所示:
(8)
其中,d(o,p)為點(diǎn)o與點(diǎn)p的距離.
在為簇中的各數(shù)據(jù)點(diǎn)計(jì)算了異常度指標(biāo)LA之后,我們?cè)O(shè)定了異常度閾值用以識(shí)別隱性的異常對(duì)象.若簇中數(shù)據(jù)點(diǎn)的異常度大于閾值,則該數(shù)據(jù)點(diǎn)將被識(shí)別為隱性異常對(duì)象.這是因?yàn)樵擖c(diǎn)的局部可達(dá)密度與其鄰居的顯著不同,在局部的視角下,與鄰居點(diǎn)較為疏遠(yuǎn),因此,極有可能為隱性的異常對(duì)象.
實(shí)驗(yàn)數(shù)據(jù)的來源是來自Hadoop分布式文件系統(tǒng)日志的公開數(shù)據(jù)集[1].所有的日志都被原始領(lǐng)域?qū)<沂謩?dòng)標(biāo)注了標(biāo)簽.原始的日志數(shù)據(jù)集經(jīng)日志解析后生成結(jié)構(gòu)化日志文件集,格式如下:< LineID | Date | Time | Pid | Lever | Component | Content | EventID | EventTemplate >,其中,LineID、Pid和EventID分別為數(shù)據(jù)塊、線程和事件的id,Date和Time記錄了日志的日期時(shí)間,Lever代表日志等級(jí),Componet為日志組件信息,Content為日志具體內(nèi)容,EventTemplate為生成事件的模板.最終,通過分組技術(shù)將507,645條日志劃分成了34,558條的日志序列,其中,包含了異常日志序列1747條.
模型性能的分析通常有多種評(píng)估方式.為了能客觀評(píng)價(jià)CSCM方法的性能,實(shí)驗(yàn)將從CSCM的聚類過程和異常提取進(jìn)行評(píng)估.其中,聚類模型的有效性可通過內(nèi)部或外部指標(biāo)進(jìn)行評(píng)估,而DB指數(shù)作為聚類效果評(píng)估的內(nèi)部指標(biāo),通過對(duì)樣本的簇內(nèi)離散度與各簇之間的距離進(jìn)行分析,可以很好的評(píng)估模型在聚類過程中的聚類效果.DB指數(shù)的定義如式(9)所示:
(9)
其中,k為簇?cái)?shù),Mi為簇中的樣本到其簇中心Ci的平均距離,Cij為簇Ci和Cj的距離.因此,聚類模型的DB指數(shù)越小,表示其生成的簇之間的相似度越低,該模型的聚類效果就越好.
而在異常檢測(cè)的領(lǐng)域,精確度(Precision)、召回率(Recall)和綜合評(píng)價(jià)指標(biāo)(F1-measure)通常被用于評(píng)估檢測(cè)模型的性能.其中,精確度是描述被提取出來的異常對(duì)象中真實(shí)異常所占的比例;召回率是描述檢測(cè)出的真實(shí)異常在總異常中的占比;綜合評(píng)價(jià)指標(biāo)是精確度和召回率的加權(quán)調(diào)和平均.3種指標(biāo)的定義如式(10)-式(12):
(10)
(11)
(12)
其中,真陽(yáng)性(TP)代表了被正確標(biāo)識(shí)為異常的異常對(duì)象數(shù)目,假陽(yáng)性(FP)表示了被錯(cuò)誤識(shí)別為異常的正常對(duì)象數(shù)目,假陰性(FN)為被錯(cuò)誤標(biāo)識(shí)為正常的異常對(duì)象數(shù)量.
實(shí)驗(yàn)將使用內(nèi)部評(píng)價(jià)指標(biāo)(DB指數(shù))來評(píng)價(jià)CSCM聚類過程的性能,使用3種檢測(cè)評(píng)價(jià)指標(biāo)(Precision、Recall、F1-measure)和運(yùn)行時(shí)間(Runtime)來評(píng)估CSCM異常提取的性能.
4.3.1 聚類過程性能評(píng)估結(jié)果
為了證明傳統(tǒng)的K-Means聚類算法在初始值上的敏感性,我們?cè)谌罩炯镫S機(jī)抽取了100k的數(shù)據(jù)進(jìn)行K-Means聚類,并采用公式(9)計(jì)算其DB指數(shù).初始值k的選值對(duì)DB指數(shù)的影響如圖3所示.
從圖3中可以發(fā)現(xiàn),傳統(tǒng)的K-Means算法面對(duì)不同的k值進(jìn)行聚類時(shí),其DB指數(shù)性能會(huì)隨著k值的選值出現(xiàn)較大幅度的波動(dòng).其中,當(dāng)K-Means算法取到較為合理的k值時(shí)(k=11),此時(shí),算法的聚類效果最佳(DB=0.238),其初始中心點(diǎn)能夠均勻分布,有效的代表各簇的類別;當(dāng)選取到不合理的k值時(shí)(k=5),此時(shí),K-Means算法的聚類效果較差(DB=0.639),其初始中心點(diǎn)可能密集分布,不能有效的表征各簇的類別.因此,與最佳的聚類效果相比,DB指數(shù)的變化趨勢(shì)較大,表現(xiàn)出了K-Means算法對(duì)于初始值的敏感性.
圖3 K-Means初始值敏感圖Fig.3 Sensitivity of K-Means initialization
為了進(jìn)一步驗(yàn)證CSCM方法在聚類過程的有效性,將本文提出的CSCM方法與K-Means聚類算法和譜聚類算法進(jìn)行了比較.從HDFS數(shù)據(jù)集中隨機(jī)選取了5組不同規(guī)模的數(shù)據(jù),分別為Test1、Test2、Test3、Test4和Test5,其對(duì)應(yīng)的數(shù)據(jù)規(guī)模為10k、50k、100k、200k和500k.實(shí)驗(yàn)評(píng)估結(jié)果如圖4所示.
圖4 聚類過程性能評(píng)估圖Fig.4 Performance evaluation of clustering process
從圖4中可以發(fā)現(xiàn),當(dāng)數(shù)據(jù)量較小時(shí),3種算法的DB指數(shù)并沒有表現(xiàn)出較大的性能差異.其中,譜聚類和CSCM方法要略優(yōu)于K-Means算法,這是由于譜聚類和CSCM方法對(duì)于高維空間下任意形狀數(shù)據(jù)的聚類表現(xiàn)較為良好.而與這兩種算法不同,K-Means算法在面對(duì)高維稀疏的數(shù)據(jù)時(shí)容易受到“維度災(zāi)難”效應(yīng)的影響,且受到凸型數(shù)據(jù)的限制,所以DB指數(shù)略高.
當(dāng)數(shù)據(jù)不斷增大時(shí),譜聚類和K-Means算法的DB指數(shù)則出現(xiàn)了較大幅度的波動(dòng),而CSCM方法的DB指數(shù)總體趨于平穩(wěn).這是因?yàn)镃SCM方法通過結(jié)合預(yù)聚類的結(jié)果提前確定了k值和初始中心點(diǎn),有效的避免了初始值的隨機(jī)性和減少了迭代次數(shù)m,使其可以在大量的高維稀疏數(shù)據(jù)的聚類中產(chǎn)生較為穩(wěn)定的聚類效果,所以DB指數(shù)要優(yōu)于其它兩種算法.而由于K-Means算法和譜聚類對(duì)于k值及初始中心點(diǎn)的選取為完全隨機(jī)的,其DB指數(shù)會(huì)隨著初始值的選值而出現(xiàn)較大幅度的變化,因此產(chǎn)生的聚類效果并不穩(wěn)定.當(dāng)出現(xiàn)不合理的k值或初始中心點(diǎn)過于密集的情況時(shí),可能會(huì)使其在大規(guī)模數(shù)據(jù)的聚類中被誤分到同一簇的數(shù)據(jù)點(diǎn)個(gè)數(shù)顯著增加,使得簇之間距離變小,簇內(nèi)離散度變大,因此DB指數(shù)上升.而相較于K-Means算法,譜聚類由于在第1階段時(shí)通過Laplacian矩陣進(jìn)行特征分解緩解了“維度災(zāi)難”效應(yīng),所以其聚類表現(xiàn)要優(yōu)于K-Means算法.綜合以上數(shù)據(jù),相較于其它兩種單一的聚類算法,CSCM方法可以在聚類過程中產(chǎn)生良好且較為穩(wěn)定的聚類效果.
4.3.2 異常提取性能評(píng)估結(jié)果
為了驗(yàn)證CSCM方法在異常提取上的有效性,實(shí)驗(yàn)首先評(píng)估了CSCM方法對(duì)顯性異常及隱性異常對(duì)象提取的性能.實(shí)驗(yàn)評(píng)估結(jié)果如表1所示.
表1 異常提取結(jié)果評(píng)估表Table 1 Exception extraction evaluation
由表1所得,在對(duì)各稀疏簇質(zhì)心點(diǎn)進(jìn)行分析之后,通過顯性異常和隱性異常的提取,各組異常的提取的綜合評(píng)價(jià)指標(biāo)均在78%以上.此外,在各組中,通過對(duì)正常質(zhì)心的稀疏簇中各數(shù)據(jù)點(diǎn)的局部可達(dá)密度的計(jì)算,可以有效的提取出與正常值相對(duì)偏離的隱性異常對(duì)象,使得異常提取的有效性得到提升.其中,在Test3中,有8個(gè)簇被劃分為了稀疏簇,通過顯性異常對(duì)象提取方法,將序號(hào)分別為2、3、5、7、9稀疏簇中的共279個(gè)數(shù)據(jù)點(diǎn)均提取為顯性異常對(duì)象.然后采用隱性異常對(duì)象提取方法對(duì)剩余各稀疏簇的數(shù)據(jù)點(diǎn)進(jìn)行異常度指標(biāo)的計(jì)算,分別從序號(hào)0、6、10的簇中提取出隱性異常對(duì)象9、0、4個(gè),最終,通過與真實(shí)的標(biāo)簽進(jìn)行對(duì)比,異常對(duì)象提取的綜合評(píng)價(jià)指標(biāo)為83.2%.
最后,將CSCM方法與文獻(xiàn)[5]及文獻(xiàn)[6]中提出的異常檢測(cè)方法進(jìn)行了對(duì)比實(shí)驗(yàn).實(shí)驗(yàn)將從精確度、召回率、F1值和運(yùn)行時(shí)間進(jìn)行評(píng)估,實(shí)驗(yàn)分別運(yùn)行10次,結(jié)果取均值,評(píng)估結(jié)果如圖5、圖6所示.
圖5 3種指標(biāo)性能評(píng)估圖Fig.5 Evaluation value of three indicators
圖6 運(yùn)行時(shí)間評(píng)估圖Fig.6 Performance evaluation of runtime
由圖5可以看出,CSCM在3種指標(biāo)上均優(yōu)于其它兩種異常檢測(cè)方法.其中,在召回率指標(biāo)上,CSCM方法的召回率最高(0.75).這是因?yàn)镃SCM方法通過在簇后對(duì)稀疏簇質(zhì)心進(jìn)行分析以及對(duì)數(shù)據(jù)點(diǎn)進(jìn)行顯性和隱性異常對(duì)象的提取,能夠有效識(shí)別出與正常值差別較小的異常對(duì)象,TP值得到提升.而相較于文獻(xiàn)[6]中基于密度度量的方法,由于文獻(xiàn)[5]中提出的方法是直接基于對(duì)象至正常簇質(zhì)心的距離來判定異常點(diǎn),故無法很好的檢測(cè)出與正常值相差較小的異常對(duì)象,其召回率最低.在運(yùn)行時(shí)間方面,3種異常檢測(cè)方法的運(yùn)行時(shí)間都隨著數(shù)據(jù)規(guī)模的增大而顯著增加,這是由聚類算法的特性所導(dǎo)致的.其中,由于文獻(xiàn)[5]和文獻(xiàn)[6]中提出的方法在初始階段分別需要構(gòu)建知識(shí)庫(kù)和正常行為輪廓,因此需要進(jìn)行數(shù)據(jù)的相似矩陣及鄰域數(shù)據(jù)的計(jì)算,其時(shí)間復(fù)雜度分別為O(n2)和O(nlogn).而CSCM方法通過低成本的Canopy算法對(duì)數(shù)據(jù)進(jìn)行了預(yù)聚類,其時(shí)間復(fù)雜度為O(n),所以CSCM方法在該階段中的執(zhí)行效率較高.即使CSCM方法之后還需要進(jìn)行復(fù)雜度較高的譜聚類運(yùn)算及顯性和隱性異常的提取,但是由于CSCM方法在預(yù)聚類階段中通過提取交疊數(shù)據(jù)提前減少了后續(xù)的數(shù)據(jù)量,使得譜聚類的輸入和各稀疏簇的規(guī)模遠(yuǎn)遠(yuǎn)小于n,因此時(shí)間復(fù)雜度并不會(huì)顯著增加.通過綜合以上的分析,可以發(fā)現(xiàn),本文提出CSCM異常檢測(cè)方法與其它兩種異常檢測(cè)方法相比,可以在不同規(guī)模的日志集中實(shí)現(xiàn)穩(wěn)定且綜合指標(biāo)較好的異常提取結(jié)果.
針對(duì)現(xiàn)代大型系統(tǒng)中系統(tǒng)日志的異常檢測(cè)問題,提出了一種預(yù)聚類下細(xì)化分析與多視角異常提取相結(jié)合的分階段多技術(shù)的檢測(cè)方法CSCM.該方法引入信息熵以提取日志中的信息量.在Canopy算法的預(yù)聚類下,采用譜聚類技術(shù)對(duì)子集交疊部分?jǐn)?shù)據(jù)進(jìn)行細(xì)化分析,并優(yōu)化初始值選取問題.最后,通過分析不同視角下的日志特性,提出顯性與隱性異常對(duì)象的定義,以實(shí)現(xiàn)異常日志的識(shí)別.實(shí)驗(yàn)結(jié)果表明,通過預(yù)聚類及細(xì)化分析過程,并結(jié)合多視角下的稀疏簇質(zhì)心點(diǎn)分析和數(shù)據(jù)點(diǎn)異常度計(jì)算,可以高效準(zhǔn)確的檢測(cè)出日志序列中的異常數(shù)據(jù).