本發(fā)明涉及云計(jì)算、計(jì)算機(jī)網(wǎng)絡(luò)和數(shù)據(jù)挖掘領(lǐng)域,特別涉及網(wǎng)絡(luò)故障檢測(cè)技術(shù),具體涉及一種基于日志分析的云平臺(tái)網(wǎng)絡(luò)故障定位方法。
背景技術(shù):
:在當(dāng)今互聯(lián)網(wǎng)以及大數(shù)據(jù)應(yīng)用快速發(fā)展的云時(shí)代,與云計(jì)算結(jié)合的各類新型網(wǎng)絡(luò)應(yīng)用不斷涌現(xiàn),云計(jì)算已經(jīng)逐漸演變?yōu)樾滦托畔⒒到y(tǒng)的主流計(jì)算泛型。云計(jì)算是并行計(jì)算、分布式計(jì)算、效用計(jì)算以及虛擬化等一系列網(wǎng)絡(luò)技術(shù)和計(jì)算技術(shù)融合的產(chǎn)物。云計(jì)算平臺(tái)按照提供服務(wù)層次的不同通??煞譃镮aaS、PaaS、SaaS:IaaS(InfrastructureasaService)提供虛擬化服務(wù),即提供虛擬機(jī)及相應(yīng)的虛擬計(jì)算、虛擬存儲(chǔ)和虛擬網(wǎng)絡(luò)資源。用戶通常關(guān)注虛擬機(jī)的類型以及相關(guān)配置(CPU、內(nèi)存、磁盤、網(wǎng)絡(luò)等),虛擬機(jī)上層的中間件以及應(yīng)用由用戶自己部署。PaaS(PlatformasaService)提供應(yīng)用軟件的運(yùn)行環(huán)境以及中間件服務(wù),用戶往往只關(guān)注應(yīng)用軟件的開發(fā)及在PaaS中部署相關(guān)數(shù)據(jù)和應(yīng)用。SaaS(SoftwareasaService)提供應(yīng)用軟件服務(wù)。作為云計(jì)算的支撐基礎(chǔ)設(shè)施,IaaS云平臺(tái)提供了彈性、可擴(kuò)展的基礎(chǔ)設(shè)施服務(wù),能夠給上層應(yīng)用提供大規(guī)模、按需分配的計(jì)算服務(wù)、存儲(chǔ)服務(wù)和網(wǎng)絡(luò)服務(wù)。其中,IaaS云平臺(tái)的網(wǎng)絡(luò)服務(wù)作為其最為核心的服務(wù),是影響各類云應(yīng)用服務(wù)質(zhì)量的關(guān)鍵。如圖1所示,作為當(dāng)前最流行的云管理平臺(tái),Openstack部署在云平臺(tái)底層物理的計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源之上,可實(shí)現(xiàn)計(jì)算、存儲(chǔ)和網(wǎng)絡(luò)資源的統(tǒng)一管理,提供IaaS層的云基礎(chǔ)設(shè)施統(tǒng)一服務(wù)。特別地,Openstack的Nova和Neutron服務(wù)組件,對(duì)IaaS云平臺(tái)的虛擬機(jī)服務(wù)以及網(wǎng)絡(luò)服務(wù)起著至關(guān)重要的影響。其中,Nova作為OpenStack的核心服務(wù),管理IaaS云平臺(tái)中虛擬機(jī)的整個(gè)生命周期;Neutron提供IaaS云平臺(tái)網(wǎng)絡(luò)服務(wù),為虛擬機(jī)創(chuàng)建虛擬網(wǎng)絡(luò)以及與物理網(wǎng)絡(luò)互聯(lián)。Openstack已經(jīng)成為當(dāng)今工業(yè)界和學(xué)術(shù)界IaaS云平臺(tái)事實(shí)上的部署標(biāo)準(zhǔn)。然而,隨著數(shù)據(jù)中心IaaS云平臺(tái)規(guī)模的不斷擴(kuò)大,其整體網(wǎng)絡(luò)拓?fù)涓鼮閺?fù)雜,平臺(tái)節(jié)點(diǎn)本身的網(wǎng)絡(luò)服務(wù)也更為脆弱,云平臺(tái)的網(wǎng)絡(luò)故障也更加頻繁地發(fā)生。隨著云管理平臺(tái)OpenStack的部署,當(dāng)IaaS云平臺(tái)發(fā)生網(wǎng)絡(luò)故障時(shí),故障根源可能發(fā)生在物理資源(如物理機(jī)宕機(jī))、操作系統(tǒng)(如操作系統(tǒng)故障)、虛擬機(jī)(如虛擬機(jī)故障、配置文件錯(cuò)誤)、OpenStack(如Nova、Neutron服務(wù)失效)等IaaS云平臺(tái)的各層次。通過分析故障日志表象,很難直觀地定位網(wǎng)絡(luò)故障的根源,并且每次發(fā)生網(wǎng)絡(luò)故障時(shí),都需要排查各個(gè)層次以及各組件的日志,耗費(fèi)大量的人力物力,取得的效果仍未必好。因此,當(dāng)IaaS云平臺(tái)發(fā)生網(wǎng)絡(luò)故障時(shí),如何能夠快速準(zhǔn)確地定位發(fā)生故障的原因,進(jìn)而幫助快速的修復(fù)網(wǎng)絡(luò)故障就顯得十分重要和有意義。技術(shù)實(shí)現(xiàn)要素:發(fā)明目的:為了克服現(xiàn)有技術(shù)中存在的不足,本發(fā)明提供一種基于日志分析的IaaS云平臺(tái)網(wǎng)絡(luò)故障定位方法及系統(tǒng),本發(fā)明能夠診斷和定位網(wǎng)絡(luò)故障發(fā)生的位置。技術(shù)方案:為實(shí)現(xiàn)上述目的,本發(fā)明采用的技術(shù)方案為:一種基于日志分析的IaaS云平臺(tái)網(wǎng)絡(luò)故障定位方法,包括以下步驟:步驟1,注入各類典型的網(wǎng)絡(luò)故障,形成相應(yīng)的故障日志信息。步驟2,分別采集步驟1中注入的各類典型的網(wǎng)絡(luò)故障產(chǎn)生的物理資源層、操作系統(tǒng)層、虛擬機(jī)層以及OpenStack網(wǎng)絡(luò)服務(wù)組件層的網(wǎng)絡(luò)故障相關(guān)的日志信息,對(duì)采集到的故障日志信息進(jìn)行預(yù)處理并形成布爾型的故障日志數(shù)據(jù),使用Apriori算法進(jìn)行故障特征挖掘。步驟3,根據(jù)支持度、置信度參數(shù),將故障特征通過貝葉斯公式生成對(duì)應(yīng)特定網(wǎng)絡(luò)故障的關(guān)聯(lián)規(guī)則和知識(shí),并將得到的知識(shí)加入到故障知識(shí)庫中。步驟4,網(wǎng)絡(luò)故障定位,在網(wǎng)絡(luò)故障發(fā)生時(shí),可根據(jù)所采集的故障日志與故障知識(shí)庫的關(guān)聯(lián)規(guī)則進(jìn)行對(duì)比和分析,從而定位云平臺(tái)網(wǎng)絡(luò)故障發(fā)生的層次。所述步驟1中各類典型的網(wǎng)絡(luò)故障形成相應(yīng)的故障日志信息包括物理資源層、操作系統(tǒng)層、虛擬機(jī)層以及OpenStack網(wǎng)絡(luò)服務(wù)組件層網(wǎng)絡(luò)故障相關(guān)的日志信息。所述OpenStack網(wǎng)絡(luò)服務(wù)組件層包括Nova、Neutron、OpenvSwitch、Libvirt的故障日志信息。所述的步驟2中日志信息的采集主要通過將步驟1中形成的故障日志集中式地匯聚到對(duì)日志進(jìn)行數(shù)據(jù)挖掘的節(jié)點(diǎn)上。日志的處理包括數(shù)據(jù)清理、數(shù)據(jù)規(guī)約、數(shù)據(jù)選擇、數(shù)據(jù)集成,進(jìn)而生成可以用于Apriori算法進(jìn)行數(shù)據(jù)挖掘的布爾型事務(wù)數(shù)據(jù)。主要執(zhí)行如下步驟:步驟201,數(shù)據(jù)清理,主要是消除部分與數(shù)據(jù)挖掘無關(guān)的日志,并對(duì)日志中的空缺值通過利用全局變量填寫或者用樣本均值填寫。步驟202,數(shù)據(jù)規(guī)約,利用正則表達(dá)式進(jìn)行模式匹配,通過描述日志格式的正則表達(dá)式,將日志的各個(gè)屬性分開并對(duì)時(shí)間戳、日志內(nèi)容關(guān)鍵字分別進(jìn)行泛化處理,提取同網(wǎng)絡(luò)故障相關(guān)的關(guān)鍵數(shù)據(jù)。步驟203,數(shù)據(jù)選取,選擇與數(shù)據(jù)挖掘有關(guān)的日志屬性。步驟204,數(shù)據(jù)集成,利用時(shí)間窗口的思想將時(shí)間間隔很小的日志進(jìn)行集成,將故障日志信息統(tǒng)一化,并通過格式轉(zhuǎn)換將集成后的關(guān)系型日志轉(zhuǎn)換成布爾型事務(wù)數(shù)據(jù)。步驟205,數(shù)據(jù)挖掘,利用Apriori算法對(duì)日志進(jìn)行按故障種類的挖掘,生成故障對(duì)應(yīng)的相應(yīng)的最大頻繁項(xiàng)集,Apriori算法的輸入是布爾型事務(wù)數(shù)據(jù),輸出是最大頻繁項(xiàng)集。所述的步驟3中將故障特征通過貝葉斯公式生成對(duì)應(yīng)特定網(wǎng)絡(luò)故障的關(guān)聯(lián)規(guī)則和知識(shí)的方法:將步驟2中挖掘的最大頻繁項(xiàng)集,根據(jù)支持度、置信度參數(shù)利用貝葉斯公式生成對(duì)應(yīng)特定網(wǎng)絡(luò)故障的關(guān)聯(lián)規(guī)則和知識(shí),并將這些知識(shí)加入到故障知識(shí)庫中。主要執(zhí)行如下步驟:步驟301,參數(shù)設(shè)定,設(shè)置支持度以及置信度參數(shù)。步驟302,知識(shí)生成,根據(jù)貝葉斯公式,并根據(jù)設(shè)定的支持度以及置信度參數(shù),生成相應(yīng)的網(wǎng)絡(luò)故障知識(shí),并加入到故障知識(shí)庫中。所述步驟4定位云平臺(tái)網(wǎng)絡(luò)故障發(fā)生的層次的方法:根據(jù)步驟3中知識(shí)庫中形成的特定故障知識(shí),當(dāng)網(wǎng)路故障再次發(fā)生時(shí),采集網(wǎng)絡(luò)故障形成的故障日志,將采集到的故障日志經(jīng)過步驟2的方法得到形成的布爾型事務(wù)數(shù)據(jù),進(jìn)而得出產(chǎn)生故障日志的模塊,再根據(jù)故障知識(shí)庫中的知識(shí),按照置信度從大到小的順序來進(jìn)行故障定位。所述步驟4中故障定位包括以下步驟:步驟401,日志采集,將故障形成的日志集中式地匯聚到對(duì)日志進(jìn)行數(shù)據(jù)挖掘的節(jié)點(diǎn)上,通過對(duì)日志包括數(shù)據(jù)清理、數(shù)據(jù)規(guī)約、數(shù)據(jù)選擇、數(shù)據(jù)集成操作在內(nèi)的處理,生成布爾型事務(wù)數(shù)據(jù),進(jìn)而得出產(chǎn)生故障日志的模塊。步驟402,故障定位,根據(jù)故障知識(shí)庫中的知識(shí),并結(jié)合產(chǎn)生故障日志的模塊的信息,按照置信度從大到小的順序來進(jìn)行故障定位。一種基于日志分析的IaaS云平臺(tái)網(wǎng)絡(luò)故障定位系統(tǒng),包括故障注入模塊、日志采集和分析模塊、知識(shí)生成模塊以及故障檢測(cè)與定位模塊,其中:故障注入模塊,用于注入各類典型的網(wǎng)絡(luò)故障,形成相應(yīng)的故障日志信息。所述故障日志信息包括物理資源層故障日志信息、操作系統(tǒng)層故障日志信息、虛擬機(jī)層故障日志信息以及OpenStack網(wǎng)絡(luò)服務(wù)組件故障日志信息。日志采集和分析模塊,用于采集故障注入模塊中形成的故障日志信息一以及根據(jù)故障檢測(cè)與定位模塊控制信采集網(wǎng)絡(luò)故障發(fā)生時(shí)的故障日志信息二,對(duì)采集到的故障日志信息一、故障日志信息二進(jìn)行預(yù)處理并形成相應(yīng)的布爾型的故障日志數(shù)據(jù)一和故障日志數(shù)據(jù)二,使用Apriori算法對(duì)故障日志數(shù)據(jù)一進(jìn)行故障特征挖掘。知識(shí)生成模塊,用于根據(jù)支持度、置信度參數(shù),將日志采集和分析模塊得到的故障特征通過貝葉斯公式生成對(duì)應(yīng)特定網(wǎng)絡(luò)故障的關(guān)聯(lián)規(guī)則和知識(shí),并將得到的知識(shí)加入到故障知識(shí)庫中。故障檢測(cè)與定位模塊,用于在網(wǎng)絡(luò)故障發(fā)生時(shí),控制日志采集和分析模塊采集網(wǎng)絡(luò)故障發(fā)生時(shí)的故障日志信息,并根據(jù)日志采集和分析模塊得到的布爾型的故障日志數(shù)據(jù)二與故障知識(shí)庫中的關(guān)聯(lián)規(guī)則進(jìn)行對(duì)比和分析,從而定位云平臺(tái)網(wǎng)絡(luò)故障發(fā)生的層次。本發(fā)明相比現(xiàn)有技術(shù),具有以下有益效果:(1)實(shí)時(shí)采集IaaS云平臺(tái)中各物理資源、虛擬機(jī)和OpenStack平臺(tái)網(wǎng)絡(luò)組件的日志,通過前期訓(xùn)練可挖掘出云平臺(tái)中特定網(wǎng)絡(luò)故障所對(duì)應(yīng)的知識(shí);(2)在IaaS云平臺(tái)有未知的網(wǎng)絡(luò)故障發(fā)生時(shí),可以通過故障注入的方式形成特定的故障知識(shí),從而為故障定位提供知識(shí)。(3)在Iaas云平臺(tái)發(fā)生網(wǎng)絡(luò)故障時(shí),通過將故障相關(guān)的日志和已有的故障類型做比對(duì),可以較好地診斷和定位網(wǎng)絡(luò)故障發(fā)生的位置;(4)模塊化的設(shè)計(jì)使得網(wǎng)絡(luò)故障定位系統(tǒng)的各組件之間耦合度較低可以適應(yīng)新的需求和擴(kuò)展。附圖說明圖1為IaaS云平臺(tái)中網(wǎng)絡(luò)組件層次圖。圖2為本發(fā)明實(shí)現(xiàn)的IaaS云平臺(tái)網(wǎng)絡(luò)故障定位模塊交互圖。圖3為本發(fā)明實(shí)現(xiàn)的IaaS云平臺(tái)網(wǎng)絡(luò)故障定位流程圖。圖4為IaaS云平臺(tái)中網(wǎng)絡(luò)組件定位流程示意圖。具體實(shí)施方式下面結(jié)合附圖和具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)例僅用于說明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明的各種等價(jià)形式的修改均落于本申請(qǐng)所附權(quán)利要求所限定的范圍。一種基于日志分析的IaaS云平臺(tái)網(wǎng)絡(luò)故障定位方法,如圖1、3、4所示,包括以下步驟:步驟1,注入各類典型的網(wǎng)絡(luò)故障,形成相應(yīng)的故障日志信息。各類典型的網(wǎng)絡(luò)故障形成相應(yīng)的故障日志信息包括物理資源層、操作系統(tǒng)層、虛擬機(jī)層以及OpenStack網(wǎng)絡(luò)服務(wù)組件層網(wǎng)絡(luò)故障相關(guān)的日志信息。所述OpenStack網(wǎng)絡(luò)服務(wù)組件層包括Nova、Neutron、OpenvSwitch、Libvirt的故障日志信息。步驟2,分別采集步驟1中注入的各類典型的網(wǎng)絡(luò)故障產(chǎn)生的物理資源層、操作系統(tǒng)層、虛擬機(jī)層以及OpenStack網(wǎng)絡(luò)服務(wù)組件層的網(wǎng)絡(luò)故障相關(guān)的日志信息,對(duì)采集到的故障日志信息進(jìn)行預(yù)處理并形成布爾型的故障日志數(shù)據(jù),使用Apriori算法進(jìn)行故障特征挖掘。通過將步驟1中形成的故障日志集中式地匯聚到對(duì)日志進(jìn)行數(shù)據(jù)挖掘的節(jié)點(diǎn)上。日志的處理包括數(shù)據(jù)清理、數(shù)據(jù)規(guī)約、數(shù)據(jù)選擇、數(shù)據(jù)集成,進(jìn)而生成可以用于Apriori算法進(jìn)行數(shù)據(jù)挖掘的布爾型事務(wù)數(shù)據(jù)。主要執(zhí)行如下步驟:步驟201,數(shù)據(jù)清理,主要是消除部分與數(shù)據(jù)挖掘無關(guān)的日志,并對(duì)日志中的空缺值通過利用全局變量填寫或者用樣本均值填寫。步驟202,數(shù)據(jù)規(guī)約,利用正則表達(dá)式進(jìn)行模式匹配,通過描述日志格式的正則表達(dá)式,將日志的各個(gè)屬性分開并對(duì)時(shí)間戳、日志內(nèi)容關(guān)鍵字分別進(jìn)行泛化處理,提取同網(wǎng)絡(luò)故障相關(guān)的關(guān)鍵數(shù)據(jù)。步驟203,數(shù)據(jù)選取,選擇與數(shù)據(jù)挖掘有關(guān)的日志屬性。步驟204,數(shù)據(jù)集成,利用時(shí)間窗口的思想將時(shí)間間隔很小的日志進(jìn)行集成,將故障日志信息統(tǒng)一化,并通過格式轉(zhuǎn)換將集成后的關(guān)系型日志轉(zhuǎn)換成布爾型事務(wù)數(shù)據(jù)。步驟205,數(shù)據(jù)挖掘,利用Apriori算法對(duì)日志進(jìn)行按故障種類的挖掘,生成故障對(duì)應(yīng)的相應(yīng)的最大頻繁項(xiàng)集,Apriori算法的輸入是布爾型事務(wù)數(shù)據(jù),輸出是最大頻繁項(xiàng)集。步驟3,根據(jù)支持度、置信度參數(shù),將故障特征通過貝葉斯公式生成對(duì)應(yīng)特定網(wǎng)絡(luò)故障的關(guān)聯(lián)規(guī)則和知識(shí),并將得到的知識(shí)加入到故障知識(shí)庫中。將步驟2中挖掘的最大頻繁項(xiàng)集,根據(jù)支持度、置信度參數(shù)利用貝葉斯公式生成對(duì)應(yīng)特定網(wǎng)絡(luò)故障的關(guān)聯(lián)規(guī)則和知識(shí),并將這些知識(shí)加入到故障知識(shí)庫中。主要執(zhí)行如下步驟:步驟301,參數(shù)設(shè)定,設(shè)置支持度以及置信度參數(shù)。步驟302,知識(shí)生成,根據(jù)貝葉斯公式,并根據(jù)設(shè)定的支持度以及置信度參數(shù),生成相應(yīng)的網(wǎng)絡(luò)故障知識(shí),并加入到故障知識(shí)庫中。步驟4,網(wǎng)絡(luò)故障定位,在網(wǎng)絡(luò)故障發(fā)生時(shí),可根據(jù)所采集的故障日志與故障知識(shí)庫的關(guān)聯(lián)規(guī)則進(jìn)行對(duì)比和分析,從而定位云平臺(tái)網(wǎng)絡(luò)故障發(fā)生的層次。根據(jù)步驟3中知識(shí)庫中形成的特定故障知識(shí),當(dāng)網(wǎng)路故障再次發(fā)生時(shí),采集網(wǎng)絡(luò)故障形成的故障日志,將采集到的故障日志經(jīng)過步驟2的方法得到形成的布爾型事務(wù)數(shù)據(jù),進(jìn)而得出產(chǎn)生故障日志的模塊,再根據(jù)故障知識(shí)庫中的知識(shí),按照置信度從大到小的順序來進(jìn)行故障定位。主要包括以下步驟:步驟401,日志采集,將故障形成的日志集中式地匯聚到對(duì)日志進(jìn)行數(shù)據(jù)挖掘的節(jié)點(diǎn)上,通過對(duì)日志包括數(shù)據(jù)清理、數(shù)據(jù)規(guī)約、數(shù)據(jù)選擇、數(shù)據(jù)集成操作在內(nèi)的處理,生成布爾型事務(wù)數(shù)據(jù),進(jìn)而得出產(chǎn)生故障日志的模塊。步驟402,故障定位,根據(jù)故障知識(shí)庫中的知識(shí),并結(jié)合產(chǎn)生故障日志的模塊的信息,按照置信度從大到小的順序來進(jìn)行故障定位。一種基于日志分析的IaaS云平臺(tái)網(wǎng)絡(luò)故障定位系統(tǒng),如圖2、4所示,在IaaS云平臺(tái)的體系結(jié)構(gòu)中,底層為物理節(jié)點(diǎn),節(jié)點(diǎn)之間通過以太網(wǎng)進(jìn)行連接。在物理節(jié)點(diǎn)上安裝虛擬化軟件KVM,對(duì)底層物理節(jié)點(diǎn)進(jìn)行虛擬化,實(shí)現(xiàn)硬件的虛擬化管理,將分散的服務(wù)器計(jì)算資源整合為統(tǒng)一管理的資源池。資源池的上層為IaaS平臺(tái)層,該層主要部署Openstack軟件,提供對(duì)虛擬機(jī)的開啟,關(guān)閉,重啟,快照等管理。最上層為用戶接口層,供用戶對(duì)IaaS服務(wù)進(jìn)行訪問。在此IaaS基本結(jié)構(gòu)的基礎(chǔ)上,增加故障注入模塊、日志采集和分析模塊、知識(shí)生成模塊以及故障檢測(cè)與定位模塊,從而具體定位發(fā)生在物理資源層、操作系統(tǒng)層、虛擬機(jī)層或者OpenStack服務(wù)組件(如:Nova、Neutron、OpenvSwitch)的網(wǎng)絡(luò)故障的位置。其中:故障注入模塊,用于注入各類典型的網(wǎng)絡(luò)故障,形成相應(yīng)的故障日志信息。所述故障日志信息包括物理資源層故障日志信息、操作系統(tǒng)層故障日志信息、虛擬機(jī)層故障日志信息以及OpenStack網(wǎng)絡(luò)服務(wù)組件故障日志信息。在故障注入模塊中,根據(jù)經(jīng)驗(yàn)總結(jié)得出IaaS云平臺(tái)的典型網(wǎng)絡(luò)故障類型,分別注入各類可能導(dǎo)致網(wǎng)絡(luò)問題的故障:可注入的典型網(wǎng)絡(luò)故障包括物理資源故障、操作系統(tǒng)故障、虛擬機(jī)故障、OpenStack故障等,從而形成各類典型的網(wǎng)絡(luò)故障所對(duì)應(yīng)的故障日志信息,包括了物理資源層、操作系統(tǒng)層、虛擬機(jī)層以及OpenStack網(wǎng)絡(luò)服務(wù)組件(如:Nova、Neutron、OpenvSwitch)的日志信息,以O(shè)penStack的簡化版本的DevStack為例,Nova和Neutron等其他大部分的組件的日志統(tǒng)一存放在/opt/stack/logs的目錄下。日志采集和分析模塊,用于采集故障注入模塊中形成的故障日志信息一以及根據(jù)故障檢測(cè)與定位模塊控制信采集網(wǎng)絡(luò)故障發(fā)生時(shí)的故障日志信息二,對(duì)采集到的故障日志信息一、故障日志信息二進(jìn)行預(yù)處理并形成相應(yīng)的布爾型的故障日志數(shù)據(jù)一和故障日志數(shù)據(jù)二,使用Apriori算法對(duì)故障日志數(shù)據(jù)一進(jìn)行故障特征挖掘。在日志采集和分析模塊中,根據(jù)相關(guān)網(wǎng)絡(luò)故障日志所在文件系統(tǒng)中具體的文件位置,對(duì)數(shù)據(jù)中心所有的網(wǎng)絡(luò)故障日志進(jìn)行實(shí)時(shí)采集,采集的日志傳輸?shù)饺罩痉治龅墓?jié)。根據(jù)網(wǎng)絡(luò)故障日志進(jìn)行數(shù)據(jù)清理、數(shù)據(jù)規(guī)約、數(shù)據(jù)選擇以及數(shù)據(jù)集成等操作后,生成可以用于Apriori算法進(jìn)行數(shù)據(jù)挖掘的布爾型事務(wù)數(shù)據(jù)。采用Linux系統(tǒng)遠(yuǎn)程文件拷貝SCP的方式將網(wǎng)絡(luò)故障日志拷貝到分析節(jié)點(diǎn)上。通過正則表達(dá)式的方式,統(tǒng)一將操作系統(tǒng)日志、OpenStack的日志、Libvert日志、OpenVSwitch日志等格式化成如下的基本格式:<時(shí)間戳><日志等級(jí)><代碼模塊><RequestID><日志內(nèi)容><源代碼位置>。在此基礎(chǔ)上,通過數(shù)據(jù)清理主要是消除網(wǎng)絡(luò)故障知識(shí)的數(shù)據(jù)挖掘無關(guān)的日志,并對(duì)日志中的空缺值通過利用全局變量填寫或者用樣本均值填寫。通過數(shù)據(jù)規(guī)約,將各個(gè)屬性的具體值泛化到適合數(shù)據(jù)挖掘的層次。對(duì)于數(shù)據(jù)規(guī)約的結(jié)果,選擇對(duì)后續(xù)模塊有用的字段,拋棄無用的字段。假設(shè)原始網(wǎng)絡(luò)故障日志如下所示:2015-12-1020:46:49.671ERRORnova.compute.manager[req-5c973fff-e9ba-4317-bfd9-76678cc96584NoneNone]Nocomputenoderecordforhostdevstack-controller。根據(jù)以上步驟,對(duì)上述日志進(jìn)行處理得到的結(jié)果如下:2015-12-1020:46nova.compute[5c973fff-e9ba-4317-bfd9-76678cc96584]。在數(shù)據(jù)集成時(shí),對(duì)于時(shí)間間隔很小的故障日志是對(duì)應(yīng)同一個(gè)故障的,可以把一個(gè)故障導(dǎo)致所有產(chǎn)生故障日志的代碼模塊集成在一起。最終對(duì)于一個(gè)特定的網(wǎng)絡(luò)故障,形成的日志格式為:<序數(shù)><代碼模塊1><代碼模塊2>……<代碼模塊x>。下面的表格描述了通過注入虛擬機(jī)層面的10個(gè)網(wǎng)絡(luò)故障,經(jīng)過上述所有的數(shù)據(jù)處理之后得到的結(jié)果:<1><os><n-sch><q-dhcp><openvswitch><libvirt><2><os><n-cpu><n-net><3><os><n-cpu><n-sch><q-dhcp><q-l3><openvswitch><4><n-cpu><n-net><q-dhcp><q-l3><openvswitch><libvirt><5><os><n-cpu><openvswitch><libvirt><6><os><n-sch><libvirt><7><os><n-cpu><n-net><q-dhcp><q-l3><openvswitch><libvirt><8><os><n-cpu><n-sch><libvirt><9><os><n-cpu><n-sch><n-net><openvswitch><libvirt><10><os><n-cpu><n-sch><n-net><q-dhcp><q-l3><openvswitch><libvirt>其中第一個(gè)故障代表著操作系統(tǒng)、nova-schedule、neutron-dhcp、openvswitch以及l(fā)ibvirt四個(gè)模塊會(huì)產(chǎn)生錯(cuò)誤日志。其他的條目亦類似。由于數(shù)據(jù)挖掘的Apriori算法要求輸入布爾型數(shù)據(jù),需要對(duì)上述數(shù)據(jù)進(jìn)行簡單的格式轉(zhuǎn)換。得到的布爾型數(shù)據(jù)如下表格所示:Apriori算法的輸入是布爾型事務(wù)數(shù)據(jù),輸出是最大頻繁項(xiàng)集。易得出對(duì)于上述示例數(shù)據(jù)的最大頻繁項(xiàng)集:ABGH。上述的數(shù)據(jù)清理主要是消除部分與網(wǎng)絡(luò)故障知識(shí)的數(shù)據(jù)挖掘無關(guān)的日志,并對(duì)日志中的空缺值通過利用全局變量填寫或者用樣本均值填寫。數(shù)據(jù)規(guī)約利用正則表達(dá)式進(jìn)行模式匹配,通過描述日志格式的正則表達(dá)式,將日志的各個(gè)屬性分開并對(duì)時(shí)間戳、日志內(nèi)容關(guān)鍵字等分別進(jìn)行泛化處理,提取同網(wǎng)絡(luò)故障相關(guān)的關(guān)鍵數(shù)據(jù)。數(shù)據(jù)選取,選擇與數(shù)據(jù)挖掘有關(guān)的日志屬性。數(shù)據(jù)集成,利用時(shí)間窗口的思想將時(shí)間間隔很小的日志進(jìn)行集成,將故障日志信息統(tǒng)一化,并通過格式轉(zhuǎn)換將集成后的關(guān)系型日志轉(zhuǎn)換成布爾型事務(wù)數(shù)據(jù)。知識(shí)生成模塊,根據(jù)最大頻繁項(xiàng)集和支持度、置信度等參數(shù),將日志采集和分析模塊得到的故障特征通過貝葉斯公式生成對(duì)應(yīng)特定網(wǎng)絡(luò)故障的關(guān)聯(lián)規(guī)則和知識(shí),并將得到的知識(shí)加入到故障知識(shí)庫中。因此其主要執(zhí)行如下步驟:步驟1,參數(shù)設(shè)定。設(shè)置支持度以及置信度等參數(shù)。步驟2,知識(shí)生成。根據(jù)貝葉斯公式,生成相應(yīng)網(wǎng)絡(luò)故障知識(shí),并加入到知識(shí)庫中。在知識(shí)獲取模塊中,采用貝葉斯條件概率公式:P(B|A)=P(AB)P(A)=N(AB)N(A)]]>其中N代表計(jì)數(shù),那么如果我們用支持?jǐn)?shù)代替其中的計(jì)數(shù)N的話,可以得到如下公式:P(B|A)=P(AB)P(A)=S_Count(AB)S_CountN(A)]]>利用最大頻繁項(xiàng)集和相關(guān)的參數(shù)(如:置信度)來進(jìn)一步生成關(guān)聯(lián)規(guī)則。關(guān)聯(lián)規(guī)則的生成規(guī)則如下:對(duì)于一個(gè)頻繁項(xiàng)集B,對(duì)于它的每個(gè)非空子集A,如果有:P(B|A)>min_conf,那么可以生成關(guān)聯(lián)規(guī)則:A->B。P(B|A)的值就是該規(guī)則的置信度,其中min_conf是最小置信度。對(duì)于示例,設(shè)定支持度為0.5(50%),那么支持?jǐn)?shù)為10*0.5=5個(gè)。對(duì)于之前得到的最大頻繁項(xiàng)集ABGH。列舉出它的所有非空子集,然后計(jì)算其的條件概率,比如:P(ABGH|A)=S_Count(ABGH)S_CountN(A)=59=55.6%]]>P(ABGH|AG)=S_Count(ABGH)S_CountN(AG)=56=83.3%]]>其他的計(jì)算過程類似,這里不一一列舉出來,最終得到的概率如下所示:子集ABGHABAGAH概率55.6%62.5%71.4%62.5%71.4%83.3%71.4%子集BGBHGHABGABHAGHBGH概率100%83.3%83.3%100%100%100%100%如果設(shè)定置信度為0.7,可得到如下知識(shí):1)如果檢測(cè)到管理虛擬網(wǎng)絡(luò)的OpenvSwitch組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為71.4%。2)如果檢測(cè)到Linux操作系統(tǒng)以及Nova組件的計(jì)算模塊Nova-compute產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為71.4%。3)如果檢測(cè)到Linux操作系統(tǒng)、管理虛擬網(wǎng)絡(luò)的OpenvSwitch組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為83.3%。4)如果檢測(cè)到Linux操作系統(tǒng)以及管理虛擬機(jī)的Libvirt組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為71.4%。5)如果檢測(cè)到Nova組件的計(jì)算模塊Nova-compute、管理虛擬網(wǎng)絡(luò)的OpenvSwitch組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為很大可能性。6)如果檢測(cè)到Nova組件的計(jì)算模塊Nova-compute以及管理虛擬機(jī)的Libvirt組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為83.3%。7)如果檢測(cè)到管理虛擬網(wǎng)絡(luò)的OpenvSwitch組件以及管理虛擬機(jī)的Libvirt組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為83.3%。8)如果檢測(cè)到Linux操作系統(tǒng)、Nova組件的計(jì)算模塊Nova-compute、管理虛擬網(wǎng)絡(luò)的OpenvSwitch組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為很大可能性。9)如果檢測(cè)到Linux操作系統(tǒng)、Nova組件的計(jì)算模塊Nova-compute以及管理虛擬機(jī)的Libvirt組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為很大可能性。10)如果檢測(cè)到Linux操作系統(tǒng)、管理虛擬網(wǎng)絡(luò)的OpenvSwitch組件以及管理虛擬機(jī)的Libvirt組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為很大可能性。11)如果檢測(cè)到Nova組件的計(jì)算模塊Nova-compute、管理虛擬網(wǎng)絡(luò)的OpenvSwitch組件以及管理虛擬機(jī)的Libvirt組件產(chǎn)生錯(cuò)誤日志,那么我們可以推斷出是虛擬機(jī)層面發(fā)生了網(wǎng)絡(luò)故障。置信度為很大可能性。故障檢測(cè)與定位模塊,用于在網(wǎng)絡(luò)故障發(fā)生時(shí),控制日志采集和分析模塊采集網(wǎng)絡(luò)故障發(fā)生時(shí)的故障日志信息,并根據(jù)日志采集和分析模塊得到的布爾型的故障日志數(shù)據(jù)二與故障知識(shí)庫中的關(guān)聯(lián)規(guī)則進(jìn)行對(duì)比和分析,從而定位云平臺(tái)網(wǎng)絡(luò)故障發(fā)生的層次。在故障檢測(cè)與定位模塊中,當(dāng)網(wǎng)路故障再次發(fā)生時(shí),根據(jù)生成網(wǎng)絡(luò)故障知識(shí)庫,可以采集故障日志,經(jīng)過同樣的日志處理程序,得出產(chǎn)生故障日志的網(wǎng)絡(luò)組件和模塊,再根據(jù)知識(shí)庫中的網(wǎng)絡(luò)故障知識(shí),按照置信度從大到小的順序?qū)崿F(xiàn)故障定位。本發(fā)明針對(duì)部署OpenStack的IaaS云平臺(tái),提供了一種基于日志分析的云平臺(tái)網(wǎng)絡(luò)故障定位方法,其流程如圖3所示,能夠有效解決包括物理資源、操作系統(tǒng)、虛擬機(jī)、OpenStack等IaaS云平臺(tái)各層次發(fā)生網(wǎng)絡(luò)故障時(shí)的網(wǎng)絡(luò)故障定位問題。本發(fā)明通過注入各類典型的網(wǎng)絡(luò)故障,形成相應(yīng)的各類故障日志。針對(duì)各類故障分別采集物理資源、操作系統(tǒng)、虛擬機(jī)、OpenStack等各層次網(wǎng)絡(luò)故障相關(guān)的日志信息,并對(duì)采集到的網(wǎng)絡(luò)故障日志信息使用Apriori算法進(jìn)行故障特征挖掘。在此基礎(chǔ)上,根據(jù)最大頻繁項(xiàng)集和支持度、置信度等參數(shù),利用貝葉斯公式生成對(duì)應(yīng)特定網(wǎng)絡(luò)故障的關(guān)聯(lián)規(guī)則和知識(shí)。當(dāng)系統(tǒng)再次發(fā)生網(wǎng)絡(luò)故障時(shí),可根據(jù)所采集的故障日志并與知識(shí)庫的關(guān)聯(lián)規(guī)則進(jìn)行對(duì)比和分析,從而定位網(wǎng)絡(luò)故障發(fā)生的層次。以上所述僅是本發(fā)明的優(yōu)選實(shí)施方式,應(yīng)當(dāng)指出:對(duì)于本
技術(shù)領(lǐng)域:
的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤飾,這些改進(jìn)和潤飾也應(yīng)視為本發(fā)明的保護(hù)范圍。當(dāng)前第1頁1 2 3