一種基于日志的計算機系統(tǒng)故障診斷方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種多主機下的日志管理與故障診斷方法及裝置,包括故障日志收集、故障日志分析和故障日志關(guān)聯(lián)分析,故障日志收集用于收集集群內(nèi)所有硬件和軟件的故障日志,并統(tǒng)一存入日志服務(wù)器;故障日志分析對故障日志進行過濾,提取日志的模板信息,并對日志按照故障類型進行分類;故障日志關(guān)聯(lián)分析利用日志分析的結(jié)果并結(jié)合時間窗口進行故障原因分析,把由同一故障引起的相關(guān)故障日志聚為一類,并試圖找到這類故障的根源。本發(fā)明能有效地對系統(tǒng)的運行狀況進行分析和輔助管理員處理系統(tǒng)中的故障,提高了故障類型判斷的準確度。
【專利說明】一種基于日志的計算機系統(tǒng)故障診斷方法及裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計算機系統(tǒng)可靠性下的故障分析領(lǐng)域,更具體地,涉及一種基于日志的計算機系統(tǒng)故障診斷方法及裝置。
【背景技術(shù)】
[0002]隨著云計算結(jié)構(gòu)的引入,計算機系統(tǒng)變得越來越復雜,運作在其上的軟件也越來越豐富,交互更加頻繁,耦合性高,使得系統(tǒng)故障的原因和種類也難以進行分析。為了解決一些關(guān)鍵應用對系統(tǒng)處理能力和容錯能力的嚴苛要求,因此必須對其日常行為進行監(jiān)視和記錄。以便在出現(xiàn)錯誤后,可以及時對故障進行診斷和定位,找出故障發(fā)生的原因,從而修復系統(tǒng)的錯誤、提高系統(tǒng)的性能,保證類似的故障不會再次發(fā)生。
[0003]在一個完整的信息系統(tǒng)中,日志系統(tǒng)是一個非常重要的組成部分。日志是計算機系統(tǒng)運行軌跡的真實寫照,它被廣泛用于系統(tǒng)調(diào)試、監(jiān)控和安全檢測中。日志管理和分析是系統(tǒng)管理和入侵檢測的基礎(chǔ)設(shè)施,是評估系統(tǒng)運行狀況,檢驗網(wǎng)絡(luò)安全策略有效性的必要手段。通過系統(tǒng)日志,不但可以檢測并分析系統(tǒng)故障,還可以監(jiān)測系統(tǒng)狀況。優(yōu)化系統(tǒng)性能,調(diào)整系統(tǒng)行為。
[0004]在對日志進行分析的時候通常有3個主要的階段:(I)日志過濾,過濾與故障無關(guān)的日志;(2)日志故障分析,從日志當中發(fā)現(xiàn)故障的類型,詳細了解錯誤發(fā)生的過程;(3)日志關(guān)聯(lián)分析,把相同故障來源的日志分到同一組,并分析故障在不同節(jié)點和組件間的傳播機制。
[0005]現(xiàn)有的基于日志的診斷方法存在著一下幾方面的問題:
[0006](I)需要大量的人工干預。由于日志的分類的故障診斷都是以人的判斷為中心的,單純依靠計算機的自動處理很難得到想要的結(jié)果。因此傳統(tǒng)的故障診斷系統(tǒng)往往會依賴專家系統(tǒng),需要通過大量的人工處理為其通過基礎(chǔ)數(shù)據(jù)集,計算機在經(jīng)過長時間的學習修正之后才會產(chǎn)生比較理想的結(jié)果,這浪費了大量系統(tǒng)管理員的時間;
[0007](2)響應速度慢。目前的分析系統(tǒng)通常是基于一套復雜的判定模式,很難實時對系統(tǒng)中的故障進行響應;
[0008](3)精確度低。對于日志進行分類的準確度往往較低,而且缺乏修正誤判的算法。
【發(fā)明內(nèi)容】
[0009]針對現(xiàn)有技術(shù)的缺陷,本發(fā)明的目的在于快速地對計算機系統(tǒng)中產(chǎn)生的日志進行分類,并且只需要較少的人工干預,就可以實現(xiàn)高精度的分類。此外,還可以隨時修正分類的結(jié)果,方便學習新的分類知識。
[0010]為實現(xiàn)上述目的,本發(fā)明提出了一種基于日志的計算機系統(tǒng)故障診斷方法,包括以下步驟:
[0011](SI)故障日志分析:對計算機系統(tǒng)中的日志進行實時分析,利用故障關(guān)鍵詞矩陣量化人工學習的故障分類結(jié)果,按照不同的故障類型,對每條故障日志確認故障類型;[0012](S2)故障日志關(guān)聯(lián):利用故障日志分析的結(jié)果并結(jié)合時間窗口進行故障原因分析,把由同一故障引起的相關(guān)故障日志聚合為一類,找到這類故障的根源。
[0013]本發(fā)明還提出了一種基于日志的計算機系統(tǒng)故障診斷裝置,包括以下模塊:
[0014]故障日志分析模塊,用于對計算機系統(tǒng)中的日志進行實時分析,利用故障關(guān)鍵詞矩陣量化人工學習的故障分類結(jié)果,按照不同的故障類型,對每條故障日志確認故障類型;
[0015]故障日志關(guān)聯(lián)模塊,用于利用故障日志分析的結(jié)果并結(jié)合時間窗口進行故障原因分析,把由同一故障引起的相關(guān)故障日志聚合為一類,找到這類故障的根源。
[0016]與現(xiàn)有技術(shù)相比,本發(fā)明的系統(tǒng)具有以下有益效果:
[0017](I)采用了故障關(guān)鍵詞矩陣來存儲機器學習的結(jié)果,可以很方便迅速的對日志進行故障分類,也可以隨時修改判斷規(guī)則和添加新的故障類型。與傳統(tǒng)方式相比提高了處理速度,節(jié)省了重新學習的時間;
[0018](2)提出了新的日志分類方法,可以準確的對日志按照不同的故障類型進行分類;
[0019](3)采用改進的基于時間的日志關(guān)聯(lián)性分析,利用日志的故障類型來指導關(guān)聯(lián)性分析,提高了分類的準確性,降低了誤報率和漏報率;
[0020](4)通過故障關(guān)鍵詞矩陣來保存不同故障類型的時間窗口,可以實時的進行修改,提高了對新故障類型的學習能力。
【專利附圖】
【附圖說明】
[0021]圖1為本發(fā)明實施例的針對多主機環(huán)境的基于故障日志的系統(tǒng)故障診斷裝置的結(jié)構(gòu)示意圖;
[0022]圖2為本發(fā)明實施例的日志故障分類方法的流程圖;
[0023]圖3為本發(fā)明實施例的基于時間的故障關(guān)聯(lián)性分析方法的流程圖。
【具體實施方式】
[0024]為了使本發(fā)明的目的、技術(shù)方案及優(yōu)點更加清楚明白,以下結(jié)合附圖及實施例,對本發(fā)明進行進一步詳細說明。應當理解,此處所描述的具體實施例僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0025]如圖1所示,本發(fā)明提供了一種適用于大型云平臺的系統(tǒng)故障診斷裝置。該裝置可以搜集整個計算機系統(tǒng)中產(chǎn)生的日志,對日志進行統(tǒng)計和學習,并標注每個日志的故障類型。當有故障發(fā)生時,管理員可以點擊相應的日志,系統(tǒng)會找到與該日志存在關(guān)聯(lián)的日志,按照故障傳播的順序形成故障樹,幫助管理員發(fā)現(xiàn)故障診斷故障的根本原因。該裝置主要包括三個組件:
[0026]I)故障日志分析模塊,對計算機系統(tǒng)中的日志進行實時分析,利用故障關(guān)鍵詞矩陣量化人工學習的故障分類結(jié)果,按照不同的故障類型,對每條故障日志確認故障類型;
[0027]2)故障日志關(guān)聯(lián)模塊,利用日志分析的結(jié)果并結(jié)合時間窗口進行故障原因分析,把由同一故障引起的相關(guān)故障日志聚合為一類,并試圖找到這類故障的根源。
[0028]相應地,本發(fā)明實施例的一種基于日志的計算機系統(tǒng)故障診斷方法,包括以下步驟:
[0029](SI)故障日志分析:對計算機系統(tǒng)中的日志進行實時分析,利用故障關(guān)鍵詞矩陣量化人工學習的故障分類結(jié)果,按照不同的故障類型,對每條故障日志確認故障類型;
[0030](S2)故障日志關(guān)聯(lián):利用故障日志分析的結(jié)果并結(jié)合時間窗口進行故障原因分析,把由同一故障引起的相關(guān)故障日志聚合為一類,找到這類故障的根源。
[0031]如圖2所示,本發(fā)明實施例的故障日志分析包括以下步驟:
[0032](I)日志預處理
[0033]日志預處理包括了兩個部分,包括對重復的日志進行過濾和對每條日志中無意義的詞語進行過濾。具體包括以下步驟:
[0034](1-1)對在同一進程在某段時間內(nèi)產(chǎn)生的重復出現(xiàn)的日志進行過濾。
[0035]通過對日志的統(tǒng)計可以發(fā)現(xiàn),這種冗余日志產(chǎn)生的時間都是集中在一起的,產(chǎn)生的進程應該都是相同的。所以在進行預處理的時候,過濾同一進程在某段時間內(nèi)產(chǎn)生的相似日志。具體的時間段根據(jù)不同的計算機系統(tǒng)選擇不同的閥值。即當檢測到某設(shè)備產(chǎn)生的日志與上個日志完全一樣,并且產(chǎn)生的時間在規(guī)定的閥值內(nèi),就去掉該日志。如果在時間閥值內(nèi)出現(xiàn)了不一樣的日志或者相同日志超出了時間范圍,那么就保留該日志。
[0036]在具體應用時,需要對能夠合并的時間段選擇一個合適的閥值,否則如果時間跨度太大,可能會把不同故障產(chǎn)生的類似日志信息給過濾掉,造成漏報。在本實施例中,由于這里的過濾只是作為預處理,為保證不發(fā)生漏報,在判斷的時候,可以只把連續(xù)出現(xiàn)的完全一樣的日志過濾掉,這樣過濾的時間閥值就可以設(shè)計的比較寬松。
[0037](1-2)對于沒有意義的詞,使用英文停詞表進行過濾,只保留真正有實義的詞。
[0038]對于英文中的虛詞這種沒有意義的詞,可以使用英文停詞表進行過濾,該表包含了英文中的大部分虛詞。另外考慮到日志的特殊性,進一步地,還可以過濾大部分的形容詞和副詞,只保留真正有實義的詞。
[0039]2)提取日志不變量,也即通過過濾掉日志文本中的變量,來提取日志當中的結(jié)構(gòu)信息。
[0040]在對日志進行預處理之后,接下來需要提取日志的模板信息,模板信息是進一步提取日志中和故障相關(guān)內(nèi)容的結(jié)果,模板化的日志將用來進行規(guī)制的學習,模板化之后,可以減小解空間,使得最后得到的故障關(guān)鍵詞矩陣更新精簡,另外,模板還會用來匹配系統(tǒng)運行時產(chǎn)生的日志,進行快速分類。
[0041 ] 日志中的變量指的是在日志文本當中會發(fā)生變化的單詞,包括數(shù)字、IP地址、內(nèi)存地址、目錄、文件名、程序名、端口等等。
[0042]具體而言,提取日志不變量的過程分為兩個步驟。
[0043](2-1)采用正則表達式去除日志文本中的數(shù)字、目錄、IP地址、內(nèi)存地址。這些是容易去除的部分,其中,被刪除的元素采用具有不同意義的符號進行替換。由于在語法上單詞存在的前后次序,同時為了區(qū)分不同的位置,通過符號替換,更能夠反映日志的原始信息,減小提取過程中失真。
[0044](2-2)采用基于詞頻統(tǒng)計的方法進一步對日志信息進行篩選,留下日志的模板信
肩、O
[0045]在本實施例中,所述基于詞頻統(tǒng)計的方法可以采用改進的TF-1DF計算每個單詞占整體日志的重要性,具體過程如下:
[0046]這里的詞頻(term frequency,TF)指的是某一個給定的詞語在該設(shè)備輸出的所有日志中出現(xiàn)的頻率。這個數(shù)字是對詞數(shù)(term count)的歸一化,以防止它偏向長的文件。(同一個詞語在長文件里可能會比短文件有更高的詞數(shù),而不管該詞語重要與否。)對于在某一特定設(shè)備里的詞語ti來說,它的重要性可表示為:
[0047]
【權(quán)利要求】
1.一種基于日志的計算機系統(tǒng)故障診斷方法,包括以下步驟: (51)故障日志分析:對計算機系統(tǒng)中的日志進行實時分析,利用故障關(guān)鍵詞矩陣量化人工學習的故障分類結(jié)果,按照不同的故障類型,對每條故障日志確認故障類型; (52)故障日志關(guān)聯(lián):利用故障日志分析的結(jié)果并結(jié)合時間窗口進行故障原因分析,把由同一故障引起的相關(guān)故障日志聚合為一類,找到這類故障的根源。
2.根據(jù)權(quán)利要求1所述的故障診斷方法,其中,步驟(SI)包括以下步驟: (1)日志預處理,包括對重復的日志進行過濾和對每條日志中無意義的詞語進行過濾; (2)提取日志不變量,也即通過過濾掉日志文本中的變量,來提取日志當中的結(jié)構(gòu)信息; (3)日志模板信息過濾:米取自動聚類方式把內(nèi)容和格式相似的日志放到一個分類中; (4)獲取故障關(guān)鍵詞矩陣,其中故障關(guān)鍵詞矩陣是由模板中的單詞出現(xiàn)在每種故障類型的概率構(gòu)成的二維矩陣; (5)利用故障關(guān)鍵詞矩陣對日志進行故障判斷。
3.根據(jù)權(quán)利要求2所述的故障診斷方法,其中,步驟(1)包括以下子步驟: (1-1)對在同一進程在某段時間內(nèi)產(chǎn)生的重復出現(xiàn)的日志進行過濾; (1-2)對于英文中的虛詞,使用英文停詞表進行過濾,只保留真正有實義的詞。
4.根據(jù)權(quán)利要求2所述的故障診斷方法,其中,所述變量指的是在日志文本當中會發(fā)生變化的單詞,包括數(shù)字、IP地址、內(nèi)存地址、目錄、文件名、程序名、端口。
5.根據(jù)權(quán)利要求4所述的故障診斷方法,其中,步驟(2)包括以下子步驟: (2-1)采用正則表達式去除日志文本中的數(shù)字、目錄、IP地址、內(nèi)存地址; (2-2)采用基于詞頻統(tǒng)計的方法進一步對日志信息進行篩選,留下日志的模板信息。
6.根據(jù)權(quán)利要求5所述的故障診斷方法,步驟(2-2)中,所述基于詞頻統(tǒng)計的方法采用改進的TF-1DF來計算每個單詞&占整體日志的重要性
7.根據(jù)權(quán)利要求2所述的故障診斷方法,其中,步驟(4)包括以下子步驟: (4-1)對樣本中的日志進行人工分類,對每一個分類中的日志模板進行調(diào)整,修正自動聚類的結(jié)果; (4-2)對人工分類的結(jié)果進行學習,建立故障關(guān)鍵詞矩陣A:
8.根據(jù)權(quán)利要求2所述的故障診斷方法,其中,步驟(5)具體為:假設(shè)需要判斷日志L的故障類型,則對于日志L中的每一個單詞查找故障關(guān)鍵詞矩陣A中的對應行,計算日志L屬于不同故障類型的概率值,若存在一個最大概率值,則將日志L的故障類型判斷為最大概率值所對應的故障類型。
9.根據(jù)權(quán)利要求1所述的故障診方法,其中,步驟(S2)包括以下步驟: (1)通過傳統(tǒng)地基于時間的關(guān)聯(lián)性分析對日志進行聚合; (2)對每個元組內(nèi)的日志進行人工分析,確定不同故障類型的時間窗口大?。? (3)利用故障關(guān)鍵詞矩陣,在矩陣中添加一行,用來存儲每種故障類型不同的時間窗口大??; (4)選擇需要進行故障診斷的日志,確認該日志的故障類型后,通過查詢故障關(guān)鍵詞矩陣找到該故障相應的時間窗口,然后利用時間窗口對日志進行診斷。
10.一種基于日志的計算機系統(tǒng)故障診斷裝置,包括以下模塊: 故障日志分析模塊,用于對計算機系統(tǒng)中的日志進行實時分析,利用故障關(guān)鍵詞矩陣量化人工學習的故障分類結(jié)果,按照不同的故障類型,對每條故障日志確認故障類型; 故障日志關(guān)聯(lián)模塊,用于利用故障日志分析的結(jié)果并結(jié)合時間窗口進行故障原因分析,把由同一故障引起的相關(guān)故障日志聚合為一類,找到這類故障的根源。
【文檔編號】G06F11/34GK103761173SQ201310740549
【公開日】2014年4月30日 申請日期:2013年12月28日 優(yōu)先權(quán)日:2013年12月28日
【發(fā)明者】鄒德清, 金海 , 秦昊, 羌衛(wèi)中 申請人:華中科技大學