本發(fā)明屬于數(shù)據(jù)挖掘技術(shù)領(lǐng)域,具體涉及一種基于數(shù)據(jù)立方體的分布式系統(tǒng)故障診斷方法。
背景技術(shù):
分布式系統(tǒng)由部署在不同地域的軟硬件設(shè)施共同構(gòu)成,向不同區(qū)域的互聯(lián)網(wǎng)用戶提供服務(wù)。對于分布式系統(tǒng)的監(jiān)測通常包括模擬用戶的外部測試和對系統(tǒng)內(nèi)部設(shè)備和軟件等的監(jiān)測。由于分布式系統(tǒng)自身結(jié)構(gòu)復(fù)雜,一個系統(tǒng)故障可能引起多項監(jiān)測指標(biāo)異常和大量測試失效,系統(tǒng)管理員難以快速準(zhǔn)確地診斷故障原因。同時,系統(tǒng)內(nèi)部對設(shè)備和軟件的監(jiān)測往往存在盲點,使得內(nèi)部監(jiān)測指標(biāo)均正常,但仍然發(fā)生系統(tǒng)失效。因此,將外部測試數(shù)據(jù)和內(nèi)部監(jiān)測數(shù)據(jù)進(jìn)行歸納與分析,發(fā)明有效的基于數(shù)據(jù)分析的分布式系統(tǒng)故障診斷的輔助工具非常有必要。
與本發(fā)明相關(guān)的技術(shù)包括智能故障診斷、分布式信息系統(tǒng)故障定位技術(shù)、數(shù)據(jù)分析技術(shù)。
故障診斷技術(shù)是一種利用設(shè)備當(dāng)前狀態(tài)信息和歷史狀況,通過一定分析方法對設(shè)備狀態(tài)進(jìn)行評價的狀態(tài)識別技術(shù)。智能故障診斷是利用人工智能技術(shù),將系統(tǒng)當(dāng)前狀態(tài)和歷史狀況描述為數(shù)學(xué)符號,通過數(shù)理邏輯、機(jī)器學(xué)習(xí)等方法確定故障所在大致部位的技術(shù)。智能故障診斷技術(shù)包括故障樹分析、規(guī)則推理、案例推理、決策樹、神經(jīng)網(wǎng)絡(luò)、診斷貝葉斯網(wǎng)絡(luò)診斷技術(shù)等。故障樹分析方法具有強大知識表達(dá)能力,但對于復(fù)雜系統(tǒng)診斷知識獲取困難。規(guī)則推理和案例推理診斷技術(shù)以符號形式顯示地表示、存儲和處理知識,表示直觀、易理解,但缺點是基于符號推理的診斷技術(shù)知識獲取困難、推理速度慢,不太適于實時診斷要求較高的診斷領(lǐng)域。決策樹和神經(jīng)網(wǎng)絡(luò)診斷技術(shù)以數(shù)值矩陣形式表示和存儲知識,計算過程等價于推理過程,不需人為干預(yù),推理速度快,但缺點是決策樹和診斷貝葉斯網(wǎng)絡(luò)方法無法診斷未知故障,而神經(jīng)網(wǎng)絡(luò)模型參數(shù)的實際意義難以解釋。
隨著分布式信息系統(tǒng)的迅速發(fā)展,數(shù)據(jù)交互行為越來越復(fù)雜,系統(tǒng)故障不斷攀升,分布式信息系統(tǒng)的智能維護(hù)也越來越受到關(guān)注。通常對系統(tǒng)運行狀態(tài)的監(jiān)測包括監(jiān)測系統(tǒng)硬件性能指標(biāo)、監(jiān)測操作系統(tǒng)的屬性、監(jiān)測應(yīng)用程序的吞吐量等,并進(jìn)一步地利用數(shù)據(jù)挖掘、機(jī)器學(xué)習(xí)和統(tǒng)計方法進(jìn)行自動化的故障排除和減少人工干預(yù)?;谑录幚淼姆植际叫畔⑾到y(tǒng)故障定位技術(shù)通過構(gòu)建一種基于集合的事件流模型,對事件進(jìn)行形式化定義并定義操作,使得用戶通過掌握幾個簡單的集合操作來定義復(fù)雜的故障規(guī)則。IBM研究人員通過主動探測結(jié)合貝葉斯網(wǎng)絡(luò)進(jìn)行故障診斷,提出序貫多故障方法求得問題的近似解。以上兩種方法仍然是對已知故障類型的診斷。
數(shù)據(jù)分析是指用適當(dāng)?shù)慕y(tǒng)計分析方法對收集來的大量數(shù)據(jù)進(jìn)行分析,提取有用信息和形成結(jié)論而對數(shù)據(jù)加以詳細(xì)研究和概括總結(jié)的過程。在實用中,數(shù)據(jù)分析可幫助人們做出判斷,以便采取適當(dāng)行動。在統(tǒng)計學(xué)領(lǐng)域,有些人將數(shù)據(jù)分析劃分為描述性統(tǒng)計分析、探索性數(shù)據(jù)分析以及驗證性數(shù)據(jù)分析;其中,探索性數(shù)據(jù)分析側(cè)重于在數(shù)據(jù)之中發(fā)現(xiàn)新的特征,而驗證性數(shù)據(jù)分析則側(cè)重于已有假設(shè)的證實或證偽。分析方法主要有列表法、作圖法,以及簡單數(shù)學(xué)運算、統(tǒng)計、快速傅里葉變換、平滑、基線分析等。近年來,隨著大數(shù)據(jù)時代的到來,數(shù)據(jù)的獲取和存儲能力得到了前所未有的發(fā)展,數(shù)據(jù)的價值日益凸顯,數(shù)據(jù)分析在醫(yī)療、通信、能源等行業(yè)得到了深入而廣泛的應(yīng)用。
數(shù)據(jù)立方體是一類多維數(shù)據(jù),讓用戶從多個角度探索和分析數(shù)據(jù)集。分布式系統(tǒng)測試數(shù)據(jù)集不僅包括模擬用戶從不同地域、運營商,訪問不同類型服務(wù)的組合的測試,測試數(shù)據(jù)集還形成了覆蓋了分布式系統(tǒng)內(nèi)部不同部署地域、設(shè)備類型、軟件類型、操作系統(tǒng)運行狀態(tài)等屬性,因此自然地構(gòu)成了多維數(shù)據(jù)。目前尚未見到基于數(shù)據(jù)立方體的分布式故障診斷方法。
技術(shù)實現(xiàn)要素:
為了彌補上述不足,本發(fā)明提供一種基于數(shù)據(jù)立方體的分布式系統(tǒng)故障診斷方法,通過獲取數(shù)據(jù)立方體描述測試數(shù)據(jù)集,并對構(gòu)建的數(shù)據(jù)立方體進(jìn)行維度分析;從而快速準(zhǔn)確地診斷分布式系統(tǒng)故障,有效防止系統(tǒng)失效產(chǎn)生的困擾和經(jīng)濟(jì)損失。
為了實現(xiàn)上述發(fā)明目的,本發(fā)明采取如下技術(shù)方案:
一種基于數(shù)據(jù)立方體的分布式系統(tǒng)故障診斷方法,所述方法包括下述步驟:
(1)獲取分布式系統(tǒng)測試數(shù)據(jù),其包括外部測試數(shù)據(jù)和內(nèi)部監(jiān)測定位數(shù)據(jù);
(2)測試數(shù)據(jù)預(yù)處理,建立測試數(shù)據(jù)集;
(3)構(gòu)建數(shù)據(jù)立方體:
(4)通過分析數(shù)據(jù)立方體診斷分布式系統(tǒng)故障;
(5)再次執(zhí)行故障診斷。
優(yōu)選的,所述步驟(1)的外部測試數(shù)據(jù)通過分布式系統(tǒng)覆蓋的不同運營商和測試點定期進(jìn)行效果測試獲取,包括每次測試對應(yīng)的測試地點、測試運營商、服務(wù)類型和測試結(jié)果。
優(yōu)選的,所述步驟(1)中,獲取內(nèi)部監(jiān)測定位數(shù)據(jù)包括:確定分布式系統(tǒng)內(nèi)部路徑,記錄流量經(jīng)過的網(wǎng)絡(luò)設(shè)備、服務(wù)器、軟件類型,以及服務(wù)器CPU占用率和運行狀態(tài)值。
優(yōu)選的,所述步驟(2)中,測試數(shù)據(jù)預(yù)處理包括:將外部測試數(shù)據(jù)和內(nèi)部監(jiān)測定位數(shù)據(jù)匯總;若其屬性值中包含連續(xù)值,則執(zhí)行數(shù)據(jù)泛化處理,使其變?yōu)殡x散值;獲取屬性取值不同時,測試數(shù)據(jù)中的測試次數(shù)和失效次數(shù);生成測試數(shù)據(jù)集。
優(yōu)選的,所述步驟(3)構(gòu)建數(shù)據(jù)立方體包括:定義數(shù)據(jù)立方體由n個維度構(gòu)成(a1,a2,...,an),每個屬性對應(yīng)一個維度;定義每個維度的取值,分別記錄在不同取值下,測試數(shù)據(jù)集的測試次數(shù)、失效次數(shù)和失效概率。
優(yōu)選的,所述步驟(4)診斷分布式系統(tǒng)故障包括:將測試樣本投影到數(shù)據(jù)立方體不同屬性對應(yīng)的維度上;當(dāng)某一設(shè)備或軟件發(fā)生故障或運行狀態(tài)異常時,樣本投影到的各個維度上的失效概率隨之增高,其中,失效概率差異最大為故障源;通過計算測試次數(shù)、失效次數(shù)和失效概率,確定故障源;具體為:
定義內(nèi)部監(jiān)測項對應(yīng)的各維度上的失效概率差異性度量指標(biāo)為Si;選擇Si中的最小值Sg;若Sg小于判定閾值,則記下其屬性ag,并對ag進(jìn)一步判定;否則認(rèn)為系統(tǒng)不存在故障,診斷過程結(jié)束;
確定屬性ag的不同取值xg,j中失效概率最大值,分析該值所對應(yīng)的設(shè)備、軟件或運行狀態(tài)的故障原因。
進(jìn)一步地,所述失效概率差異性度量指標(biāo)Si的表達(dá)式為:
式中,P’ij為類似信息熵,通過歸一化失效概率Pij獲得;Ωi表示屬性ai取值的集合;j為Ωi中第j個取值。
進(jìn)一步地,所述xj的失效概率為P(C|ai=xi,j,xi,j∈Ωi),其中Ωi為屬性ai取值集合,C表示測試發(fā)生失效;
將P(C|ai=xi,j,xi,j∈Ωi)記作Pij,失效概率Pij根據(jù)測試數(shù)據(jù)集中的測試計算獲得,其表達(dá)式為:
式中,nm(A)和nm(C)分別表示序號為m的不同屬性值組合的測試次數(shù)和失效次數(shù)。
進(jìn)一步地,將Pij歸一化,獲取類似信息熵P’ij的
表達(dá)式:
優(yōu)選的,所述步驟(5)再次執(zhí)行故障診斷包括:刪除故障設(shè)備、軟件或運行狀態(tài)相關(guān)的測試樣本后,對剩余測試樣本再次進(jìn)行步驟(4)的故障診斷,直到失效概率差異性度量指標(biāo)均大于判定閾值時,診斷終止。
與現(xiàn)有技術(shù)相比,本發(fā)明達(dá)到的有益效果是:
1)本發(fā)明將測試樣本投影到數(shù)據(jù)立方體不同屬性對應(yīng)的維度上;當(dāng)某個設(shè)備、軟件故障或運行狀態(tài)異常時,相關(guān)樣本投影到各個維度上的失效概率有所增高,尤其故障源對應(yīng)維度上的失效概率差異最為顯著。正是利用上述系統(tǒng)故障時測試數(shù)據(jù)的統(tǒng)計特征,可以快速準(zhǔn)確地發(fā)現(xiàn)故障;從而顯著提高準(zhǔn)確定位故障的效率,大大降低了對故障定位人員的要求。
2)本方法通過統(tǒng)計各維度失效概率的差異性診斷故障,不僅適用于發(fā)現(xiàn)確定地引起系統(tǒng)失效的因素,還適用于發(fā)現(xiàn)以較大概率發(fā)生故障的因素。當(dāng)系統(tǒng)的屬性之間存在相關(guān)性時,優(yōu)先發(fā)現(xiàn)差異最大的屬性、更高概念分層的屬性,發(fā)現(xiàn)的少數(shù)的更高概念分層的故障,更符合實際情況。
附圖說明
圖1為基于數(shù)據(jù)立方體的分布式系統(tǒng)故障診斷方法流程圖;
具體實施方式
以下將結(jié)合附圖,對本發(fā)明的具體實施方式作進(jìn)一步的詳細(xì)說明。
如圖1所示,一種基于數(shù)據(jù)立方體的分布式系統(tǒng)故障診斷方法,所述方法包括下述步驟:
(1)獲取分布式系統(tǒng)測試數(shù)據(jù),其包括外部測試數(shù)據(jù)和內(nèi)部監(jiān)測定位數(shù)據(jù);外部測試數(shù)據(jù)通過分布式系統(tǒng)覆蓋的不同運營商和測試點定期進(jìn)行效果測試獲取,包括每次測試對應(yīng)的測試地點、測試運營商、服務(wù)類型和測試結(jié)果。
獲取內(nèi)部監(jiān)測定位數(shù)據(jù)包括:確定分布式系統(tǒng)內(nèi)部路徑,記錄流量經(jīng)過的網(wǎng)絡(luò)設(shè)備、服務(wù)器、軟件類型,以及服務(wù)器CPU占用率和運行狀態(tài)值。
(2)測試數(shù)據(jù)預(yù)處理,建立測試數(shù)據(jù)集;測試數(shù)據(jù)預(yù)處理包括:將外部測試數(shù)據(jù)和內(nèi)部監(jiān)測定位數(shù)據(jù)匯總;若其屬性值中包含連續(xù)值,則執(zhí)行數(shù)據(jù)泛化處理,使其變?yōu)殡x散值;獲取屬性取值不同時,測試數(shù)據(jù)中的測試次數(shù)和失效次數(shù);生成測試數(shù)據(jù)集;如表1所示。
表1測試數(shù)據(jù)集示例
注:表中n(A)表示測試次數(shù),n(C)表示失效次數(shù)。
(3)構(gòu)建數(shù)據(jù)立方體:定義數(shù)據(jù)立方體由n個維度構(gòu)成(a1,a2,...,an),每個屬性對應(yīng)一個維度;定義每個維度的取值,分別記錄在不同取值下,測試數(shù)據(jù)集的測試次數(shù)、失效次數(shù)和失效概率。
(4)通過分析數(shù)據(jù)立方體診斷分布式系統(tǒng)故障;具體步驟包括:
將測試樣本投影到數(shù)據(jù)立方體不同屬性對應(yīng)的維度上;當(dāng)某一設(shè)備或軟件發(fā)生故障或運行狀態(tài)異常時,樣本投影到的各個維度上的失效概率隨之增高;其中,失效概率差異最大為故障源;通過計算測試次數(shù)、失效次數(shù)和失效概率,確定故障源;具體為:
定義內(nèi)部監(jiān)測項對應(yīng)的各維度上的失效概率差異性度量指標(biāo)為Si;選擇Si中的最小值Sg;若Sg小于判定閾值,則記下其屬性ag,并對ag進(jìn)一步判定;否則認(rèn)為系統(tǒng)不存在故障,診斷過程結(jié)束;例如,表1中服務(wù)類型、系統(tǒng)地域、網(wǎng)絡(luò)設(shè)備、服務(wù)器的維度上計算屬性差異值,分別為0.93、0.76、0.74、0.82、0.99,最小值0.74小于給定閾值0.9,因此判定系統(tǒng)存在故障。
確定屬性ag的不同取值xg,j中失效概率最大值,分析該值所對應(yīng)的設(shè)備、軟件或運行狀態(tài)的故障原因。例如,表1中網(wǎng)絡(luò)設(shè)備N11、N12、N21、N22的失效率分別為0.38、0.08、0.05、0.08,可以判定是設(shè)備N11發(fā)生故障。
其中,失效概率差異性度量指標(biāo)Si的表達(dá)式為:
式中,P’ij為類似信息熵,通過歸一化失效概率Pij獲得;Ωi表示屬性ai取值的集合;j為Ωi中第j個取值。
所述xj的失效概率為P(C|ai=xi,j,xi,j∈Ωi),其中Ωi為屬性ai取值集合,C表示測試發(fā)生失效;
將P(C|ai=xi,j,xi,j∈Ωi)記作Pij,失效概率Pij根據(jù)測試數(shù)據(jù)集中的測試計算獲得,其表達(dá)式為:
式中,nm(A)和nm(C)分別表示序號為m的不同屬性值組合的測試次數(shù)和失效次數(shù)。
Pij歸一化,獲取類似信息熵P’ij的表達(dá)式:
具體故障診斷的操作流程為:計算內(nèi)部監(jiān)測項對應(yīng)的各維度(a1,a2,...,an)上的失效概率差異性度量指標(biāo)Si;對于屬性ai,該屬性值為xj時,失效概率為P(C|ai=xi,j,xi,j∈Ωi),其中Ωi是屬性ai取值的集合,C表示測試發(fā)生失效。為了方便,將P(C|ai=xi,j,xi,j∈Ωi)簡寫為Pij。失效概率Pij的值通過數(shù)據(jù)集中的測試記錄計算,其中nm(A)和nm(C)分別表示序號為m的不同屬性值組合的測試次數(shù)和失效次數(shù)。將Pij歸一化,獲取類似信息熵的計算公式,即
則屬性ai的差異性的計算公式為:
公式中Si取值范圍為[0,1]。Si取值越小標(biāo)識差異越明顯,值為0表示差異最明顯,也就是ai只取某一個值時失效率不為0,取其他值時均為0。Si值為1標(biāo)識差異最小,即P’ij=1/|Ωi|。獲取Si值中最小值Sg,如果Sg小于判定閾值ST時判定為存在故障,如果Sg大于判定閾值ST,則認(rèn)為系統(tǒng)不存在故障,診斷過程結(jié)束。
(5)再次執(zhí)行故障診斷。具體為:刪除故障設(shè)備、軟件或運行狀態(tài)相關(guān)的測試樣本后,對剩余測試樣本再次進(jìn)行步驟(4)的故障診斷,直到失效概率差異性度量指標(biāo)均大于判定閾值時,診斷終止。例如表1中的樣本去掉網(wǎng)絡(luò)設(shè)備為N11的記錄,再次計算各維度上的差異值依次是0.99、0.99、0.99、0.97、0.99,均大于閾值ST=0.9,由此判定其余維度上沒有故障。
最后應(yīng)當(dāng)說明的是:以上實施例僅用以說明本發(fā)明的技術(shù)方案而非對其限制,所屬領(lǐng)域的普通技術(shù)人員參照上述實施例依然可以對本發(fā)明的具體實施方式進(jìn)行修改或者等同替換,這些未脫離本發(fā)明精神和范圍的任何修改或者等同替換,均在申請待批的本發(fā)明的權(quán)利要求保護(hù)范圍之內(nèi)。