專利名稱:用于數(shù)據(jù)中心的診斷故障事件的方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及故障診斷技術(shù),具體地,涉及在數(shù)據(jù)中心(尤其是分布式數(shù)據(jù)中心)中 使用的診斷故障事件的方法及相應(yīng)的裝置。
背景技術(shù):
在數(shù)據(jù)中心中,事件管理在整個(gè)數(shù)據(jù)中心管理中占據(jù)了很大的比重。隨著數(shù)據(jù)中 心規(guī)模的擴(kuò)大,駐留有各種應(yīng)用、服務(wù)、操作系統(tǒng)等的物理機(jī)可能分布在不同的地理位置。 在這種情況下,遠(yuǎn)程事件管理也成為數(shù)據(jù)中心管理的重要部分。當(dāng)在數(shù)據(jù)中心中發(fā)生故障 事件時(shí),需要進(jìn)行故障事件的診斷,從而提供相應(yīng)的故障解決方案。在現(xiàn)有的診斷故障事件的方法中,數(shù)據(jù)中心的管理員采用“試驗(yàn)檢查”的方法,根 據(jù)日志文件對(duì)數(shù)據(jù)中心的每一個(gè)應(yīng)用、服務(wù)等進(jìn)行檢查以找出故障事件的原因。然而,作為 數(shù)據(jù)中心的用戶,數(shù)據(jù)中心的管理員不能完全知道數(shù)據(jù)中心中業(yè)務(wù)的部署以及應(yīng)用之間和 服務(wù)之間的依賴關(guān)系,這樣,容易造成故障事件診斷的效率低下、耗時(shí)長、甚至不能準(zhǔn)確地 確定故障原因等問題。另外,對(duì)于分布式數(shù)據(jù)中心,由于物理機(jī)可能位于不同的地理位置, 因此,也在一定程度上導(dǎo)致故障事件診斷的時(shí)間較長。另外,當(dāng)數(shù)據(jù)中心發(fā)生故障事件時(shí),如果數(shù)據(jù)中心的拓?fù)浒l(fā)生變化,例如產(chǎn)生了新 的虛擬機(jī)等,則也容易產(chǎn)生診斷錯(cuò)誤的情況。因此,需要提出一種在數(shù)據(jù)中心中自動(dòng)、準(zhǔn)確、快速地診斷故障事件的技術(shù)方案。
發(fā)明內(nèi)容
本發(fā)明正是鑒于上述技術(shù)問題而提出的,其目的在于提供一種用于數(shù)據(jù)中心的診 斷故障事件的方法及其裝置,其能夠自動(dòng)、快速、準(zhǔn)確地診斷故障事件。根據(jù)本發(fā)明的第一個(gè)方面,提供一種用于數(shù)據(jù)中心的診斷故障事件的方法,包括 監(jiān)控在所述數(shù)據(jù)中心內(nèi)是否發(fā)生故障事件;如果發(fā)生故障事件,則確定在發(fā)生所述故障事 件的節(jié)點(diǎn)中正在執(zhí)行的業(yè)務(wù)邏輯;基于與所述數(shù)據(jù)中心對(duì)應(yīng)的管理模型,選擇與所述業(yè)務(wù) 邏輯的執(zhí)行有關(guān)的日志文件,其中所述管理模型反映所述數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署和應(yīng) 用依賴性;以及根據(jù)所述日志文件,對(duì)所述故障事件進(jìn)行診斷。根據(jù)本發(fā)明的另一個(gè)方面,提供一種用于數(shù)據(jù)中心的診斷故障事件的裝置,包括 故障事件監(jiān)控模塊,用于監(jiān)控在所述數(shù)據(jù)中心內(nèi)是否發(fā)生故障事件;業(yè)務(wù)邏輯確定模塊,用 于在發(fā)生故障事件時(shí),確定在發(fā)生所述故障事件的節(jié)點(diǎn)中正在執(zhí)行的業(yè)務(wù)邏輯;日志文件 選擇模塊,用于基于與所述數(shù)據(jù)中心對(duì)應(yīng)的管理模型,選擇與所述業(yè)務(wù)邏輯的執(zhí)行過程有 關(guān)的日志文件,其中所述管理模型反映所述數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署和應(yīng)用依賴性;以 及診斷模塊,用于根據(jù)所述日志文件,對(duì)所述故障事件進(jìn)行診斷。
圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于診斷故障事件的方法的流程圖2是在本發(fā)明的實(shí)施例中使用的數(shù)據(jù)中心的管理模型的一個(gè)例子的示意圖;圖3是用于說明圖1所示的用于診斷故障事件的方法的例子的示意圖;圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于診斷故障事件的裝置的示意性框圖。
具體實(shí)施例方式相信通過以下結(jié)合附圖對(duì)本發(fā)明的具體實(shí)施例的詳細(xì)描述,本發(fā)明的上述和其它 目的、特征和優(yōu)點(diǎn)將會(huì)更加明顯。圖1是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于診斷故障事件的方法的流程圖。下面結(jié)合 附圖,對(duì)本實(shí)施例進(jìn)行詳細(xì)描述。在本實(shí)施例中,“業(yè)務(wù)邏輯”代表能夠完成某個(gè)任務(wù)的一個(gè)或多個(gè)獨(dú)立應(yīng)用的組 合;“應(yīng)用”代表用于某一應(yīng)用目的的處理,可以采用例如軟件等形式;“服務(wù)”代表用于支 持應(yīng)用的執(zhí)行的功能。因此,在數(shù)據(jù)中心中,一個(gè)業(yè)務(wù)邏輯可涉及一個(gè)或多個(gè)應(yīng)用、一個(gè)或 多個(gè)服務(wù)、一個(gè)或多個(gè)操作系統(tǒng)以及一個(gè)或多個(gè)物理機(jī)。如圖1所示,在步驟S101,在業(yè)務(wù)邏輯的執(zhí)行期間,在執(zhí)行該業(yè)務(wù)邏輯的各個(gè)節(jié) 點(diǎn)的日志文件中標(biāo)識(shí)與該業(yè)務(wù)邏輯的執(zhí)行過程對(duì)應(yīng)的日志片斷。在數(shù)據(jù)中心中,當(dāng)某個(gè)業(yè) 務(wù)邏輯被執(zhí)行時(shí),在該業(yè)務(wù)邏輯所涉及的各個(gè)應(yīng)用、服務(wù)、操作系統(tǒng)等節(jié)點(diǎn)將執(zhí)行相關(guān)的處 理。業(yè)務(wù)邏輯有若干業(yè)務(wù)單元,這些業(yè)務(wù)單元通常被部署在不同的節(jié)點(diǎn)上。業(yè)務(wù)邏輯的執(zhí) 行過程按照一定的順序陸續(xù)經(jīng)過各個(gè)業(yè)務(wù)單元和相應(yīng)的節(jié)點(diǎn)。當(dāng)業(yè)務(wù)邏輯的執(zhí)行過程到達(dá) 某個(gè)節(jié)點(diǎn)時(shí),運(yùn)行事先注入該節(jié)點(diǎn)的代碼,并在規(guī)定的時(shí)刻寫日志。在本實(shí)施例中,除了記 錄業(yè)務(wù)邏輯在該節(jié)點(diǎn)的執(zhí)行過程的有關(guān)信息之外,還對(duì)所記錄的信息(日志片斷)進(jìn)行標(biāo) 識(shí)以區(qū)別與不同業(yè)務(wù)邏輯的執(zhí)行過程對(duì)應(yīng)的信息。在一個(gè)實(shí)施例中,通過將業(yè)務(wù)邏輯的標(biāo) 識(shí)符寫入對(duì)應(yīng)的日志片斷中來標(biāo)識(shí)日志片斷。具體地,當(dāng)在某個(gè)節(jié)點(diǎn)運(yùn)行與業(yè)務(wù)邏輯有關(guān) 的代碼時(shí),該業(yè)務(wù)邏輯的標(biāo)識(shí)符被緩存在該節(jié)點(diǎn)中,然后,在寫日志的時(shí)刻,業(yè)務(wù)邏輯的標(biāo) 識(shí)符被讀出并寫入相應(yīng)的日志片斷中。這樣,通過步驟S101,業(yè)務(wù)邏輯的信息可被動(dòng)態(tài)地寫入各個(gè)節(jié)點(diǎn)的日志文件中,從 而各個(gè)應(yīng)用之間和/或服務(wù)之間的依賴關(guān)系也可相應(yīng)地通過日志文件體現(xiàn)。本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,上述步驟SlOl是關(guān)于日志文件的處理,其并不 必須包含在本實(shí)施例的方法中。在步驟S105,監(jiān)控在數(shù)據(jù)中心內(nèi)是否發(fā)生故障事件。通常,當(dāng)數(shù)據(jù)中心的某個(gè)應(yīng) 用、服務(wù)器、網(wǎng)絡(luò)設(shè)備等發(fā)生故障時(shí),會(huì)產(chǎn)生相應(yīng)的事件報(bào)告或告警。因此,通過監(jiān)控是否產(chǎn) 生事件報(bào)告或告警,可以監(jiān)控故障事件的發(fā)生。如果發(fā)生故障事件,則在步驟S110,確定在發(fā)生該故障事件的節(jié)點(diǎn)中正在執(zhí)行的 業(yè)務(wù)邏輯。故障事件的節(jié)點(diǎn)可以是例如應(yīng)用、服務(wù)器、網(wǎng)絡(luò)設(shè)備等。然后,在步驟S115,基于與數(shù)據(jù)中心對(duì)應(yīng)的管理模型,選擇與在步驟SllO中確定 的業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日志文件,其中,管理模型反映數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署 和應(yīng)用依賴性。在本實(shí)施例中,管理模型是在部署數(shù)據(jù)中心時(shí)建立的,其可包含以下的信息1)業(yè)務(wù)邏輯部署鏈,其對(duì)于數(shù)據(jù)中心內(nèi)的每個(gè)業(yè)務(wù)邏輯,記錄與該業(yè)務(wù)邏輯相關(guān) 的節(jié)點(diǎn),這些節(jié)點(diǎn)包括應(yīng)用、服務(wù)、操作系統(tǒng)和物理機(jī);該業(yè)務(wù)邏輯部署鏈反映了數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署情況;以及2)應(yīng)用依賴鏈,其記錄應(yīng)用之間和/或服務(wù)之間的依賴關(guān)系,反映數(shù)據(jù)中心內(nèi)的 應(yīng)用依賴性。進(jìn)一步地,管理模型還可以反映數(shù)據(jù)中心的物理拓?fù)浣Y(jié)構(gòu),在這種情況下,管理模 型還包含以下信息3)拓?fù)滏?,其記錄?shù)據(jù)中心的物理拓?fù)浣Y(jié)構(gòu),包括物理機(jī)及其所在的
地理位置。通過這樣的管理模型,能夠全面地反映數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署、依賴關(guān)系以 及物理拓?fù)浣Y(jié)構(gòu)。圖2示意性地給出了可在本實(shí)施例中使用的數(shù)據(jù)中心的管理模型的一個(gè)例子。為 了清楚起見,只示出了數(shù)據(jù)中心的一個(gè)業(yè)務(wù)邏輯的情況。如圖2所示,該業(yè)務(wù)邏輯可包含至 少一個(gè)應(yīng)用;該至少一個(gè)應(yīng)用可部署在至少一個(gè)服務(wù)上或者直接部署在至少一個(gè)操作系統(tǒng) 上,也可以依賴至少一個(gè)其它應(yīng)用;該至少一個(gè)服務(wù)可部署在至少一個(gè)操作系統(tǒng)上,也可以 依賴至少一個(gè)其它服務(wù);該至少一個(gè)操作系統(tǒng)可部署在至少一個(gè)物理機(jī)上;該至少一個(gè)物 理機(jī)可位于至少一個(gè)地理位置。在圖2中,還示出了在物理機(jī)上虛擬化有至少一個(gè)虛擬機(jī), 而該至少一個(gè)虛擬機(jī)可部署在至少一個(gè)操作系統(tǒng)上。在圖2所示的管理模型中,物理機(jī)和 地理位置的關(guān)系反映了數(shù)據(jù)中心的物理拓?fù)浣Y(jié)構(gòu),其余節(jié)點(diǎn)之間的關(guān)系反映了數(shù)據(jù)中心的 業(yè)務(wù)邏輯的部署和依賴關(guān)系。在管理模型包含業(yè)務(wù)邏輯部署鏈和應(yīng)用依賴鏈的情況下,在步驟S115中,首先, 基于管理模型中的業(yè)務(wù)邏輯部署鏈,獲取與業(yè)務(wù)邏輯的執(zhí)行過程相關(guān)的節(jié)點(diǎn),即相關(guān)的應(yīng) 用、服務(wù)、操作系統(tǒng)和物理機(jī),并獲取這些節(jié)點(diǎn)的日志文件。然后,對(duì)于所獲取的相關(guān)應(yīng)用的 每一個(gè),遍歷管理模型中的應(yīng)用依賴鏈,以獲取該應(yīng)用所依賴的其它應(yīng)用和/或服務(wù),并獲 取這些其它應(yīng)用和/或服務(wù)的日志文件。然后,對(duì)于這些其它應(yīng)用的每一個(gè),基于業(yè)務(wù)邏輯 部署鏈,獲取與該其它應(yīng)用相關(guān)的節(jié)點(diǎn),并獲取這些節(jié)點(diǎn)的日志文件。這樣,通過以上步驟, 可以找到所有與在步驟SllO中確定的業(yè)務(wù)邏輯的執(zhí)行過程相關(guān)的日志文件。進(jìn)一步地,在管理模型還包含拓?fù)滏湹那闆r下,還對(duì)拓?fù)滏溸M(jìn)行遍歷,以確定數(shù)據(jù) 中心的物理拓?fù)浣Y(jié)構(gòu)是否改變。當(dāng)確定物理拓?fù)浣Y(jié)構(gòu)發(fā)生了變化時(shí),將導(dǎo)致該變化的節(jié)點(diǎn) 寫入專門記錄物理拓?fù)渥兓娜罩疚募?。然后,在步驟S120,根據(jù)所選擇的日志文件,對(duì)故障事件進(jìn)行診斷。在本實(shí)施例中,首先從所選擇的日志文件中獲取與所需業(yè)務(wù)邏輯的執(zhí)行過程對(duì)應(yīng) 的日志片斷。通常,在日志文件中記錄了與對(duì)應(yīng)節(jié)點(diǎn)相關(guān)的所有業(yè)務(wù)邏輯在該節(jié)點(diǎn)的執(zhí)行 過程的有關(guān)信息,并且如前所述,業(yè)務(wù)邏輯的標(biāo)識(shí)符也被寫入了日志文件中,因此,與各個(gè) 業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的信息(日志片斷)可通過業(yè)務(wù)邏輯的標(biāo)識(shí)符進(jìn)行識(shí)別。這樣, 對(duì)于每一個(gè)日志文件,可根據(jù)業(yè)務(wù)邏輯的標(biāo)識(shí)符,從該日志文件中獲取對(duì)應(yīng)的日志片斷。接著,對(duì)所獲取的日志片斷進(jìn)行排序,從而獲得日志片斷的序列。在本實(shí)施例中, 可以將日志片斷按照業(yè)務(wù)邏輯的執(zhí)行順序進(jìn)行排序。然后,對(duì)于排序后的日志片斷,檢查每 一個(gè)日志片斷以找出錯(cuò)誤日志片斷。在一個(gè)實(shí)施例中,比較每一個(gè)日志片斷與存儲(chǔ)在對(duì)應(yīng) 節(jié)點(diǎn)上的正確日志片斷,如果該日志片斷與正確日志片斷不同,則將該日志片斷確定為錯(cuò) 誤曰志片斷。可選地,在另一個(gè)實(shí)施例中,在每一個(gè)日志片斷中查找異常關(guān)鍵字,如果某個(gè)日志片斷存在異常關(guān)鍵字,則將該日志片斷確定為錯(cuò)誤日志片斷。應(yīng)當(dāng)指出,對(duì)于本領(lǐng)域的普通技術(shù)人員來說,也可以使用其它方法確定錯(cuò)誤日志 片斷。此外,還可以進(jìn)一步根據(jù)所確定的錯(cuò)誤日志片斷,確定故障事件的根原因。在本實(shí) 施例中,可以基于預(yù)先確定的規(guī)則,分析錯(cuò)誤日志片斷,從而確定故障事件的根原因。通常,用于診斷故障原因的規(guī)則被存儲(chǔ)在數(shù)據(jù)庫中。規(guī)則可以例如是將日志片斷 的序列中最后一個(gè)錯(cuò)誤日志片斷確定為故障事件的根原因;如果錯(cuò)誤日志片斷表示“URL 資源不可得”(錯(cuò)誤代碼為http 404),則將該錯(cuò)誤日志片斷確定為根原因;如果錯(cuò)誤日志 片斷表示“服務(wù)不可得”(錯(cuò)誤代碼為http 500),則分析隨后的錯(cuò)誤日志片斷;等等。實(shí)際 上,本領(lǐng)域的普通技術(shù)人員容易知道,可以使用現(xiàn)有的專家診斷系統(tǒng)確定故障事件的根原 因。通過以上描述可以看出,本實(shí)施例的診斷故障事件的方法使用與數(shù)據(jù)中心對(duì)應(yīng)的 管理模型選擇與業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日志文件,由于管理模型反映了數(shù)據(jù)中心的部 署和應(yīng)用依賴性,因此能夠自動(dòng)、快速地對(duì)故障事件進(jìn)行診斷。,并進(jìn)一步地,通過將業(yè)務(wù)邏 輯的信息以及應(yīng)用之間的依賴關(guān)系寫入日志文件中并提供錯(cuò)誤日志片斷的序列以進(jìn)行根 原因的分析,能夠快速、準(zhǔn)確地確定故障事件的根原因。圖3示意性地示出了用于說明圖1所示的用于診斷故障事件的方法的例子,其中 圖3 (a)示出了業(yè)務(wù)邏輯的層結(jié)構(gòu)和執(zhí)行順序,圖3(b)示出了相關(guān)的日志文件,圖3(c)示 出了所獲得的相關(guān)日志片斷的序列。如圖3 (a)所示,業(yè)務(wù)邏輯按照物理機(jī)-虛擬機(jī)I-WAS服務(wù)器-應(yīng)用1_物理機(jī)-虛 擬機(jī)2-數(shù)據(jù)庫2的執(zhí)行順序被執(zhí)行。在執(zhí)行期間,該業(yè)務(wù)邏輯的標(biāo)識(shí)符被寫入各個(gè)節(jié)點(diǎn) 的日志文件中。如果在HTTP服務(wù)器發(fā)生故障事件,則首先根據(jù)管理模型,找到與該業(yè)務(wù)邏 輯的執(zhí)行過程有關(guān)的日志文件,如圖3(b)所示,日志文件Log ULog 2和Log 3分別來自 應(yīng)用1、WAS服務(wù)器和數(shù)據(jù)庫2。然后,根據(jù)該業(yè)務(wù)邏輯的標(biāo)識(shí)符,從這些日志文件中獲取相 關(guān)的日志片斷,并按照業(yè)務(wù)邏輯的執(zhí)行順序進(jìn)行排序,所得到的日志片斷的序列如圖3(c) 所示。依次檢查這些日志片斷,以得到錯(cuò)誤日志片斷,其中,Http服務(wù)器的錯(cuò)誤日志片斷為 "HTTP 500”,表示“Http請(qǐng)求不可得”,WAS服務(wù)器的錯(cuò)誤日志片斷表示“交易回滾”,應(yīng)用1 的錯(cuò)誤日志片斷表示“連接錯(cuò)誤”,數(shù)據(jù)庫2的錯(cuò)誤日志片斷表示“表空間滿錯(cuò)誤”,AIX操作 系統(tǒng)的錯(cuò)誤日志片斷表示“文件系統(tǒng)滿錯(cuò)誤”。然后,根據(jù)這些錯(cuò)誤日志片斷,確定故障事件 的根原因。,在上述錯(cuò)誤日志片斷的序列中,首先是“HTTP 500”,根據(jù)在前面所述的規(guī)則,此 時(shí)需要進(jìn)一步分析隨后的錯(cuò)誤日志片斷,這樣,最終確定故障事件的根原因是“文件系統(tǒng)滿 錯(cuò)誤”。在同一個(gè)發(fā)明構(gòu)思下,圖4是根據(jù)本發(fā)明的一個(gè)實(shí)施例的用于診斷故障事件的裝 置400的示意性框圖。下面結(jié)合附圖,對(duì)本實(shí)施例進(jìn)行詳細(xì)描述,其中對(duì)于與前面實(shí)施例相 同的部分,適當(dāng)省略其說明。如圖4所示,本實(shí)施例的用于診斷故障事件的裝置400包括標(biāo)識(shí)模塊401,其在 業(yè)務(wù)邏輯的執(zhí)行期間,在執(zhí)行該業(yè)務(wù)邏輯的各個(gè)節(jié)點(diǎn)的日志文件中標(biāo)識(shí)與該業(yè)務(wù)邏輯的執(zhí) 行過程對(duì)應(yīng)的日志片斷;故障事件監(jiān)控模塊402,其監(jiān)控在數(shù)據(jù)中心內(nèi)是否發(fā)生故障事件; 業(yè)務(wù)邏輯確定模塊403,其在故障事件監(jiān)控模塊402監(jiān)控到發(fā)生故障事件時(shí),確定在發(fā)生故障事件的節(jié)點(diǎn)中正在執(zhí)行的業(yè)務(wù)邏輯;日志文件選擇模塊404,其基于與數(shù)據(jù)中心對(duì)應(yīng)的 管理模型,選擇與業(yè)務(wù)邏輯確定模塊403所確定的業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日志文件, 其中管理模型反映對(duì)應(yīng)的數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署和應(yīng)用依賴性;以及診斷模塊405, 其根據(jù)所選擇的日志文件,對(duì)故障事件進(jìn)行診斷。在本實(shí)施例的裝置400中,在業(yè)務(wù)邏輯的執(zhí)行期間,標(biāo)識(shí)模塊401在執(zhí)行該業(yè)務(wù)邏 輯的各個(gè)節(jié)點(diǎn)的日志文件中對(duì)與該業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日志片斷進(jìn)行標(biāo)識(shí)。如前所 述,為了使業(yè)務(wù)邏輯以及應(yīng)用之間和/或服務(wù)之間的依賴關(guān)系被寫入日志文件中,當(dāng)執(zhí)行 業(yè)務(wù)邏輯時(shí),在該業(yè)務(wù)邏輯所涉及的應(yīng)用/服務(wù)等節(jié)點(diǎn),除了在日志文件中寫入與執(zhí)行過 程有關(guān)的信息外,還通過標(biāo)識(shí)模塊401對(duì)這些信息(日志片斷)進(jìn)行標(biāo)識(shí)。在一個(gè)實(shí)施例 中,標(biāo)識(shí)模塊401可包括標(biāo)識(shí)符寫入單元4011,用于將業(yè)務(wù)邏輯的標(biāo)識(shí)符寫入對(duì)應(yīng)的日志 片斷中。具體地,業(yè)務(wù)邏輯的標(biāo)識(shí)符首先被緩存在節(jié)點(diǎn)中,然后在寫日志的時(shí)刻被標(biāo)識(shí)符寫 入單元4011寫入該節(jié)點(diǎn)的日志文件的相應(yīng)日志片斷中。應(yīng)當(dāng)理解,雖然在此為方便說明,將標(biāo)識(shí)模塊401包含在本實(shí)施例的裝置400中, 但是本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解,該標(biāo)識(shí)模塊401用于執(zhí)行對(duì)日志文件的處理,其并 不必須包含在該裝置400中。故障事件監(jiān)控模塊402可通過監(jiān)控事件報(bào)告的接收或故障告警的產(chǎn)生,監(jiān)控?cái)?shù)據(jù) 中心內(nèi)故障事件的發(fā)生。在故障事件監(jiān)控模塊402監(jiān)控到發(fā)生故障事件時(shí),業(yè)務(wù)邏輯確定 模塊403確定在發(fā)生故障事件的節(jié)點(diǎn)中正在執(zhí)行的業(yè)務(wù)邏輯,然后由日志文件選擇模塊 404根據(jù)與數(shù)據(jù)中心對(duì)應(yīng)的管理模型,選擇與所確定的業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日志文 件。如前所述,管理模型反映了對(duì)應(yīng)數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署、應(yīng)用依賴性和物理 拓?fù)浣Y(jié)構(gòu),其可包含業(yè)務(wù)邏輯部署鏈、應(yīng)用依賴鏈和拓?fù)滏?,其中,業(yè)務(wù)邏輯部署鏈記錄與 數(shù)據(jù)中心內(nèi)每個(gè)業(yè)務(wù)邏輯相關(guān)的節(jié)點(diǎn),包括應(yīng)用、服務(wù)、操作系統(tǒng)和物理機(jī),應(yīng)用依賴鏈記 錄應(yīng)用之間和/或服務(wù)之間的依賴關(guān)系,拓?fù)滏渼t記錄數(shù)據(jù)中心的物理拓?fù)浣Y(jié)構(gòu),即物理 機(jī)及其所在的地理位置。因此,本實(shí)施例的裝置400還可以包括模型建立模塊,其用于在部 署數(shù)據(jù)中心時(shí),建立該數(shù)據(jù)中心的管理模型。在管理模型只包含業(yè)務(wù)邏輯部署鏈和應(yīng)用依賴鏈的情況下,在日志文件選擇模塊 404中,節(jié)點(diǎn)獲取單元4041基于管理模型中的業(yè)務(wù)邏輯部署鏈,獲取與業(yè)務(wù)邏輯相關(guān)的節(jié) 點(diǎn),并由日志文件獲取單元4042獲取這些節(jié)點(diǎn)的日志文件。接著,對(duì)于所獲取的與業(yè)務(wù)邏 輯相關(guān)的節(jié)點(diǎn)中的每一個(gè)應(yīng)用,由遍歷單元4043遍歷管理模型中的應(yīng)用依賴鏈,以獲取該 應(yīng)用所依賴的其它應(yīng)用和/或服務(wù),并由日志文件獲取單元4042獲取其它應(yīng)用和/或服務(wù) 的日志文件。然后,對(duì)于所獲取的其它應(yīng)用的每一個(gè),由節(jié)點(diǎn)獲取單元4041基于管理模型 中的業(yè)務(wù)邏輯部署鏈,獲取與上述其它應(yīng)用的每一個(gè)相關(guān)的節(jié)點(diǎn)。然后,由日志文件獲取單 元4042獲取這些節(jié)點(diǎn)的日志文件。在管理模型還包含拓?fù)滏湹那闆r下,遍歷單元4041還將遍歷拓?fù)滏?,以確定數(shù)據(jù) 中心的物理拓?fù)浣Y(jié)構(gòu)是否變化。當(dāng)確定數(shù)據(jù)中心的物理拓?fù)浣Y(jié)構(gòu)發(fā)生變化時(shí),由日志文件 選擇模塊404中的寫入單元4044將導(dǎo)致該變化的節(jié)點(diǎn)寫入用于記錄物理拓?fù)浣Y(jié)構(gòu)的變化 的日志文件中。當(dāng)通過日志文件選擇模塊404選擇了與業(yè)務(wù)邏輯有關(guān)的日志文件后,診斷模塊405根據(jù)這些日志文件,進(jìn)行故障事件的診斷。在診斷模塊405中,日志片斷獲取單元4051從這些日志文件中獲取與業(yè)務(wù)邏輯的 執(zhí)行過程對(duì)應(yīng)的日志片斷。在本實(shí)施例中,日志片斷獲取單元4051對(duì)于每一個(gè)日志文件, 根據(jù)業(yè)務(wù)邏輯的標(biāo)識(shí)符,從該日志文件中獲取與業(yè)務(wù)邏輯的執(zhí)行過程對(duì)應(yīng)的日志片斷。然 后,排序單元4052按照業(yè)務(wù)邏輯的執(zhí)行順序,對(duì)所獲取的日志片斷進(jìn)行排序。對(duì)于排序后的日志片斷,檢查單元4053檢查這些日志片斷以找出錯(cuò)誤日志片斷。 在一個(gè)實(shí)施例中,在檢查單元4053中,比較單元比較每一個(gè)日志片斷與存儲(chǔ)在對(duì)應(yīng)節(jié)點(diǎn)上 的正確日志片斷,并由確定單元將與對(duì)應(yīng)的正確日志片斷不同的日志片斷確定為錯(cuò)誤日志 片斷。在另一個(gè)實(shí)施例中,在檢查單元4053中,查找單元在每一個(gè)日志片斷中查找異常關(guān) 鍵字,然后確定單元將存在異常關(guān)鍵字的日志片斷確定為錯(cuò)誤日志片斷。當(dāng)然,本領(lǐng)域的普 通技術(shù)人員容易知道,還可以采用其它方式確定錯(cuò)誤日志片斷。此外,在診斷模塊405中還可以包括原因確定單元40M,其根據(jù)檢查單元4053所 找出的錯(cuò)誤日志片斷,確定故障事件的根原因。在本實(shí)施例中,原因確定單元40M基于預(yù) 先確定的規(guī)則分析錯(cuò)誤日志片斷,以確定故障事件的根原因。實(shí)際上,原因確定單元40M 可以采用現(xiàn)有的專家診斷系統(tǒng)。應(yīng)當(dāng)指出,本實(shí)施例的用于數(shù)據(jù)中心的診斷故障事件的裝置400在操作上能夠?qū)?現(xiàn)如圖1所示的用于數(shù)據(jù)中心的診斷故障事件的方法。進(jìn)一步地,本實(shí)施例的裝置400可以設(shè)置在數(shù)據(jù)中心內(nèi)。另外,本實(shí)施例的裝置 400也可以與數(shù)據(jù)中心分開地設(shè)置,此時(shí),其中的寫入模塊401和故障事件監(jiān)控模塊402被 設(shè)置在數(shù)據(jù)中心內(nèi),故障事件監(jiān)控模塊402可通過各種形式的通信與業(yè)務(wù)邏輯確定模塊 403連接。以上所公開的實(shí)施例的用于數(shù)據(jù)中心的診斷故障事件的方法可以在軟件、硬件、 或軟件和硬件的結(jié)合中實(shí)現(xiàn)。硬件部分可以利用專用邏輯來實(shí)現(xiàn)。例如,上述實(shí)施例中的 用于數(shù)據(jù)中心的診斷故障事件的裝置及其各個(gè)組成部分可以由諸如超大規(guī)模集成電路或 門陣列、諸如邏輯芯片、晶體管等的半導(dǎo)體、或者諸如現(xiàn)場可編程門陣列、可編程邏輯設(shè)備 等的可編程硬件設(shè)備的硬件電路實(shí)現(xiàn),也可以用由各種類型的處理器執(zhí)行的軟件實(shí)現(xiàn),也 可以由上述硬件電路和軟件的結(jié)合實(shí)現(xiàn)。軟件部分可以存儲(chǔ)在存儲(chǔ)器中,由適當(dāng)?shù)闹噶顖?zhí) 行系統(tǒng),例如微處理器、個(gè)人計(jì)算機(jī)(PC)或大型機(jī)來執(zhí)行。以上雖然通過示例性的實(shí)施例詳細(xì)描述了本發(fā)明的用于數(shù)據(jù)中心的診斷故障事 件的方法及其裝置,但是以上這些實(shí)施例并不是窮舉的,本領(lǐng)域技術(shù)人員可以在本發(fā)明的 精神和范圍內(nèi)實(shí)現(xiàn)各種變化和修改。因此,本發(fā)明并不限于這些實(shí)施例,本發(fā)明的范圍僅由 所附的權(quán)利要求限定。
權(quán)利要求
1.一種用于數(shù)據(jù)中心的診斷故障事件的方法,包括 監(jiān)控在所述數(shù)據(jù)中心內(nèi)是否發(fā)生故障事件;如果發(fā)生故障事件,則確定在發(fā)生所述故障事件的節(jié)點(diǎn)中正在執(zhí)行的業(yè)務(wù)邏輯;基于與所述數(shù)據(jù)中心對(duì)應(yīng)的管理模型,選擇與所述業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日志文 件,其中所述管理模型反映所述數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署和應(yīng)用依賴性;以及 根據(jù)所述日志文件,對(duì)所述故障事件進(jìn)行診斷。
2.根據(jù)權(quán)利要求1所述的方法,還包括 在部署所述數(shù)據(jù)中心時(shí),建立對(duì)應(yīng)的管理模型; 其中,所述管理模型包含業(yè)務(wù)邏輯部署鏈,其對(duì)于所述數(shù)據(jù)中心內(nèi)的每個(gè)業(yè)務(wù)邏輯,記錄與該業(yè)務(wù)邏輯相關(guān)的 節(jié)點(diǎn),所述節(jié)點(diǎn)包括應(yīng)用、服務(wù)、操作系統(tǒng)和物理機(jī);以及應(yīng)用依賴鏈,其記錄應(yīng)用之間和/或服務(wù)之間的依賴關(guān)系。
3.根據(jù)權(quán)利要求2所述的方法,其中,所述選擇與所述業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日 志文件的步驟包括基于所述業(yè)務(wù)邏輯部署鏈,獲取與所述業(yè)務(wù)邏輯相關(guān)的節(jié)點(diǎn); 獲取與所述業(yè)務(wù)邏輯相關(guān)的節(jié)點(diǎn)的日志文件;對(duì)于與所述業(yè)務(wù)邏輯相關(guān)的節(jié)點(diǎn)中的應(yīng)用,遍歷所述應(yīng)用依賴鏈,以獲取所述應(yīng)用所 依賴的其它應(yīng)用和/或服務(wù);獲取所述其它應(yīng)用和/或服務(wù)的日志文件;對(duì)于所述其它應(yīng)用,基于所述業(yè)務(wù)邏輯部署鏈,獲取與所述其它應(yīng)用相關(guān)的節(jié)點(diǎn);以及 獲取與所述其它應(yīng)用相關(guān)的日志文件。
4.根據(jù)權(quán)利要求3所述的方法,其中,所述管理模型還包含拓?fù)滏湥溆涗浰鰯?shù)據(jù) 中心的物理拓?fù)浣Y(jié)構(gòu),所述物理拓?fù)浣Y(jié)構(gòu)包括物理機(jī)及其所在的地理位置;所述選擇與所述業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日志文件的步驟還包括 遍歷所述拓?fù)滏?,以確定所述數(shù)據(jù)中心的物理拓?fù)浣Y(jié)構(gòu)是否變化;以及 將導(dǎo)致所述變化的節(jié)點(diǎn)寫入用于記錄所述物理拓?fù)浣Y(jié)構(gòu)的變化的日志文件。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述根據(jù)所述日志文件對(duì)所述故障事件進(jìn)行診 斷的步驟包括從所選擇的日志文件中獲取與所述業(yè)務(wù)邏輯的執(zhí)行過程對(duì)應(yīng)的日志片斷; 對(duì)所述日志片斷進(jìn)行排序;以及 檢查所述日志片斷以找出錯(cuò)誤日志片斷。
6.根據(jù)權(quán)利要求5所述的方法,其中,所述根據(jù)所述日志文件對(duì)所述故障事件進(jìn)行診 斷的步驟還包括根據(jù)所述錯(cuò)誤日志片斷,確定所述故障事件的根原因。
7.根據(jù)權(quán)利要求5或6所述的方法,還包括在業(yè)務(wù)邏輯的執(zhí)行期間,在執(zhí)行該業(yè)務(wù)邏輯的各個(gè)節(jié)點(diǎn)的日志文件中標(biāo)識(shí)與該業(yè)務(wù)邏 輯的執(zhí)行過程對(duì)應(yīng)的日志片斷。
8.根據(jù)權(quán)利要求7所述的方法,其中,所述在執(zhí)行該業(yè)務(wù)邏輯的各個(gè)節(jié)點(diǎn)的日志文件中標(biāo)識(shí)與該業(yè)務(wù)邏輯的執(zhí)行過程對(duì)應(yīng)的日志片斷的步驟包括 將業(yè)務(wù)邏輯的標(biāo)識(shí)符寫入對(duì)應(yīng)的日志片斷中。
9.根據(jù)權(quán)利要求8所述的方法,其中,所述從所選擇的日志文件中獲取與所述業(yè)務(wù)邏 輯的執(zhí)行過程對(duì)應(yīng)的日志片斷的步驟包括對(duì)于每一個(gè)日志文件,根據(jù)所述業(yè)務(wù)邏輯的標(biāo)識(shí)符,從該日志文件中獲取對(duì)應(yīng)的日志 片斷。
10.根據(jù)權(quán)利要求5或6所述的方法,其中,所述對(duì)所述日志片斷進(jìn)行排序的步驟包括將所述日志片斷按照所述業(yè)務(wù)邏輯的執(zhí)行順序進(jìn)行排序。
11.根據(jù)權(quán)利要求5或6所述的方法,其中,所述檢查所述日志片斷以找出錯(cuò)誤日志片 斷的步驟包括比較所述日志片斷的每一個(gè)與存儲(chǔ)在對(duì)應(yīng)節(jié)點(diǎn)上的正確日志片斷;以及 將與對(duì)應(yīng)的正確日志片斷不同的日志片斷確定為錯(cuò)誤日志片斷。
12.根據(jù)權(quán)利要求5或6所述的方法,其中,所述檢查所述日志片斷以找出錯(cuò)誤日志片 斷的步驟包括在所述日志片斷中查找異常關(guān)鍵字;以及 將存在異常關(guān)鍵字的日志片斷確定為錯(cuò)誤日志片斷。
13.根據(jù)權(quán)利要求6所述的方法,其中,所述確定所述故障事件的根原因的步驟包括 基于預(yù)先確定的規(guī)則,分析所述錯(cuò)誤日志片斷,以確定所述故障事件的根原因。
14.一種用于數(shù)據(jù)中心的診斷故障事件的裝置,包括故障事件監(jiān)控模塊,用于監(jiān)控在所述數(shù)據(jù)中心內(nèi)是否發(fā)生故障事件; 業(yè)務(wù)邏輯確定模塊,用于在發(fā)生故障事件時(shí),確定在發(fā)生所述故障事件的節(jié)點(diǎn)中正在 執(zhí)行的業(yè)務(wù)邏輯;日志文件選擇模塊,用于基于與所述數(shù)據(jù)中心對(duì)應(yīng)的管理模型,選擇與所述業(yè)務(wù)邏輯 的執(zhí)行過程有關(guān)的日志文件,其中所述管理模型反映所述數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署和應(yīng) 用依賴性;以及診斷模塊,用于根據(jù)所述日志文件,對(duì)所述故障事件進(jìn)行診斷。
15.根據(jù)權(quán)利要求14所述的裝置,還包括模型建立模塊,用于在部署所述數(shù)據(jù)中心 時(shí),建立對(duì)應(yīng)的管理模型;其中,所述管理模型包含業(yè)務(wù)邏輯部署鏈,其對(duì)于所述數(shù)據(jù)中心內(nèi)的每個(gè)業(yè)務(wù)邏輯,記錄與該業(yè)務(wù)邏輯相關(guān)的 節(jié)點(diǎn),所述節(jié)點(diǎn)包括應(yīng)用、服務(wù)、操作系統(tǒng)和物理機(jī);以及應(yīng)用依賴鏈,其記錄應(yīng)用之間和/或服務(wù)之間的依賴關(guān)系。
16.根據(jù)權(quán)利要求15所述的裝置,其中,所述日志文件選擇模塊包括遍歷單元,用于遍歷所述應(yīng)用依賴鏈,以獲取某個(gè)應(yīng)用所依賴的其它應(yīng)用和/或服務(wù); 節(jié)點(diǎn)獲取單元,用于基于所述業(yè)務(wù)邏輯部署鏈,獲取與所述業(yè)務(wù)邏輯相關(guān)的節(jié)點(diǎn),以及 獲取與所述其它應(yīng)用相關(guān)的節(jié)點(diǎn);以及日志文件獲取單元,用于獲取所述節(jié)點(diǎn)的日志文件,以及獲取所述其它應(yīng)用和/或服 務(wù)的日志文件。
17.根據(jù)權(quán)利要求16所述的裝置,其中,所述管理模型還包含拓?fù)滏湥溆涗浰鰯?shù) 據(jù)中心的物理拓?fù)浣Y(jié)構(gòu),所述物理拓?fù)浣Y(jié)構(gòu)包括物理機(jī)及其所在的地理位置;所述遍歷單元還用于遍歷所述拓?fù)滏?,以確定所述數(shù)據(jù)中心的物理拓?fù)浣Y(jié)構(gòu)是否變化;所述日志文件選擇模塊還包括寫入單元,用于將導(dǎo)致所述變化的節(jié)點(diǎn)寫入用于記錄 所述物理拓?fù)浣Y(jié)構(gòu)的變化的日志文件。
18.根據(jù)權(quán)利要求14所述的裝置,其中,所述診斷模塊包括日志片斷獲取單元,用于從所選擇的日志文件中獲取與所述業(yè)務(wù)邏輯的執(zhí)行過程對(duì)應(yīng) 的日志片斷;排序單元,用于對(duì)所述日志片斷進(jìn)行排序;以及 檢查單元,用于檢查所述日志片斷以找出錯(cuò)誤日志片斷。
19.根據(jù)權(quán)利要求18所述的裝置,其中,所述診斷模塊還包括原因確定單元,用于根據(jù)所述錯(cuò)誤日志片斷,確定所述故障事件的根原因。
20.根據(jù)權(quán)利要求18或19所述的裝置,還包括標(biāo)識(shí)模塊,用于在業(yè)務(wù)邏輯的執(zhí)行期間,在執(zhí)行該業(yè)務(wù)邏輯的各個(gè)節(jié)點(diǎn)的日志文件中 標(biāo)識(shí)與該業(yè)務(wù)邏輯的執(zhí)行過程對(duì)應(yīng)的日志片斷。
21.根據(jù)權(quán)利要求20所述的裝置,其中,所述標(biāo)識(shí)模塊包括 標(biāo)識(shí)符寫入單元,用于將業(yè)務(wù)邏輯的標(biāo)識(shí)符寫入對(duì)應(yīng)的日志片斷中。
22.根據(jù)權(quán)利要求21所述的裝置,其中,所述日志片斷獲取單元進(jìn)一步被配置為對(duì)于 每一個(gè)日志文件,根據(jù)所述業(yè)務(wù)邏輯的標(biāo)識(shí)符,從該日志文件中獲取對(duì)應(yīng)的日志片斷。
23.根據(jù)權(quán)利要求18或19所述的裝置,其中,所述排序單元進(jìn)一步被配置為將所述日 志片斷按照所述業(yè)務(wù)邏輯的執(zhí)行順序進(jìn)行排序。
24.根據(jù)權(quán)利要求18或19所述的裝置,其中,所述檢查單元包括比較單元,用于比較所述日志片斷的每一個(gè)與存儲(chǔ)在對(duì)應(yīng)的節(jié)點(diǎn)上的正確日志片斷進(jìn) 行匹配;以及確定單元,用于將與對(duì)應(yīng)的正確日志片斷不同的日志片斷確定為錯(cuò)誤日志片斷。
25.根據(jù)權(quán)利要求18或19所述的裝置,其中,所述檢查單元包括 查找單元,用于在所述日志片斷中查找異常關(guān)鍵字;以及確定單元,用于將存在異常關(guān)鍵字的日志片斷確定為錯(cuò)誤日志片斷。
26.根據(jù)權(quán)利要求19所述的裝置,其中,所述原因確定單元進(jìn)一步被配置為基于預(yù)先 確定的規(guī)則分析所述錯(cuò)誤日志片斷,以確定所述故障事件的根原因。
全文摘要
公開了一種用于數(shù)據(jù)中心的診斷故障事件的方法,包括監(jiān)控在數(shù)據(jù)中心內(nèi)是否發(fā)生故障事件;如果發(fā)生故障事件,則確定在發(fā)生故障事件的節(jié)點(diǎn)中正在執(zhí)行的業(yè)務(wù)邏輯;基于與數(shù)據(jù)中心對(duì)應(yīng)的管理模型,選擇與該業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日志文件,其中管理模型反映數(shù)據(jù)中心的業(yè)務(wù)邏輯的部署和應(yīng)用依賴性;以及根據(jù)所述日志文件,對(duì)故障事件進(jìn)行診斷。該方法使用管理模型以選擇與業(yè)務(wù)邏輯的執(zhí)行過程有關(guān)的日志文件,并將業(yè)務(wù)邏輯的信息以及應(yīng)用之間的依賴關(guān)系寫入日志文件中,能夠自動(dòng)、快速、準(zhǔn)確地對(duì)故障事件進(jìn)行診斷。還公開了相應(yīng)的用于數(shù)據(jù)中心的診斷故障事件的裝置。
文檔編號(hào)H04L29/08GK102143008SQ20101010500
公開日2011年8月3日 申請(qǐng)日期2010年1月29日 優(yōu)先權(quán)日2010年1月29日
發(fā)明者劉天成, 劉 英, 李影, 李欣慧 申請(qǐng)人:國際商業(yè)機(jī)器公司