專利名稱:在線日志分析方法
技術(shù)領(lǐng)域:
本發(fā)明涉及高性能網(wǎng)絡(luò)領(lǐng)域,特別涉及在線日志分析方法。
背景技術(shù):
機(jī)群系統(tǒng)是一組計(jì)算機(jī)系統(tǒng)(節(jié)點(diǎn))通過(guò)高性能網(wǎng)絡(luò)或者局域網(wǎng)互聯(lián)而形成的具 有單一系統(tǒng)映像的高可用、高性能、高可擴(kuò)展性的計(jì)算機(jī)系統(tǒng)。它的每個(gè)節(jié)點(diǎn)都是一個(gè)可以 獨(dú)立工作的完整的計(jì)算系統(tǒng)。機(jī)群系統(tǒng)自問(wèn)世以來(lái),以其良好的可擴(kuò)展性和富有競(jìng)爭(zhēng)力的 性能/價(jià)格比,迅速成為高性能計(jì)算的主流體系結(jié)構(gòu),同時(shí)機(jī)群也在因特網(wǎng)服務(wù)、數(shù)據(jù)庫(kù)服 務(wù)等商業(yè)領(lǐng)域得到廣泛應(yīng)用。但隨著機(jī)群系統(tǒng)規(guī)模的不斷增加,失效已經(jīng)成為一種常態(tài),而 機(jī)群系統(tǒng)的軟硬件缺陷、負(fù)載、環(huán)境、用戶操作等各種問(wèn)題使得失效問(wèn)題更為復(fù)雜。已有研 究顯示,失效對(duì)機(jī)群系統(tǒng)的性能和運(yùn)行成本有著重要的影響,因而成為當(dāng)前的研究熱點(diǎn)。日志是計(jì)算機(jī)系統(tǒng)對(duì)某些對(duì)象的某些操作和其操作結(jié)果(如用戶登錄或者用戶 在系統(tǒng)上的行為)按照時(shí)間的先后順序所形成的有序集合。每一個(gè)日志文件由很多的事件 記錄組成,每條事件記錄存儲(chǔ)著一次單獨(dú)的事件。事件記錄中包含有時(shí)間戳和消息,服務(wù)器 工作站應(yīng)用程序運(yùn)行記錄等信息,此外還可能包含有數(shù)據(jù)庫(kù)系統(tǒng)等對(duì)象的相關(guān)活動(dòng)記錄。日志文件中的記錄可提供以下用途監(jiān)控系統(tǒng)資源,審計(jì)用戶行為,確定入侵行為 的范圍,為恢復(fù)系統(tǒng)提供幫助,生成調(diào)查報(bào)告等。為了維護(hù)自身系統(tǒng)資源的運(yùn)行狀況,每一 個(gè)主機(jī)系統(tǒng)自身一般都會(huì)有一套比較完整的日志記錄系統(tǒng)。日志記錄系統(tǒng)中所保存的海量 的日志信息是失效分析的重要數(shù)據(jù)源,從這些日志信息中能夠發(fā)現(xiàn)前述的失效現(xiàn)象與事件 間的特征和規(guī)律,失效現(xiàn)象和事件之間的關(guān)聯(lián)等。但因?yàn)槿鄙偃謺r(shí)鐘,來(lái)自于不同數(shù)據(jù)源 的日志信息通常會(huì)有亂序現(xiàn)象,而且內(nèi)容具有不完整性,因而失效分析成本極高。目前具有的日志事件關(guān)聯(lián)分析存在的相關(guān)方法有決策樹(shù)分類,貝葉斯網(wǎng)絡(luò)模型, 半馬爾科夫鏈模型及支持向量機(jī)等。它們的共同特點(diǎn)是面向小規(guī)模的計(jì)算機(jī)系統(tǒng)或者是只 能分析與特定失效相關(guān)聯(lián)的事件,并不能適應(yīng)于大規(guī)模機(jī)群系統(tǒng)的日志事件關(guān)聯(lián)分析。另 外,由于系統(tǒng)日志具有與關(guān)系數(shù)據(jù)庫(kù)不一樣的滑動(dòng)時(shí)間窗口模式,并且時(shí)間窗口具有重疊 性,時(shí)間窗口內(nèi)的事件具有重復(fù)性,因此已有的關(guān)系數(shù)據(jù)庫(kù)關(guān)聯(lián)規(guī)則挖掘算法Apriori和 FP-tree也不適用于系統(tǒng)日志的分析。雖然在現(xiàn)有技術(shù)中也存在對(duì)大規(guī)模機(jī)群系統(tǒng)的日志事件關(guān)聯(lián)分析方法,但這些方 法主要針對(duì)日志的離線(offline)分析。考慮到被分析對(duì)象日志的海量性,日志格式的多 樣性和差異性以及日志內(nèi)容的不完整性,如果要對(duì)大規(guī)模機(jī)群系統(tǒng)的日志做在線分析,存 在內(nèi)存沒(méi)有足夠的空間保存所有數(shù)據(jù)而只有一部分系統(tǒng)日志能夠被保存的問(wèn)題,現(xiàn)有技術(shù) 中尚不存在能夠?qū)θ罩咀鲈诰€分析的方法。
發(fā)明內(nèi)容
本發(fā)明的目的是克服現(xiàn)有技術(shù)無(wú)法對(duì)日志做在線分析的缺陷,從而提供一種在線 日志分析方法,包括
步驟1)、從機(jī)群系統(tǒng)的各個(gè)節(jié)點(diǎn)上在線獲取日志文件;步驟2)、根據(jù)所述日志文件定義事件序列與事件關(guān)聯(lián)規(guī)則,然后對(duì)當(dāng)前時(shí)間幀中 的一元事件序列進(jìn)行統(tǒng)計(jì),找出由頻繁的一元事件序列所組成的集合,進(jìn)而得到二元頻繁 事件序列候選集C(2);在一定的時(shí)間間隔后統(tǒng)計(jì)所述C(2)中候選二元頻繁事件序列的支 持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù),計(jì)算置信度和后驗(yàn)度;根據(jù)所述支持度計(jì)數(shù)生成二元頻繁事件序 列集合F(2),根據(jù)所述支持度計(jì)數(shù)和置信度生成二元規(guī)則集合R(2);重復(fù)這一過(guò)程直到得 到F(k)和R(k),對(duì)F(k)中的k元頻繁事件序列進(jìn)行連接操作,產(chǎn)生F(k+1)元頻繁事件序 列集合;對(duì)在F(k+1)中且不在R(k+1)的元素的屬性值進(jìn)行近似計(jì)算,直到產(chǎn)生所有的頻繁 事件序列;最后根據(jù)所述的頻繁事件序列找到事件關(guān)聯(lián)規(guī)則;步驟3)、根據(jù)所述的事件關(guān)聯(lián)規(guī)則在線預(yù)測(cè)日志中的事件。上述技術(shù)方案中,在所述的步驟1)和所述的步驟2)之間,還包括步驟a)、將來(lái)自機(jī)群系統(tǒng)中不同節(jié)點(diǎn)上的日志文件的格式轉(zhuǎn)換為統(tǒng)一的格式。上述技術(shù)方案中,在所述的步驟1)和所述的步驟2)之間,還包括步驟b)、刪除所述日志文件中重復(fù)、冗余的數(shù)據(jù)。上述技術(shù)方案中,所述的步驟a)包括步驟a-Ι)、為日志文件定義統(tǒng)一格式;步驟a_2)、定義用于描述日志解析過(guò)程中所用到的日志格式、日志屬性、日志關(guān)鍵 字的配置文件;步驟a-3)、利用所述配置文件對(duì)對(duì)機(jī)群系統(tǒng)中各個(gè)節(jié)點(diǎn)的日志文件加以解析;步驟a-4)、根據(jù)日志文件解析后的內(nèi)容將各個(gè)節(jié)點(diǎn)上不同格式的日志文件轉(zhuǎn)換成 相同格式的日志文件。上述技術(shù)方案中,所述的步驟b)包括步驟b_l)、刪除日志文件中的重復(fù)事件,只保留所述重復(fù)事件的一條記錄;所述 重復(fù)事件包括被不同的節(jié)點(diǎn)重復(fù)記錄,具有相同的時(shí)間戳和內(nèi)容的事件,或在短時(shí)間中重 復(fù)出現(xiàn),具有較近的時(shí)間戳和內(nèi)容的事件;步驟b_2)、對(duì)日志文件中的事件做周期性的聚類分析,找出周期性事件,刪除所述 周期性事件中的多余事件;所述的周期性事件為在固定的時(shí)間間隔內(nèi)循環(huán)出現(xiàn),具有相同 內(nèi)容的事件。上述技術(shù)方案中,所述的步驟2)包括步驟2-1)、定義包括時(shí)間閾值Tw、事件規(guī)則的支持度計(jì)數(shù)閾值Sth、事件規(guī)則的置 信度閾值Cth在內(nèi)的閾值,以及時(shí)間幀的大小;步驟2-2)、計(jì)算實(shí)時(shí)來(lái)到當(dāng)前時(shí)間幀中的頻繁的一元事件序列候選集C(I)中的 已有計(jì)數(shù),并據(jù)此產(chǎn)生所有的二元頻繁事件序列候選集C(2);所述C(2)包括已有的二元事 件規(guī)則,以及具有相同節(jié)點(diǎn)、相同事件類型和相同應(yīng)用的兩個(gè)事件組成的事件序列;步驟2-3)、當(dāng)事件來(lái)到時(shí),將事件保存到當(dāng)前時(shí)間幀中,每隔時(shí)間閾值Tw對(duì)時(shí)間 幀中的日志進(jìn)行分析,統(tǒng)計(jì)所有事件的已有計(jì)數(shù)C(I),統(tǒng)計(jì)C (2)中候選的二元頻繁事件序 列的支持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù),計(jì)算置信度和后驗(yàn)度;步驟2-4)、當(dāng)所述C(2)中候選的二元頻繁事件序列為已有二元規(guī)則時(shí),修改包括 支持度計(jì)數(shù)、置信度、后驗(yàn)度計(jì)數(shù)、后驗(yàn)度在內(nèi)的屬性;否則,當(dāng)所述C(2)中候選的二元頻繁事件序列的支持度計(jì)數(shù)達(dá)到支持度計(jì)數(shù)閾值Sth,則加入二元頻繁事件序列F(2)中,當(dāng) 支持度計(jì)數(shù)和置信度分別達(dá)到支持度計(jì)數(shù)閾值Sth閾值和事件規(guī)則的置信度閾值Cth時(shí), 產(chǎn)生新的二元規(guī)則,并將其加入到二元規(guī)則集合R(2)中;步驟2-5)、依此類推,直到生成F(k)和R(k);步驟2-6)、對(duì)F(k)中的k元頻繁事件序列進(jìn)行連接操作,產(chǎn)生F(k+1)元頻繁事 件序列候選集,遍歷時(shí)間巾貞,對(duì)R(k+1)中元素的屬性值(計(jì)數(shù)值)進(jìn)行修改;同時(shí)遍歷時(shí)間 幀,將其作為日志的一個(gè)采樣,對(duì)在F(k+1)中而不在R(k+1)的元素的所述屬性值進(jìn)行近似 計(jì)算;步驟2-7)、重復(fù)前一步驟,直到產(chǎn)生所有的頻繁事件序列。上述技術(shù)方案中,在所述的步驟2-6)中,對(duì)所述屬性值進(jìn)行近似計(jì)算包括對(duì)于二元規(guī)則,直接統(tǒng)計(jì)支持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù),從而計(jì)算出置信度和后驗(yàn) 度;對(duì)于k+1元候選規(guī)則,以時(shí)間幀中的置信度和后驗(yàn)度作為其近似值,然后再計(jì)算 出支持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù)的近似值。上述技術(shù)方案中,所述的步驟3)包括步驟3-1)、定義預(yù)測(cè)時(shí)間窗口和預(yù)測(cè)有效期;步驟3-2)、根據(jù)所述的事件關(guān)聯(lián)規(guī)則創(chuàng)建失效關(guān)聯(lián)圖;步驟3-3)、基于所述的失效關(guān)聯(lián)圖進(jìn)行日志事件的在線預(yù)測(cè)。上述技術(shù)方案中,所述的步驟3-2)包括步驟3-2-1)、對(duì)所述事件關(guān)聯(lián)規(guī)則中的事件數(shù)、事件規(guī)則的置信度進(jìn)行排序;步驟3-2-2)、對(duì)所述事件關(guān)聯(lián)規(guī)則進(jìn)行分析,產(chǎn)生對(duì)應(yīng)的頂點(diǎn)和邊,并新建一個(gè)特 殊的頂點(diǎn)ROOT,所述事件關(guān)聯(lián)規(guī)則的第一個(gè)事件對(duì)應(yīng)的頂點(diǎn)以一個(gè)特殊的頂點(diǎn)ROOT作為 父頂點(diǎn),由此產(chǎn)生一個(gè)失效關(guān)聯(lián)圖;步驟3-2-3)、如果一個(gè)失效關(guān)聯(lián)圖中的某個(gè)頂點(diǎn)已經(jīng)存在于另一個(gè)失效關(guān)聯(lián)圖 中,則對(duì)這兩個(gè)失效關(guān)聯(lián)圖進(jìn)行合并操作;步驟3-2-4)、當(dāng)所述失效關(guān)聯(lián)圖在構(gòu)造過(guò)程中出現(xiàn)環(huán)路時(shí),為事件關(guān)聯(lián)規(guī)則的后 續(xù)另設(shè)一個(gè)備份頂點(diǎn);步驟3-2-5)、在內(nèi)存中保存每個(gè)事件對(duì)應(yīng)的ROOT頂點(diǎn)。上述技術(shù)方案中,所述的步驟3-3)包括步驟3-3-1)、定義預(yù)測(cè)時(shí)間窗口、預(yù)測(cè)閾值和預(yù)測(cè)有效期;步驟3-3-2)、當(dāng)事件發(fā)生時(shí),標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)狀態(tài),如果超過(guò)所述的預(yù)測(cè)時(shí)間窗 口,則頂點(diǎn)被取消標(biāo)識(shí);步驟3-3-3)、當(dāng)一條邊的尾頂點(diǎn)被標(biāo)識(shí),則這條邊也被標(biāo)識(shí);步驟3-3-4)、當(dāng)所有以一個(gè)頂點(diǎn)為頭頂點(diǎn)的邊都被標(biāo)識(shí),則該頂點(diǎn)也被標(biāo)識(shí);步驟3-3-5)、根據(jù)被標(biāo)識(shí)的頂點(diǎn),計(jì)算以其為尾頂點(diǎn)的所有相鄰邊的頭頂點(diǎn)發(fā)生 的概率;步驟3-3-6)、如果頂點(diǎn)發(fā)生的概率達(dá)到所述的預(yù)測(cè)閾值,則這個(gè)頂點(diǎn)對(duì)應(yīng)的事件 被預(yù)測(cè)。本發(fā)明還提供了一種在線日志分析系統(tǒng),包括日志代理、日志服務(wù)器以及主動(dòng)管理系統(tǒng);其中,所述的日志代理搜集機(jī)群系統(tǒng)上各個(gè)數(shù)據(jù)節(jié)點(diǎn)的日志文件,將所搜集到的日 志文件發(fā)送到所述的日志服務(wù)器上;所述的日志服務(wù)器對(duì)所述的日志文件進(jìn)行預(yù)處理與過(guò) 濾,對(duì)過(guò)濾后的日志文件進(jìn)行關(guān)聯(lián)分析與挖掘,找出事件關(guān)聯(lián)規(guī)則,將這一事件關(guān)聯(lián)規(guī)則發(fā) 送到所述的主動(dòng)管理系統(tǒng);所述的主動(dòng)管理系統(tǒng)根據(jù)所述事件關(guān)聯(lián)規(guī)則在線預(yù)測(cè)日志中的 事件。本發(fā)明的優(yōu)點(diǎn)在于本發(fā)明能對(duì)日志做實(shí)時(shí)在線預(yù)測(cè),能對(duì)失效日志等進(jìn)行相關(guān)性分析,找出系統(tǒng)失 效原因及故障類型,有利于預(yù)測(cè)系統(tǒng)的行為及提高系統(tǒng)生產(chǎn)率,降低總擁有成本。
圖1為采用本發(fā)明方法的機(jī)群系統(tǒng)的示意圖;圖2為本發(fā)明方法的總體流程圖;圖3為本發(fā)明方法中預(yù)處理操作的流程圖;圖4為本發(fā)明方法中對(duì)日志文件進(jìn)行過(guò)濾的流程圖;圖5為本發(fā)明方法中事件關(guān)聯(lián)規(guī)則挖掘的流程圖。
具體實(shí)施例方式下面結(jié)合附圖和具體實(shí)施方式
對(duì)本發(fā)明加以說(shuō)明。如圖1所示,在一個(gè)已有的機(jī)群系統(tǒng)中,各個(gè)節(jié)點(diǎn)之間通過(guò)網(wǎng)絡(luò)相互連接,每個(gè)節(jié) 點(diǎn)都是一臺(tái)獨(dú)立工作的計(jì)算機(jī)系統(tǒng),這些節(jié)點(diǎn)會(huì)各自產(chǎn)生相應(yīng)的系統(tǒng)日志文件。在本發(fā)明 中,將機(jī)群系統(tǒng)中的這些產(chǎn)生系統(tǒng)日志文件的節(jié)點(diǎn)稱為數(shù)據(jù)節(jié)點(diǎn)(data node),用數(shù)字標(biāo)記 1表不。在上述機(jī)群系統(tǒng)的基礎(chǔ)上,本發(fā)明的在線日志分析系統(tǒng)包括日志代理A(Log agent)、日志服務(wù)器 S (Log Server)和一個(gè)主動(dòng)管理系統(tǒng) P (proactivemanagement system),其中的日志代理A安裝在機(jī)群系統(tǒng)中的各個(gè)數(shù)據(jù)節(jié)點(diǎn)1上,其作用在于搜集所在 數(shù)據(jù)節(jié)點(diǎn)的日志文件。日志服務(wù)器S主要用于實(shí)現(xiàn)對(duì)日志文件的預(yù)處理與過(guò)濾,并對(duì)過(guò)濾 后的日志進(jìn)行關(guān)聯(lián)分析與挖掘。主動(dòng)管理系統(tǒng)P則根據(jù)關(guān)聯(lián)分析與挖掘的結(jié)果進(jìn)行失效預(yù) 測(cè)。日志服務(wù)器S與主動(dòng)管理系統(tǒng)P通過(guò)在機(jī)群系統(tǒng)中的相關(guān)節(jié)點(diǎn)實(shí)現(xiàn),為了與機(jī)群中普 通的數(shù)據(jù)節(jié)點(diǎn)相區(qū)別,這些用于實(shí)現(xiàn)日志分析、管理用的節(jié)點(diǎn)被稱為管理節(jié)點(diǎn),這些管理節(jié) 點(diǎn)在圖1中可以用數(shù)字標(biāo)記2表示。下面結(jié)合圖2對(duì)本發(fā)明的在線日志分析系統(tǒng)中的各個(gè)部分如何完成在線日志分 析的過(guò)程加以說(shuō)明。機(jī)群系統(tǒng)中的各個(gè)數(shù)據(jù)節(jié)點(diǎn)在運(yùn)行過(guò)程中會(huì)隨著時(shí)間生成相應(yīng)的日志文件,在步 驟S10中,要對(duì)這些日志文件加以分析首先要做日志的預(yù)處理。所述的日志的預(yù)處理包括 將半結(jié)構(gòu)化和非結(jié)構(gòu)化的日志轉(zhuǎn)換化為統(tǒng)一的日志格式,并對(duì)系統(tǒng)日志進(jìn)行數(shù)據(jù)過(guò)濾以刪 除其中的冗余數(shù)據(jù)。如圖3所示,步驟S10具體包括以下步驟。在步驟S11中,由于機(jī)群系統(tǒng)中的數(shù)據(jù)節(jié)點(diǎn)數(shù)量龐大,各個(gè)數(shù)據(jù)節(jié)點(diǎn)中的系統(tǒng)日 志文件也可能有各種格式,如文本文件格式、數(shù)據(jù)庫(kù)格式、流文件格式等,因此需要將這些 日志文件的格式加以統(tǒng)一。本實(shí)施例中用一個(gè)九元組來(lái)統(tǒng)一地表示日志文件,該九元組包括(timestamp, log id, nodeid, event id, severity degree, event type, application name, process id, user)。在這一九元組中,timestamp表示事件發(fā)生的時(shí)間或者事件記 錄到日志中的時(shí)間,典型情況下包括日期以及以秒或一秒的若干分之一為單位的時(shí)間。所 述Severity degree表示事件的優(yōu)先級(jí)或者重要度,包括INFO (信息)、WARNING (警告)、 ERROR(誤差)、FAILURE (失效)、FAULT (故障)。所述event type表示事件發(fā)生的類型,具 體的類型包括 HARDWARE (硬件)、SYSTEM (系統(tǒng))、APPLICATION (應(yīng)用)、FILESYSTEM (文件 系統(tǒng))、NETWORK (網(wǎng)絡(luò))等。所述application name表示生成日志信息的某個(gè)具體應(yīng)用。 所述process id是指該條日志信息記錄的具體應(yīng)用的進(jìn)程。所述user是指該條日志信息 記錄的使用該應(yīng)用的用戶名。所述event id是二元組(severity degree, event type)的 映射函數(shù),如果一個(gè)新的二元組(severity,event type)出現(xiàn),一個(gè)新的事件號(hào)event id 賦予給這個(gè)事件。所述node id表示事件發(fā)生的節(jié)點(diǎn)的id,它根據(jù)事件發(fā)生的node name 衍生而來(lái)。所述 log id 表示(node id, event id, application, process id)四元組。相 同的 log id 意味著相同的 node id、event id、application 禾口 process id。同樣的,只 有當(dāng)事件的 node id、event id、application 禾口 processid 四種屬性者口相同時(shí),log id 才相同。上述九元組中的屬性可以分為基本屬性與擴(kuò)展屬性,如其中的timestamp、node name^application name、processid、user 被視為基本屬性,而format、keyword、 severity degree,event type被視為擴(kuò)展屬性。日志的基本屬性表明了日志包含的基本特征和基本 內(nèi)容,通過(guò)基本屬性能夠識(shí)別出不同的日志事件;日志的擴(kuò)展屬性則包含了日志的一些額 外信息,通過(guò)擴(kuò)展屬性能利用更多的事件信息來(lái)對(duì)日志進(jìn)行分析。在步驟SI 1定義日志文件的統(tǒng)一格式以后,下面對(duì)日志文件預(yù)處理過(guò)程中的格式 轉(zhuǎn)化加以說(shuō)明。在步驟S12中,當(dāng)進(jìn)行格式轉(zhuǎn)化時(shí),首先要定義用于描述日志解析過(guò)程中所 用到的日志格式、日志屬性、日志關(guān)鍵字等信息的配置文件,在本實(shí)施例中,這些配置文件 采用XML實(shí)現(xiàn)。在定義配置文件時(shí),定義包括mysql數(shù)據(jù)庫(kù)配置信息的Database部分;定 義包括諸如timestamp、nodename等屬性正則表達(dá)式的Definitions部分;定義包括日志的 所有可能格式Formats部分;定義包括日志描述中可能用到的關(guān)鍵字信息,這些關(guān)鍵字信 息用來(lái)區(qū)分 severity degree 禾口 event type 的 Keywords 部分。在定義了日志解析過(guò)程中所要用到的配置文件后,在步驟S13中,就可以對(duì)各個(gè) 數(shù)據(jù)節(jié)點(diǎn)中的已有日志文件加以解析。在日志解析的過(guò)程中,首先讀取XML配置文件,獲 得日志屬性、日志格式、日志關(guān)鍵字的正則表達(dá)式和數(shù)據(jù)庫(kù)信息;然后利用日志格式和日志 屬性的正則表達(dá)式,解析出日志中諸如timestamp、node name等日志屬性信息和日志描述 (description);接著用日志關(guān)鍵字的正則表達(dá)式對(duì)日志描述進(jìn)行解析,得到更多的日志相 關(guān)信息,如severity degree, event type等;最后將所得到的日志屬性和日志相關(guān)信息保 存到數(shù)據(jù)庫(kù)中。在步驟S14中,根據(jù)日志文件解析后的內(nèi)容可將各個(gè)數(shù)據(jù)節(jié)點(diǎn)上不同格式的日志 文件轉(zhuǎn)換成相同格式的日志文件。在日志格式的轉(zhuǎn)換過(guò)程中,根據(jù)日志的節(jié)點(diǎn)名node name 得到node id ;根據(jù)日志的格式format和關(guān)鍵字keyword自動(dòng)分配event id ;根據(jù)node id> event id、application、processid自云力分配log id ;根據(jù)log id可以得出日志屬性, 如 node name、applicationname、process id、severity degree、event type 等信息。對(duì)日志文件的預(yù)處理除了日志格式的轉(zhuǎn)換外,還包括步驟S15,該步驟包括對(duì)轉(zhuǎn)換后日志文件中重復(fù)、冗余數(shù)據(jù)的過(guò)濾。系統(tǒng)中具有重復(fù)、冗余數(shù)據(jù)的原因在于(1) 一些多 余和不重要的事件被記錄了 ;(2)同一事件會(huì)被數(shù)據(jù)節(jié)點(diǎn)通過(guò)多條途徑記錄;(3)同一事件 可能會(huì)被多個(gè)數(shù)據(jù)節(jié)點(diǎn)的不同途徑獲得;(4) 一些周期性的系統(tǒng)或應(yīng)用進(jìn)程對(duì)系統(tǒng)進(jìn)行周 期性的操作,會(huì)產(chǎn)生周期性的事件。如圖4所示,對(duì)日志文件進(jìn)行過(guò)濾主要包括對(duì)日志文件中兩類事件的刪除,一是 重復(fù)事件,二是周期性事件。所謂的重復(fù)事件包括兩種情況,一種是被不同的子系統(tǒng)重復(fù)記 錄,事情具有相同的時(shí)間戳和事件內(nèi)容;一種是在短時(shí)間中重復(fù)出現(xiàn),具有較近的時(shí)間戳和 事件內(nèi)容。所謂的周期事件是由于硬件或軟件缺陷而導(dǎo)致一些事件在固定的時(shí)間間隔內(nèi)循 環(huán)出現(xiàn),每一種周期事件有兩個(gè)或多個(gè)時(shí)間間隔,這些事件具有近似固定的時(shí)間戳和相同 的事件內(nèi)容。因此,對(duì)日志文件的過(guò)濾可包括兩大步驟,一是對(duì)重復(fù)事件的刪除,二是對(duì)周 期性事件的刪除。在刪除重復(fù)事件時(shí),對(duì)于重復(fù)記錄的事件,用現(xiàn)有數(shù)據(jù)庫(kù)技術(shù)進(jìn)行處理, 對(duì)具有相同時(shí)間戳timestamp和相同log id的記錄,只保留其中一條記錄。而對(duì)于短時(shí)間 內(nèi)重復(fù)記錄的事件,首先定義一個(gè)較小的時(shí)間間隔閾值,然后用統(tǒng)計(jì)方法計(jì)算相鄰的相同 log id事件之間時(shí)間戳的時(shí)間間隔,當(dāng)時(shí)間戳的時(shí)間間隔小于閾值時(shí),則只保留前一條記 錄。在刪除周期性事件時(shí),首先通過(guò)對(duì)相鄰的相同log id事件時(shí)間戳的時(shí)間間隔的聚類分 析,得到事件的周期;然后基于聚類思想對(duì)事件做周期性的聚類分析,得到周期事件;最后 保留周期事件的第一個(gè)事件,減少分析的數(shù)據(jù)量以及周期性事件對(duì)事件分析的干擾。在上文中所提到的聚類分析(Clustering)又稱群分析,它是研究分類問(wèn)題的一 種統(tǒng)計(jì)分析方法。將物理或抽象對(duì)象的集合分成由類似的對(duì)象組成的多個(gè)類的過(guò)程被稱 為聚類。由聚類所生成的簇是一組數(shù)據(jù)對(duì)象的集合,這些對(duì)象與同一個(gè)簇中的對(duì)象彼此 相似,與其他簇中的對(duì)象相異。傳統(tǒng)的聚類分析方法有多種,如劃分方法(partitioning methods)、層次方法(hierarchical methods)、基于密度的方法(density-based methods)、基于網(wǎng)格的方法(grid-based methods)、基于模型的方法(model-based methods)。在本實(shí)施例中可采用基于密度的方法實(shí)現(xiàn)聚類分析。所述基于密度的方法就是 只要一個(gè)區(qū)域中的點(diǎn)的密度大過(guò)某個(gè)閥值,就把它加到與之相近的聚類中去。由基于密度的方法得到事件的周期包括首先定義時(shí)間間隔誤差范圍、周期值的 計(jì)數(shù)閾值、周期值的比例閾值;然后對(duì)相鄰的相同log id事件時(shí)間戳的時(shí)間間隔進(jìn)行統(tǒng) 計(jì),計(jì)算時(shí)間間隔落在其誤差范圍內(nèi)的同Iogid事件的計(jì)數(shù);最后當(dāng)時(shí)間間隔的計(jì)數(shù)值和 比例超過(guò)閾值時(shí),將該時(shí)間間隔看作是一個(gè)周期。以上是對(duì)日志文件預(yù)處理過(guò)程的說(shuō)明,在步驟S20中將根據(jù)預(yù)處理后的日志文件 做日志中的事件的關(guān)聯(lián)挖掘。所述的關(guān)聯(lián)挖掘是要將日志當(dāng)作一系列事件按照事件發(fā)生的 時(shí)間戳先后順序所組成的序列,通過(guò)定義大規(guī)模系統(tǒng)日志的事件序列和事件規(guī)則來(lái)描述系 統(tǒng)日志之間的關(guān)聯(lián)。事件關(guān)聯(lián)挖掘的實(shí)現(xiàn)是基于在機(jī)群系統(tǒng)的多個(gè)數(shù)據(jù)節(jié)點(diǎn)上存在如下事 實(shí)(1)出于數(shù)據(jù)處理方便性的考慮,使得復(fù)制這一操作手段在多個(gè)數(shù)據(jù)節(jié)點(diǎn)上得到了應(yīng) 用,這也使得相同的錯(cuò)誤或軟件缺陷會(huì)在多個(gè)數(shù)據(jù)節(jié)點(diǎn)上出現(xiàn),從而使得失效事件也可能 出現(xiàn)在多個(gè)節(jié)點(diǎn)上;(2)在機(jī)群系統(tǒng)中,數(shù)據(jù)節(jié)點(diǎn)之間通常要進(jìn)行數(shù)據(jù)傳輸和彼此通信,那 么一個(gè)節(jié)點(diǎn)上的失效可能導(dǎo)致其他節(jié)點(diǎn)上的相關(guān)失效;(3) —個(gè)數(shù)據(jù)節(jié)點(diǎn)上的失效可能會(huì) 改變系統(tǒng)的環(huán)境,并可能導(dǎo)致其他數(shù)據(jù)節(jié)點(diǎn)上的失效。要在日志文件中實(shí)現(xiàn)事件的關(guān)聯(lián)挖掘,在步驟S21中,首先要定義事件序列以及
10事件序列中的相關(guān)概念。在步驟S211中,定義事件序列。所述事件序列是一個(gè)由log id組成的序列,事件 序列具有嚴(yán)格的時(shí)間順序。假設(shè)某一事件序列中有n個(gè)事件,則這一事件序列被稱為n元 事件序列,n元事件序列(n-ary Timed Set ofLogs,可被簡(jiǎn)寫為n_ary TSL)是由n個(gè)不 同事件按照嚴(yán)格時(shí)間順序組成的序列。n-ary事件序列可以看作是由前(n_l)個(gè)事件組成 的(n-l)-ary事件序列和最后一個(gè)事件組成的序列。(n_l) _ary事件序列稱為事件序列的 先導(dǎo)(preceding events),最后一個(gè)事件稱為事件序列的后繼(posteriorevent)。比如在 3-ary事件序列(A,B, C)中,前兩個(gè)事件組成的事件序列(A,B)被稱為事件序列(A,B, C) 的先導(dǎo),事件C被稱為事件(A,B,C)的后續(xù)。在定義事件序列后,在步驟S212中再給出時(shí)間閾值Tw,由時(shí)間閾值Tw可定義事件 之間的先后性。如果事件B在事件A之后的時(shí)間閾值Tw之內(nèi)發(fā)生,那么認(rèn)為事件B在事件 A之后發(fā)生,兩者具有先后性。如果一個(gè)事件E在事件序列S最后一個(gè)事件之后發(fā)生,且事 件序列中相鄰事件都具有先后性,則認(rèn)為事件E在事件序列S之后發(fā)生,兩者具有先后性。在步驟S213中,然后再定義每個(gè)事件序列的支持度計(jì)數(shù)(supportcoimt)和后驗(yàn) 度計(jì)數(shù)(posterior count) 0所述支持度計(jì)數(shù)表示事件序列的先導(dǎo)的后續(xù)事件在事件序列 的先導(dǎo)的先導(dǎo)之后、且在事件序列的后續(xù)之前出現(xiàn)的次數(shù)。所述后驗(yàn)度計(jì)數(shù)表示事件序列 的后續(xù)在事件序列的先導(dǎo)之后出現(xiàn)的次數(shù)。在步驟S214中,接著再定義事件序列的置信度(confidence)和后驗(yàn)度 (posterior)。所述事件序列的置信度=事件序列的支持度計(jì)數(shù)/事件序列的先導(dǎo)的后驗(yàn) 度計(jì)數(shù);所述事件序列的后驗(yàn)度=事件序列的后驗(yàn)度計(jì)數(shù)/事件序列的后續(xù)的支持度計(jì)數(shù)。在步驟S215中,再接著定義事件序列的子序列。事件序列A中若干事件(不包括 全部事件)按照原有的嚴(yán)格時(shí)間順序組成的事件序列B是事件序列A的子序列。在步驟S216中,再定義事件序列的頻繁模式。如果事件序列的支持度計(jì)數(shù)不小于 (大于或等于)預(yù)定的支持度計(jì)數(shù)閾值(Threshold of supportcoimt,Sth),且事件序列中 相鄰事件組成的所有子序列都是頻繁的,那么該事件序列屬于頻繁模式。所述頻繁模式包括三個(gè)性質(zhì)性質(zhì)1 事件序列頻繁模式的非空子模式不一定是頻繁模式。性質(zhì)2 如果n-ary事件序列是頻繁的,那么事件序列的前(n_l)個(gè)事件組成的事 件序列和后(n-1)事件組成的事件序列都是頻繁的。性質(zhì)3 如果n-ary事件序列的前(n_l)個(gè)事件組成的事件序列和后(n_l)事件 組成的事件序列都是頻繁的,那么n-ary事件序列中相鄰事件組成的所有子序列也都是頻 繁的。在完成上述對(duì)事件序列以及事件序列中相關(guān)概念的定義后,在步驟S22中定義日 志關(guān)聯(lián)挖掘中的事件關(guān)聯(lián)規(guī)則。所謂的事件關(guān)聯(lián)規(guī)則是指給定一個(gè)交易數(shù)據(jù)庫(kù),其中每個(gè) 事務(wù)(Transaction) t是集合1(1是關(guān)于日志記錄的集合)的非空子集,即,每一個(gè)交易都 與一個(gè)唯一的標(biāo)識(shí)符TID (Transaction ID)對(duì)應(yīng)。關(guān)聯(lián)規(guī)則是形如X — Y的蘊(yùn)涵式,X和 Y分別稱為關(guān)聯(lián)規(guī)則的先導(dǎo)(antecedent或left-hand-side,LHS)和后繼(consequent或 right-hand-side, RHS)。關(guān)聯(lián)規(guī)則在數(shù)據(jù)集D中的支持度(support)是D中事務(wù)包含的百分比,即概率;置信度(confidence)是包含X的事務(wù)中同時(shí)包含Y的百分比,即條件概率。 如果滿足最小支持度閾值和最小置信度閾值,則關(guān)聯(lián)規(guī)則是強(qiáng)相關(guān)的。這些閾值由用戶或 者專家設(shè)定。在步驟S221中,定義事件規(guī)則(event rules),當(dāng)事件序列是頻繁的,且其置信 度大于預(yù)定的置信度閾值(Threshold of confidence, Cth),則事件序列是一個(gè)事件規(guī)則 (event rules)。所述的事件規(guī)則可以分為本地事件規(guī)則(local event rules)與分布事 件規(guī)則(distributed event rules)。如果事件規(guī)則由同一個(gè)節(jié)點(diǎn)上發(fā)生的事件組成,則稱 為本地事件規(guī)則。本地事件規(guī)則具有傳遞性,如事件序列(A,B)和(B,C)都是本地事件規(guī) 則,如果事件序列(A,C)也是事件規(guī)則,那么事件序列(A,C)必然是本地事件規(guī)則。如果事 件規(guī)則不是本地事件規(guī)則,則稱為分布事件規(guī)則,分布事件規(guī)則也具有傳遞性。在步驟S222中,定義事件聚類(event cluster) 0如果事件規(guī)則的置信度和后驗(yàn) 度分別達(dá)到更大的閾值(如0.8)以及事件規(guī)則的支持度計(jì)數(shù)達(dá)到更大的閾值,則事件規(guī)則 被稱為事件聚類。步驟S23、采用滑動(dòng)窗口(Sliding time window)方法對(duì)事件序列中的數(shù)據(jù)進(jìn)行處 理。該步驟具體包括以下步驟步驟S231、將滑動(dòng)窗口中的日志保存在日志緩沖區(qū)(log buffer),所述滑動(dòng)窗口 是指從計(jì)算時(shí)算起,向前追溯的所要被納入計(jì)算范圍的N個(gè)數(shù)據(jù)。由于日志流的數(shù)據(jù)是不 斷涌現(xiàn)的,所以直觀地看,采用一個(gè)不變的窗口,當(dāng)數(shù)據(jù)隨時(shí)間的推移經(jīng)過(guò)窗口,出現(xiàn)在窗 口內(nèi)的數(shù)據(jù)就是被計(jì)算的數(shù)據(jù)集合。步驟S232、分析日志緩沖區(qū)中的日志,統(tǒng)計(jì)事件序列的屬性,所述屬性包括諸如支 持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù)等內(nèi)容。步驟S233、基于Apriori-SO關(guān)聯(lián)規(guī)則挖掘算法在線分析事件規(guī)則。所述 Apriori-SO關(guān)聯(lián)規(guī)則挖掘算法是在現(xiàn)有技術(shù)中的Apriori算法的基礎(chǔ)上所做的改進(jìn)。 Apriori-SO算法通過(guò)分析日志緩沖區(qū)time frame的日志,對(duì)規(guī)則集進(jìn)行修改,對(duì)已有規(guī) 則的屬性進(jìn)行修改,同時(shí)產(chǎn)生新的規(guī)則。Apriori-SO算法需要以下輸入值所有事件的 已有計(jì)數(shù),包括支持度計(jì)數(shù)、后驗(yàn)度計(jì)數(shù)、置信度、后驗(yàn)度等屬性在內(nèi)的已有規(guī)則。利用 Apriori-S0算法分析事件規(guī)則具體包括以下步驟步驟a、定義以下閾值時(shí)間閾值Tw、事件規(guī)則的支持度計(jì)數(shù)閾值Sth、事件規(guī)則的 置信度閾值(the threshold of confidence) Cth,以及時(shí)間幀(timeframe)的大小(time frame = NXTW,定義N值即可)。頻繁的1元事件序列候選集C(l)中包括所有事件的已有 計(jì)數(shù)。步驟b、產(chǎn)生所有的二元頻繁事件序列候選集C(2),包括已有的二元事件規(guī)則,以 及具有相同節(jié)點(diǎn)、相同事件類型和相同應(yīng)用的兩個(gè)事件組成的事件序列。步驟c、當(dāng)事件來(lái)到時(shí),將事件保存到時(shí)間幀中。每隔時(shí)間閾值Tw對(duì)時(shí)間幀中的日 志進(jìn)行分析。統(tǒng)計(jì)所有事件的已有計(jì)數(shù)c(l),統(tǒng)計(jì)C (2)中候選的二元頻繁事件序列的支持 度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù)等屬性,計(jì)算置信度和后驗(yàn)度等屬性。步驟d、如果C(2)中候選的二元頻繁事件序列是已有二元規(guī)則,則修改其屬性,否 則,如果C(2)中候選的二元頻繁事件序列的支持度計(jì)數(shù)達(dá)到閾值,則加入二元頻繁事件序 列F(2)中,如果支持度計(jì)數(shù)和置信度都達(dá)到閾值,則產(chǎn)生新的二元規(guī)則,加入到二元規(guī)則集合R(2)中。步驟e、根據(jù)F(k)中的k元頻繁事件序列,對(duì)其進(jìn)行連接操作,產(chǎn)生F(k+1)元頻 繁事件序列候選集。遍歷時(shí)間幀,對(duì)R(k+1)中元素的屬性值進(jìn)行修改。同時(shí)遍歷時(shí)間幀, 將其作為日志的一個(gè)采樣sampling,對(duì)F(k+1)中而不在R(k+1)的元素屬性值進(jìn)行近似計(jì) 算。在近似計(jì)算時(shí),對(duì)于二元規(guī)則,直接統(tǒng)計(jì)支持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù),從而計(jì)算出置信度 和后驗(yàn)度;對(duì)于k+1元候選規(guī)則,以時(shí)間幀中的置信度和后驗(yàn)度作為其近似值,然后再計(jì)算 出支持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù)的近似值步驟f、重復(fù)前一步驟e,直到產(chǎn)生所有的頻繁事件序列(或者可定義事件規(guī)則的 最大元素?cái)?shù))。步驟g、當(dāng)有其它事件來(lái)到時(shí),重新執(zhí)行步驟c。通過(guò)以上步驟,可以對(duì)日志進(jìn)行在線分析,對(duì)已有的規(guī)則的屬性進(jìn)行修改,并且產(chǎn) 生新的事件關(guān)聯(lián)規(guī)則。在得到事件關(guān)聯(lián)規(guī)則后,在步驟S30中,就可以根據(jù)規(guī)則實(shí)現(xiàn)對(duì)日志的在線預(yù)測(cè)。 在傳統(tǒng)的離線分析方法中,事件預(yù)測(cè)是基于對(duì)歷史日志分析所產(chǎn)生的事件規(guī)則進(jìn)行預(yù)測(cè) 的;而在在線日志關(guān)聯(lián)分析中,事件預(yù)測(cè)是基于對(duì)日志流進(jìn)行分析所產(chǎn)生的不斷變化的事 件規(guī)則進(jìn)行預(yù)測(cè)的,這種事件規(guī)則更能正確反映日志中事件之間的關(guān)聯(lián)。其中所述的日志 流是指把日志當(dāng)作特殊的數(shù)據(jù)流來(lái)分析,日志流是一系列事件按照發(fā)生的時(shí)間戳順序發(fā)生 所產(chǎn)生的數(shù)據(jù)流。日志流繼承了數(shù)據(jù)流的一些特點(diǎn),在連續(xù)的無(wú)邊界的日志流中,短時(shí)間內(nèi) 可能會(huì)有大量的日志發(fā)生。傳統(tǒng)的數(shù)據(jù)挖掘算法沒(méi)有足夠的時(shí)間來(lái)遍歷完整的數(shù)據(jù)庫(kù)或者 執(zhí)行多路遍歷。這對(duì)在線日志分析方法在處理速度、日志保存、日志遍歷上等由此產(chǎn)生了一 些新的挑戰(zhàn)(1)算法要能快速的分析日志,至少要超過(guò)日志的到來(lái)速度。(2)在線處理日 志時(shí)沒(méi)有足夠的空間來(lái)保存所有的日志流。因此只能保存部分日志信息以便處理。(3)由 于只能保存部分日志,無(wú)法讀取所有的系統(tǒng)日志。要求算法只能對(duì)所有的系統(tǒng)日志進(jìn)行一 次遍歷。在日志預(yù)測(cè)中包括有三個(gè)重要的時(shí)間點(diǎn)預(yù)測(cè)時(shí)間點(diǎn)、被預(yù)測(cè)時(shí)間點(diǎn)、過(guò)期時(shí)間 點(diǎn)。預(yù)測(cè)時(shí)間點(diǎn)(predicting point)指的是進(jìn)行預(yù)測(cè)的時(shí)間點(diǎn)。被預(yù)測(cè)時(shí)間點(diǎn)(predicted point)指的是被預(yù)測(cè)的事件實(shí)際發(fā)生的時(shí)間點(diǎn)。過(guò)期時(shí)間點(diǎn)(expiration point)指 的是預(yù)測(cè)的過(guò)期時(shí)間,當(dāng)超過(guò)過(guò)期時(shí)間點(diǎn)時(shí),這個(gè)預(yù)測(cè)便是無(wú)效的。對(duì)于每個(gè)預(yù)測(cè),還 包括三個(gè)重要的屬性值預(yù)測(cè)時(shí)間窗口、預(yù)測(cè)時(shí)間、預(yù)測(cè)有效期。通過(guò)對(duì)預(yù)測(cè)時(shí)間窗口 (predictiontime window)內(nèi)事件的分析,產(chǎn)生事件預(yù)測(cè)。預(yù)測(cè)時(shí)間(prediction time)表 示預(yù)測(cè)事件的預(yù)測(cè)時(shí)間點(diǎn)(predicting point)與預(yù)測(cè)事件的實(shí)際發(fā)生時(shí)間(即predicted point)之間的時(shí)間間隔。預(yù)測(cè)有效期(prediction validduration)指的是預(yù)測(cè)時(shí)間點(diǎn) (predicting point)與預(yù)測(cè)的過(guò)期時(shí)間點(diǎn)(expiration point)之間的時(shí)間間隔。本發(fā)明中在實(shí)現(xiàn)日志的在線預(yù)測(cè)時(shí),通過(guò)設(shè)置預(yù)測(cè)時(shí)間窗口,利用已經(jīng)在線獲取 的事件規(guī)則并通過(guò)失效關(guān)聯(lián)圖表達(dá)的事件關(guān)系來(lái)進(jìn)行在線預(yù)測(cè)的,具體包括以下步驟步驟S31、定義日志預(yù)測(cè)結(jié)果的度量參數(shù)。這些度量參數(shù)包括預(yù)測(cè)正確數(shù)(True Positive)、預(yù)測(cè)錯(cuò)誤數(shù)(False Positive)、預(yù)測(cè)準(zhǔn)確率(Precisionrate)、預(yù)測(cè)查全率 (Recall rate)、平均預(yù)測(cè)時(shí)間(Average prediction time)以及用于預(yù)測(cè)準(zhǔn)確率和預(yù)測(cè) 查全率的加權(quán)調(diào)和平均數(shù)的F-measure。其中,所述的預(yù)測(cè)正確數(shù)表示預(yù)測(cè)事件在預(yù)測(cè)有效期內(nèi)發(fā)生的預(yù)測(cè)數(shù)目;所述的預(yù)測(cè)錯(cuò)誤數(shù)表示預(yù)測(cè)事件沒(méi)有在預(yù)測(cè)有效期內(nèi)發(fā)生的預(yù) 測(cè)數(shù)目;所述的預(yù)測(cè)準(zhǔn)確率表示預(yù)測(cè)正確事件在預(yù)測(cè)中所占的比例,即Precision rate =TP/(TP+FP),預(yù)測(cè)準(zhǔn)確率取值在0和1之間,數(shù)值越接近1,預(yù)測(cè)準(zhǔn)確率就越高。所述 的預(yù)測(cè)查全率表示預(yù)測(cè)正確的事件在事件的比例,即Recall rate = True Positive/所 有事件數(shù)目,預(yù)測(cè)查全率取值在0和1之間,數(shù)值越接近1,預(yù)測(cè)查全率就越高。所述的 平均預(yù)測(cè)時(shí)間表示正確預(yù)測(cè)的事件的預(yù)測(cè)時(shí)間的平均值,平均預(yù)測(cè)時(shí)間越大,留給系統(tǒng)處 理和主動(dòng)防范的時(shí)間就越長(zhǎng)。所述的F-measure表示precision和recall之間的關(guān)系。 F-measure是預(yù)測(cè)準(zhǔn)確率和預(yù)測(cè)查全率的加權(quán)幾何平均值,具體表達(dá)如下f-measure = (λ "2+1) XPrecisionXRecall/(A "2XPrecision+Recall);其中 λ 是一個(gè)預(yù)設(shè)值,是 Precision和Recall的相對(duì)權(quán)重,當(dāng)λ大于1時(shí)表示Precision更重要,λ小于1時(shí)表示 Recall更重要,通常設(shè)定為1,表示二者同等重要。用F-measure—個(gè)數(shù)值就可看出系統(tǒng)的 好壞,F(xiàn)-measure值也是越接近1越好。步驟S32、基于事件關(guān)聯(lián)規(guī)則進(jìn)行事件預(yù)測(cè)。該步驟包括步驟S321、定義預(yù)測(cè)時(shí)間窗口(prediction time window)和預(yù)測(cè)有效期 (prediction valid duration)。步驟S322、根據(jù)事件關(guān)聯(lián)規(guī)則創(chuàng)建失效關(guān)聯(lián)圖。所述失效關(guān)聯(lián)圖是一個(gè)有向無(wú)環(huán)圖(Directed Acyclic Graph,DAG),它包括若干 頂點(diǎn)(Vertex)和邊(Edge)。本發(fā)明中用失效關(guān)聯(lián)圖中的頂點(diǎn)(Vertex)來(lái)表達(dá)事件。每個(gè) 頂點(diǎn)包括了 log id, node id, event id,application等屬性,以及統(tǒng)計(jì)計(jì)數(shù)count等信息。 同時(shí),定義了 vertex type來(lái)標(biāo)i只頂點(diǎn)的類型。Vertex type有Dominant禾口 Recessive兩 種取值。Dominant表示原始的事件,Recessive則用于擴(kuò)展表示多元規(guī)則中所生成的虛擬 的事件。對(duì)于多元的事件規(guī)則,本發(fā)明中把事件規(guī)則的先導(dǎo)看作一個(gè)Recessive類型的頂 點(diǎn)。如對(duì)于事件規(guī)則(A,B,C),則A、B、C對(duì)應(yīng)的頂點(diǎn)都是Dominant的頂點(diǎn),而由此事件規(guī) 則的先導(dǎo)序列(A,B)所生成的頂點(diǎn)AB就是Recessive的頂點(diǎn)。失效關(guān)聯(lián)圖中的頂點(diǎn)(Vertex)通過(guò)邊(Edge)來(lái)連接。邊(Edge)用于表達(dá)事 件之間的關(guān)聯(lián)(事件規(guī)則)。每條邊Edge都包括以下屬性尾頂點(diǎn)(tail vertex)、頭 頂點(diǎn)(head vertex)、支持度計(jì)數(shù)(support count)、后驗(yàn)度計(jì)數(shù)(posterior count)、置 信度(confidence)、后驗(yàn)度(posterior)等事件規(guī)則信息。尾頂點(diǎn)稱為頭頂點(diǎn)的父頂點(diǎn) (parent),頭頂點(diǎn)稱為尾頂點(diǎn)的子頂點(diǎn)(child)。同時(shí),定義edge type來(lái)標(biāo)識(shí)邊的類型。 同 vertex type 一樣,edgetype 有 Dominant 禾口 Recessive 兩禾中取值。Dominant 表不二兀 事件規(guī)則,Recessive則用于表示多元規(guī)則。如果一條邊的某個(gè)頂點(diǎn)是Recessive的,那么 這條邊就是Recessive的。對(duì)于多元的事件規(guī)則,本發(fā)明中把這個(gè)事件規(guī)則看作是事件規(guī)則的先導(dǎo)對(duì)應(yīng)的 Recessive頂點(diǎn)到事件規(guī)則的后續(xù)的二元規(guī)則。如對(duì)于事件規(guī)則(A,B, C),會(huì)擴(kuò)展產(chǎn)生頂 點(diǎn)AB,同時(shí)也會(huì)擴(kuò)展生成對(duì)應(yīng)的事件規(guī)則A- > AB, B- > AB。把事件規(guī)則(A,B, C)看作是 (A,B)-> C的二元規(guī)貝丨」,生成對(duì)應(yīng)的邊AB-> C,可以看出,A->AB,B- > AB和AB-> C 這三條邊都是Recessive的。步驟S3221、對(duì)事件規(guī)則中的事件數(shù)、事件規(guī)則的置信度進(jìn)行排序。先分析多元規(guī)
14則,按照置信度從高到低分析。步驟S3222、對(duì)事件規(guī)則進(jìn)行分析,產(chǎn)生對(duì)應(yīng)的頂點(diǎn)(Recessive類型)和邊 (Recessive類型)。新建一個(gè)特殊的頂點(diǎn)ROOT,事件規(guī)則的第一個(gè)事件對(duì)應(yīng)的頂點(diǎn)以一個(gè) 特殊的頂點(diǎn)ROOT作為父頂點(diǎn),由此產(chǎn)生一個(gè)失效關(guān)聯(lián)圖。步驟S3223、如果失效關(guān)聯(lián)圖G1中的某個(gè)頂點(diǎn)V已經(jīng)存在于其它的一個(gè)失效關(guān)聯(lián) 圖G2中,則對(duì)兩個(gè)失效關(guān)聯(lián)圖進(jìn)行合并操作。分三種情況進(jìn)行合并i.如果V是G1和G2的ROOT頂點(diǎn)的子頂點(diǎn),則將G2的ROOT頂點(diǎn)的其它子頂點(diǎn)作 為G1的ROOT頂點(diǎn)的子頂點(diǎn),而且將G2中V的子頂點(diǎn)作為G1中V的子頂點(diǎn)。ii.如果V是G1的ROOT頂點(diǎn)的子頂點(diǎn),而不是G2的ROOT頂點(diǎn)的子頂點(diǎn),則將V 從G1的ROOT頂點(diǎn)的子頂點(diǎn)中刪除,將G2的ROOT頂點(diǎn)的子頂點(diǎn)作為G1的ROOT頂點(diǎn)的子 頂點(diǎn),而且將G2中V的子頂點(diǎn)作為G1中V的子頂點(diǎn),將G2中V的父頂點(diǎn)作為V的父頂點(diǎn)。iii.如果V不是G1的ROOT頂點(diǎn)的子頂點(diǎn),也不是G2的ROOT頂點(diǎn)的子頂點(diǎn)。則 G2的ROOT頂點(diǎn)的子頂點(diǎn)作為G1的ROOT頂點(diǎn)的子頂點(diǎn),同時(shí)將G2中V的子頂點(diǎn)作為G1中 V的子頂點(diǎn),將G2中V的父頂點(diǎn)作為V的父頂點(diǎn)(可能有多個(gè)父頂點(diǎn))。步驟S3224、由于事件規(guī)則中可能存在循環(huán),如A- > B- > A,在失效關(guān)聯(lián)圖構(gòu)造 時(shí),可能出現(xiàn)環(huán)路,這時(shí)將事件規(guī)則的后續(xù)另設(shè)一個(gè)備份頂點(diǎn),如A- > B- > A轉(zhuǎn)換為A- > B- > A’即可。步驟S3225、在內(nèi)存中保存每個(gè)事件對(duì)應(yīng)的ROOT頂點(diǎn)。步驟S323、基于失效關(guān)聯(lián)圖,進(jìn)行日志事件的預(yù)測(cè)。該步驟包括步驟S3231、定義預(yù)測(cè)時(shí)間窗口 (prediction time window,Tw)、預(yù)測(cè)閾值 (prediction probability threshold, Pth)禾口預(yù)須ij有效期(prediction validduration, Tp);步驟S3232、當(dāng)事件發(fā)生時(shí),標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)狀態(tài)。如果超過(guò)預(yù)測(cè)時(shí)間窗口 Tw,則 頂點(diǎn)被取消標(biāo)識(shí)。步驟S3233、如果一條Recessive邊的尾頂點(diǎn)被標(biāo)識(shí)了,那么這條邊也被標(biāo)識(shí)了。步驟S3234、如果所有以一個(gè)Recessive頂點(diǎn)為頭頂點(diǎn)的Recessive邊都被標(biāo)識(shí), 則這個(gè)Recessive頂點(diǎn)也被標(biāo)識(shí)。步驟S3235、根據(jù)被標(biāo)識(shí)的頂點(diǎn),計(jì)算以其為尾頂點(diǎn)的所有相鄰邊的頭頂點(diǎn)發(fā)生的 概率。在這里假設(shè)以一個(gè)頂點(diǎn)分別為頭頂點(diǎn)和尾頂點(diǎn)的兩條邊是獨(dú)立的。如果一個(gè)頂點(diǎn)發(fā) 生的概率具有多個(gè)值,只考慮其最大值。步驟S3236、如果頂點(diǎn)發(fā)生的概率達(dá)到預(yù)測(cè)閾值Pth,則這個(gè)頂點(diǎn)對(duì)應(yīng)的事件被預(yù) 測(cè)。在預(yù)測(cè)時(shí),找到在預(yù)測(cè)時(shí)間窗口中即將來(lái)臨日志的關(guān)聯(lián)事件;然后基于之前獲得 的事件規(guī)則來(lái)獲取未來(lái)的關(guān)聯(lián)事件。以上是對(duì)本發(fā)明在在線日志分析方法的實(shí)現(xiàn)過(guò)程的說(shuō)明。從上述說(shuō)明可以看出, 本發(fā)明基于日志事件關(guān)聯(lián)規(guī)則和滑動(dòng)時(shí)間窗口來(lái)處理分析日志流,并進(jìn)行實(shí)時(shí)在線預(yù)測(cè), 能對(duì)失效日志等進(jìn)行相關(guān)性分析,找出系統(tǒng)失效原因及故障類型,有利于預(yù)測(cè)系統(tǒng)的行為 及提高系統(tǒng)生產(chǎn)率,降低總擁有成本。本發(fā)明在利用事件關(guān)聯(lián)規(guī)則做在線預(yù)測(cè)時(shí)采用了圖論知識(shí),較真實(shí)地用節(jié)點(diǎn)和邊表達(dá)失效日志之間的關(guān)系,具有良好的預(yù)測(cè)效果。 最后所應(yīng)說(shuō)明的是,以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案而非限制。盡管參 照實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,對(duì)本發(fā)明的技術(shù)方 案進(jìn)行修改或者等同替換,都不脫離本發(fā)明技術(shù)方案的精神和范圍,其均應(yīng)涵蓋在本發(fā)明 的權(quán)利要求范圍當(dāng)中。
權(quán)利要求
一種在線日志分析方法,包括步驟1)、從機(jī)群系統(tǒng)的各個(gè)節(jié)點(diǎn)上在線獲取日志文件;步驟2)、根據(jù)所述日志文件定義事件序列與事件關(guān)聯(lián)規(guī)則,然后對(duì)當(dāng)前時(shí)間幀中的一元事件序列進(jìn)行統(tǒng)計(jì),找出由頻繁的一元事件序列所組成的集合,進(jìn)而得到二元頻繁事件序列候選集C(2);在一定的時(shí)間間隔后統(tǒng)計(jì)所述C(2)中候選二元頻繁事件序列的支持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù),計(jì)算置信度和后驗(yàn)度;根據(jù)所述支持度計(jì)數(shù)生成二元頻繁事件序列集合F(2),根據(jù)所述支持度計(jì)數(shù)和置信度生成二元規(guī)則集合R(2);重復(fù)這一過(guò)程直到得到F(k)和R(k),對(duì)F(k)中的k元頻繁事件序列進(jìn)行連接操作,產(chǎn)生F(k+1)元頻繁事件序列集合;對(duì)在F(k+1)中且不在R(k+1)的元素的屬性值進(jìn)行近似計(jì)算,直到產(chǎn)生所有的頻繁事件序列;最后根據(jù)所述的頻繁事件序列找到事件關(guān)聯(lián)規(guī)則;步驟3)、根據(jù)所述的事件關(guān)聯(lián)規(guī)則在線預(yù)測(cè)日志中的事件。
2.根據(jù)權(quán)利要求1所述的在線日志分析方法,其特征在于,在所述的步驟1)和所述的 步驟2)之間,還包括步驟a)、將來(lái)自機(jī)群系統(tǒng)中不同節(jié)點(diǎn)上的日志文件的格式轉(zhuǎn)換為統(tǒng)一的格式。
3.根據(jù)權(quán)利要求1或2所述的在線日志分析方法,其特征在于,在所述的步驟1)和所 述的步驟2)之間,還包括步驟b)、刪除所述日志文件中重復(fù)、冗余的數(shù)據(jù)。
4.根據(jù)權(quán)利要求2所述的在線日志分析方法,其特征在于,所述的步驟a)包括 步驟a-Ι)、為日志文件定義統(tǒng)一格式;步驟a_2)、定義用于描述日志解析過(guò)程中所用到的日志格式、日志屬性、日志關(guān)鍵字的 配置文件;步驟a_3)、利用所述配置文件對(duì)對(duì)機(jī)群系統(tǒng)中各個(gè)節(jié)點(diǎn)的日志文件加以解析; 步驟a_4)、根據(jù)日志文件解析后的內(nèi)容將各個(gè)節(jié)點(diǎn)上不同格式的日志文件轉(zhuǎn)換成相同 格式的日志文件。
5.根據(jù)權(quán)利要求3所述的在線日志分析方法,其特征在于,所述的步驟b)包括 步驟b-1)、刪除日志文件中的重復(fù)事件,只保留所述重復(fù)事件的一條記錄;所述重復(fù)事件包括被不同的節(jié)點(diǎn)重復(fù)記錄,具有相同的時(shí)間戳和內(nèi)容的事件,或在短時(shí)間中重復(fù)出 現(xiàn),具有較近的時(shí)間戳和內(nèi)容的事件;步驟b-2)、對(duì)日志文件中的事件做周期性的聚類分析,找出周期性事件,刪除所述周期 性事件中的多余事件;所述的周期性事件為在固定的時(shí)間間隔內(nèi)循環(huán)出現(xiàn),具有相同內(nèi)容 的事件。
6.根據(jù)權(quán)利要求1或2或3所述的在線日志分析方法,其特征在于,所述的步驟2)包括步驟2-1)、定義包括時(shí)間閾值Tw、事件規(guī)則的支持度計(jì)數(shù)閾值Sth、事件規(guī)則的置信度 閾值Cth在內(nèi)的閾值,以及時(shí)間幀的大??;步驟2-2)、計(jì)算實(shí)時(shí)來(lái)到當(dāng)前時(shí)間幀中的頻繁的一元事件序列候選集C(I)中的已有 計(jì)數(shù),并據(jù)此產(chǎn)生所有的二元頻繁事件序列候選集C(2);所述C(2)包括已有的二元事件規(guī) 則,以及具有相同節(jié)點(diǎn)、相同事件類型和相同應(yīng)用的兩個(gè)事件組成的事件序列;步驟2-3)、當(dāng)事件來(lái)到時(shí),將事件保存到當(dāng)前時(shí)間幀中,每隔時(shí)間閾值Tw對(duì)時(shí)間幀中的日志進(jìn)行分析,統(tǒng)計(jì)所有事件的已有計(jì)數(shù)C (1),統(tǒng)計(jì)C (2)中候選的二元頻繁事件序列的 支持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù),計(jì)算置信度和后驗(yàn)度;步驟2-4)、當(dāng)所述C (2)中候選的二元頻繁事件序列為已有二元規(guī)則時(shí),修改包括支持 度計(jì)數(shù)、置信度、后驗(yàn)度計(jì)數(shù)、后驗(yàn)度在內(nèi)的屬性;否則,當(dāng)所述C(2)中候選的二元頻繁事 件序列的支持度計(jì)數(shù)達(dá)到支持度計(jì)數(shù)閾值Sth,則加入二元頻繁事件序列F (2)中,當(dāng)支持 度計(jì)數(shù)和置信度分別達(dá)到支持度計(jì)數(shù)閾值Sth閾值和事件規(guī)則的置信度閾值Cth時(shí),產(chǎn)生 新的二元規(guī)則,并將其加入到二元規(guī)則集合R(2)中; 步驟2-5)、依此類推,直到生成F(k)和R(k);步驟2-6)、對(duì)F(k)中的k元頻繁事件序列進(jìn)行連接操作,產(chǎn)生F(k+1)元頻繁事件序 列候選集,遍歷時(shí)間幀,對(duì)R(k+1)中元素的屬性值(計(jì)數(shù)值)進(jìn)行修改;同時(shí)遍歷時(shí)間幀, 將其作為日志的一個(gè)采樣,對(duì)在F(k+1)中而不在R(k+1)的元素的所述屬性值進(jìn)行近似計(jì) 算;步驟2-7)、重復(fù)前一步驟,直到產(chǎn)生所有的頻繁事件序列。
7.根據(jù)權(quán)利要求6所述的在線日志分析方法,其特征在于,在所述的步驟2-6)中,對(duì)所 述屬性值進(jìn)行近似計(jì)算包括對(duì)于二元規(guī)則,直接統(tǒng)計(jì)支持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù),從而計(jì)算出置信度和后驗(yàn)度; 對(duì)于k+Ι元候選規(guī)則,以時(shí)間幀中的置信度和后驗(yàn)度作為其近似值,然后再計(jì)算出支 持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù)的近似值。
8.根據(jù)權(quán)利要求1或2或3所述的在線日志分析方法,其特征在于,所述的步驟3)包括步驟3-1)、定義預(yù)測(cè)時(shí)間窗口和預(yù)測(cè)有效期; 步驟3-2)、根據(jù)所述的事件關(guān)聯(lián)規(guī)則創(chuàng)建失效關(guān)聯(lián)圖; 步驟3-3)、基于所述的失效關(guān)聯(lián)圖進(jìn)行日志事件的在線預(yù)測(cè)。
9.根據(jù)權(quán)利要求8所述的在線日志分析方法,其特征在于,所述的步驟3-2)包括 步驟3-2-1)、對(duì)所述事件關(guān)聯(lián)規(guī)則中的事件數(shù)、事件規(guī)則的置信度進(jìn)行排序;步驟3-2-2)、對(duì)所述事件關(guān)聯(lián)規(guī)則進(jìn)行分析,產(chǎn)生對(duì)應(yīng)的頂點(diǎn)和邊,并新建一個(gè)特殊的 頂點(diǎn)ROOT,所述事件關(guān)聯(lián)規(guī)則的第一個(gè)事件對(duì)應(yīng)的頂點(diǎn)以一個(gè)特殊的頂點(diǎn)ROOT作為父頂 點(diǎn),由此產(chǎn)生一個(gè)失效關(guān)聯(lián)圖;步驟3-2-3)、如果一個(gè)失效關(guān)聯(lián)圖中的某個(gè)頂點(diǎn)已經(jīng)存在于另一個(gè)失效關(guān)聯(lián)圖中,則 對(duì)這兩個(gè)失效關(guān)聯(lián)圖進(jìn)行合并操作;步驟3-2-4)、當(dāng)所述失效關(guān)聯(lián)圖在構(gòu)造過(guò)程中出現(xiàn)環(huán)路時(shí),為事件關(guān)聯(lián)規(guī)則的后續(xù)另 設(shè)一個(gè)備份頂點(diǎn);步驟3-2-5)、在內(nèi)存中保存每個(gè)事件對(duì)應(yīng)的ROOT頂點(diǎn)。
10.根據(jù)權(quán)利要求8所述的在線日志分析方法,其特征在于,所述的步驟3-3)包括 步驟3-3-1)、定義預(yù)測(cè)時(shí)間窗口、預(yù)測(cè)閾值和預(yù)測(cè)有效期;步驟3-3-2)、當(dāng)事件發(fā)生時(shí),標(biāo)識(shí)對(duì)應(yīng)的頂點(diǎn)狀態(tài),如果超過(guò)所述的預(yù)測(cè)時(shí)間窗口,則 頂點(diǎn)被取消標(biāo)識(shí);步驟3-3-3)、當(dāng)一條邊的尾頂點(diǎn)被標(biāo)識(shí),則這條邊也被標(biāo)識(shí);步驟3-3-4)、當(dāng)所有以一個(gè)頂點(diǎn)為頭頂點(diǎn)的邊都被標(biāo)識(shí),則該頂點(diǎn)也被標(biāo)識(shí);步驟3-3-5)、根據(jù)被標(biāo)識(shí)的頂點(diǎn),計(jì)算以其為尾頂點(diǎn)的所有相鄰邊的頭頂點(diǎn)發(fā)生的概率;步驟3-3-6)、如果頂點(diǎn)發(fā)生的概率達(dá)到所述的預(yù)測(cè)閾值,則這個(gè)頂點(diǎn)對(duì)應(yīng)的事件被預(yù)測(cè)。
11. 一種在線日志分析系統(tǒng),其特征在于,包括日志代理、日志服務(wù)器以及主動(dòng)管理系 統(tǒng);其中,所述的日志代理搜集機(jī)群系統(tǒng)上各個(gè)數(shù)據(jù)節(jié)點(diǎn)的日志文件,將所搜集到的日志文 件發(fā)送到所述的日志服務(wù)器上;所述的日志服務(wù)器對(duì)所述的日志文件進(jìn)行預(yù)處理與過(guò)濾, 對(duì)過(guò)濾后的日志文件進(jìn)行關(guān)聯(lián)分析與挖掘,找出事件關(guān)聯(lián)規(guī)則,將這一事件關(guān)聯(lián)規(guī)則發(fā)送 到所述的主動(dòng)管理系統(tǒng);所述的主動(dòng)管理系統(tǒng)根據(jù)所述事件關(guān)聯(lián)規(guī)則在線預(yù)測(cè)日志中的事 件。
全文摘要
本發(fā)明提供一種在線日志分析方法,包括從機(jī)群系統(tǒng)的各個(gè)節(jié)點(diǎn)上在線獲取日志文件;根據(jù)日志文件定義事件序列與事件關(guān)聯(lián)規(guī)則,然后統(tǒng)計(jì)一元事件序列,找出頻繁的一元事件序列集合,得到二元頻繁事件序列候選集C(2);統(tǒng)計(jì)C(2)中候選二元頻繁事件序列的支持度計(jì)數(shù)和后驗(yàn)度計(jì)數(shù),計(jì)算置信度和后驗(yàn)度;生成二元頻繁事件序列集合F(2)和二元規(guī)則集合R(2);重復(fù)這一過(guò)程直到得到F(k)和R(k),對(duì)F(k)中的k元頻繁事件序列進(jìn)行連接操作,產(chǎn)生F(k+1)元頻繁事件序列集合;對(duì)在F(k+1)中且不在R(k+1)的元素的屬性值進(jìn)行近似計(jì)算,直到產(chǎn)生所有的頻繁事件序列;由頻繁事件序列找到事件關(guān)聯(lián)規(guī)則;根據(jù)事件關(guān)聯(lián)規(guī)則在線預(yù)測(cè)日志中的事件。
文檔編號(hào)H04L12/26GK101888309SQ20101022197
公開(kāi)日2010年11月17日 申請(qǐng)日期2010年6月30日 優(yōu)先權(quán)日2010年6月30日
發(fā)明者任睿, 周偉, 王磊, 詹劍鋒 申請(qǐng)人:中國(guó)科學(xué)院計(jì)算技術(shù)研究所