本發(fā)明涉及云計(jì)算、云監(jiān)控及自動(dòng)化運(yùn)維領(lǐng)域,特別涉及一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理的方法和框架。
背景技術(shù):
由于云平臺(tái)架構(gòu)的復(fù)雜性和工作負(fù)載的不可預(yù)測性,以及云平臺(tái)上資源的動(dòng)態(tài)性、多樣性和資源規(guī)模巨大給云平臺(tái)監(jiān)控帶來了一定的困難。另外面對(duì)云環(huán)境下各種各樣的資源,包括物理硬件、主機(jī)、存儲(chǔ)、網(wǎng)絡(luò)、計(jì)算、虛擬系統(tǒng)等,在傳統(tǒng)的監(jiān)控及異常事件的處理中,通常采用監(jiān)控告警系統(tǒng)通知運(yùn)維人員,運(yùn)維人員手動(dòng)處理;對(duì)于同類問題出現(xiàn)多次,運(yùn)維人員主動(dòng)總結(jié)處理方法并通過編寫腳本的方式以實(shí)現(xiàn)半自動(dòng)的處理。久而久之,系統(tǒng)上分布著數(shù)量不少的來自不同運(yùn)維人員編寫的腳本,對(duì)于它們的維護(hù)又帶來另外的管理問題。而且這種方式仍存在著異常事件遺漏率高及處理效率低等問題。因此如何形成一種高度抽象的監(jiān)控兼自動(dòng)處理異常事件的框架,以及對(duì)于云平臺(tái)種類繁多的異常事件,如何防止異常事件被遺漏,避免引發(fā)更嚴(yán)重的系統(tǒng)問題,如何解決運(yùn)維人員在面對(duì)數(shù)量巨大異常事件時(shí)人工處理任務(wù)繁重低效等等一系列問題,亟待我們?nèi)ソ鉀Q。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明通過提供一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理方法和框架,以實(shí)現(xiàn)對(duì)云平臺(tái)不同層次的應(yīng)用服務(wù)、中間件和基礎(chǔ)設(shè)施資源的監(jiān)控及異常事件的自動(dòng)處理,從而防止異常事件被遺漏,避免引發(fā)更嚴(yán)重的系統(tǒng)問題,并完善優(yōu)化自動(dòng)操作指令的生成,進(jìn)一步解決了運(yùn)維人員在面對(duì)數(shù)量巨大異常事件時(shí)人工處理任務(wù)繁重低效的問題。
為解決上述技術(shù)問題,本發(fā)明一方面提供一種云平臺(tái)監(jiān)控異常事件自動(dòng)處理方法,包括:
通過規(guī)則引擎定義的規(guī)則判斷采集的數(shù)據(jù)中是否記錄有異常事件;當(dāng)判定所述采集的數(shù)據(jù)記錄有異常事件時(shí),工作負(fù)載服務(wù)調(diào)用流程控制引擎,所述流程控制引擎根據(jù)知識(shí)庫的數(shù)據(jù)產(chǎn)生操作指令;工作負(fù)載服務(wù)根據(jù)所述操作指令調(diào)用云平臺(tái)自動(dòng)化運(yùn)維接口,通過所述自動(dòng)化運(yùn)維接口處理所述異常事件。
可選地,在通過規(guī)則引擎定義的規(guī)則判斷采集的數(shù)據(jù)中是否記錄有異常事件之前,所述方法還包括對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集。
可選地,所述待監(jiān)控對(duì)象包括物理機(jī)、虛擬機(jī)、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備中的至少之一。
可選地,通過所述自動(dòng)化運(yùn)維接口處理所述異常事件,具體包括“通過api調(diào)用、遠(yuǎn)程命令執(zhí)行的方式完成所述操作指令的執(zhí)行。優(yōu)選地,所述自動(dòng)化運(yùn)維接口包括物理機(jī)管理接口、虛擬機(jī)管理接口、進(jìn)程管理接口中至少之一。
可選地,所述對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集包括:通過主動(dòng)拉取和被動(dòng)接收兩種方式采集所述數(shù)據(jù);優(yōu)選地,對(duì)于云平臺(tái)的事件源支持腳本方式擴(kuò)展;因此可以將盡可能多異常事件采集進(jìn)來。
可選地,所述通過規(guī)則引擎定義的規(guī)則判斷所述采集的數(shù)據(jù)中是否記錄有異常事件包括:獲取通過所述規(guī)則引擎定義的至少一種規(guī)則與各個(gè)規(guī)則對(duì)應(yīng)的閾值條件,確定所述數(shù)據(jù)特征所屬的規(guī)則,檢測所述采集的數(shù)據(jù)特征是否滿足所述規(guī)則對(duì)應(yīng)的閾值條件;
當(dāng)檢測出所述采集的數(shù)據(jù)特征滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中記錄有所述異常事件;
當(dāng)檢測出所述采集的數(shù)據(jù)特征未滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中未記錄所述異常事件。
可選地,在通過規(guī)則引擎定義的規(guī)則判斷所述采集的數(shù)據(jù)中是否記錄有異常事件之后,所述方法還包括:當(dāng)判定所述采集的數(shù)據(jù)中記錄有異常事件時(shí),通過所述規(guī)則引擎將記錄所述異常事件的數(shù)據(jù)發(fā)送到異常消息隊(duì)列。
可選地,所述規(guī)則引擎還可以將記錄所述異常事件的數(shù)據(jù)轉(zhuǎn)換成框架組件所能處理的告警信息。
可選地,在所述工作負(fù)載服務(wù)調(diào)用流程控制引擎之前,還包括:工作負(fù)載服務(wù)從消息隊(duì)列中獲取所述異常事件。
可選地,所述方法還包括所述工作負(fù)載服務(wù)將所述異常事件處理過程和結(jié)果記錄到歷史數(shù)據(jù)庫,所述歷史數(shù)據(jù)庫中的操作記錄會(huì)定期同步更新到知識(shí)庫中。
可選地,所述方法還包括工作負(fù)載服務(wù)將所述異常事件的處理過程和結(jié)果反饋回消息隊(duì)列中。
可選地,通過所述自動(dòng)化運(yùn)維接口處理所述異常事件之后,還包括:通過api服務(wù)查看跟蹤異常事件的處理過程和歷史處理記錄。
可選地,在對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集后,所述方法還包括將采集的數(shù)據(jù)轉(zhuǎn)存到消息隊(duì)列。
可選地,所述消息隊(duì)列可以根據(jù)處理要求劃分,包括但不限于事件源隊(duì)列,處理結(jié)果反饋隊(duì)列,操作過程記錄隊(duì)列。所述消息隊(duì)列主要用于滿足事件源數(shù)據(jù)、處理結(jié)果反饋數(shù)據(jù)和操作過程記錄數(shù)據(jù)的臨時(shí)存儲(chǔ);以及通過api服務(wù)可以從消息隊(duì)列中獲取數(shù)據(jù),供用戶查看中間處理的情況。
本發(fā)明另一方面提供一種云平臺(tái)監(jiān)控異常事件自動(dòng)處理框架,包括:
規(guī)則引擎模塊、控制服務(wù)模塊;其中所述控制服務(wù)模塊包括工作負(fù)載服務(wù)和流程控制引擎;
所述規(guī)則引擎模塊,用于通過定義的規(guī)則判斷所述采集的數(shù)據(jù)中是否記錄有異常事件;
所述控制服務(wù)模塊,用于當(dāng)判定所述采集的數(shù)據(jù)中記錄有異常事件時(shí),工作負(fù)載服務(wù)調(diào)用流程控制引擎,通過所述流程控制引擎根據(jù)知識(shí)庫的數(shù)據(jù)產(chǎn)生操作指令;所述工作負(fù)載服務(wù)根據(jù)所述操作指令調(diào)用云平臺(tái)自動(dòng)化運(yùn)維接口,通過所述自動(dòng)化運(yùn)維接口處理所述異常事件。
可選地,所述規(guī)則引擎模塊,用于:
獲取通過所述規(guī)則引擎模塊定義的至少一種規(guī)則與各個(gè)規(guī)則對(duì)應(yīng)的閾值條件,確定所述數(shù)據(jù)特征所屬的規(guī)則,檢測所述采集的數(shù)據(jù)特征是否滿足所述閾值條件;
當(dāng)檢測出所述采集的數(shù)據(jù)特征滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中記錄有所述異常事件;
當(dāng)檢測出所述采集的數(shù)據(jù)特征未滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中未記錄所述異常事件。
可選地,所述規(guī)則引擎模塊,還用于:
當(dāng)判定所述采集的數(shù)據(jù)中記錄有異常事件時(shí),通過所述規(guī)則引擎模塊將記錄所述異常事件的數(shù)據(jù)發(fā)送到消息隊(duì)列。
可選地,所述規(guī)則引擎模塊,還用于將記錄所述異常事件的數(shù)據(jù)轉(zhuǎn)換成框架組件所能處理的告警信息;
可選地,所述控制服務(wù)模塊,還用于在所述工作負(fù)載服務(wù)調(diào)用流程控制引擎之前,通過所述工作負(fù)載服務(wù)從消息隊(duì)列中獲取記錄所述異常事件的數(shù)據(jù)。
可選地,所述框架還包括數(shù)據(jù)采集模塊,用于對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集;
可選地,所述待監(jiān)控對(duì)象包括物理機(jī)、虛擬機(jī)、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備中的至少之一。
可選地,所述對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集包括:所述數(shù)據(jù)采集支持通過主動(dòng)拉取和被動(dòng)接收兩種方式采集所述數(shù)據(jù);優(yōu)選地,對(duì)于云平臺(tái)的事件源支持腳本方式擴(kuò)展;因此可以將盡可能多異常事件采集進(jìn)來。
可選地,所述數(shù)據(jù)采集模塊還用于將采集的數(shù)據(jù)轉(zhuǎn)存到消息隊(duì)列。
可選地,所述框架還包括數(shù)據(jù)存儲(chǔ)模塊,所述數(shù)據(jù)存儲(chǔ)模塊,通過工作負(fù)載服務(wù)將所述異常事件的處理過程和結(jié)果記錄到歷史數(shù)據(jù)庫,并將所述歷史數(shù)據(jù)庫中的操作記錄定期同步更新到知識(shí)庫中。
可選地,所述框架還包括數(shù)據(jù)臨時(shí)存儲(chǔ)模塊,通過工作負(fù)載服務(wù)將所述異常事件的處理過程和結(jié)果反饋回消息隊(duì)列中。
可選地,所述框架還包括api服務(wù)模塊,所述api服務(wù)模塊用于查看所述異常事件的處理過程和歷史處理記錄。優(yōu)選地,所述框架支持各組件之間同步或異步的雙向通訊。
本發(fā)明所涉及的知識(shí)庫的數(shù)據(jù),是通過運(yùn)維經(jīng)驗(yàn)積累所形成的,若知識(shí)庫中不存在異常事件的處理記錄,則轉(zhuǎn)成手工操作解決。
本發(fā)明所述的框架組件包括工作負(fù)載服務(wù)、規(guī)則引擎、流程控制引擎、api服務(wù)、歷史數(shù)據(jù)庫、知識(shí)庫、消息隊(duì)列和數(shù)據(jù)采集服務(wù)至少之一。
本發(fā)明除了對(duì)某些異常事件采集時(shí)可能會(huì)對(duì)云平臺(tái)做修改外,例如對(duì)于沒有獲取接口的事件源,要在云平臺(tái)中各采集節(jié)點(diǎn)部署數(shù)據(jù)采集程序;其他框架組件都屬于上層組件,不對(duì)云平臺(tái)或被監(jiān)控系統(tǒng)進(jìn)行修改。
本發(fā)明通過采集云平臺(tái)中各資源的事件數(shù)據(jù),轉(zhuǎn)存到消息隊(duì)列,通過規(guī)則引擎定義至少一種規(guī)則和與各個(gè)規(guī)則對(duì)應(yīng)的閾值,檢測所述采集的數(shù)據(jù)的特征是否滿足異常條件;在滿足異常事件的情況下,工作負(fù)載服務(wù)調(diào)用流程控制引擎,所述流程控制引擎根據(jù)知識(shí)庫的數(shù)據(jù)產(chǎn)生操作指令;工作負(fù)載服務(wù)根據(jù)指令調(diào)用云平臺(tái)相關(guān)接口,自動(dòng)完成異常事件的處理工作。其中所述異常事件的處理過程和結(jié)果一方面被反饋回消息隊(duì)列,另一方面被記錄到歷史數(shù)據(jù)庫并定期同步更新知識(shí)庫,形成閉環(huán),完善優(yōu)化自動(dòng)操作指令的生成;以及在本發(fā)明使用過程中,隨著運(yùn)維經(jīng)驗(yàn)不斷積累,規(guī)則庫和知識(shí)庫越來越豐富,異常事件遺漏率,事件處理準(zhǔn)確率都會(huì)得到大幅提升,從而有效地提升云平臺(tái)的運(yùn)維效率。
附圖說明
圖1為本發(fā)明提供的一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理的框架結(jié)構(gòu)示意圖;
圖2本發(fā)明提供的一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理的方法實(shí)施例流程圖;
圖3為本發(fā)明提供的另一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理的方法實(shí)施例流程圖;
圖4為本發(fā)明提供的一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理方法的框架組件交互示意圖;
圖5為本發(fā)明提供的一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理的框架模塊示意圖;
圖6為本發(fā)明提供的另一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理的框架模塊示意圖。
具體實(shí)施方式
下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整的描述,顯然,所描述的實(shí)施例僅是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
以下基于圖2,對(duì)本發(fā)明提供的一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理的方法實(shí)施例作進(jìn)一步說明,所述方法包括:
步驟101:通過規(guī)則引擎定義的規(guī)則判斷采集的數(shù)據(jù)中是否記錄有異常事件;可選地,所述規(guī)則引擎可以靈活定義各種不同的規(guī)則和閾值,然后根據(jù)預(yù)設(shè)規(guī)則和閾值比對(duì)源數(shù)據(jù)特征是否滿足異常事件條件;例如在規(guī)則引擎中定義的規(guī)則如下:
上述僅定義了其中一條規(guī)則,實(shí)際上規(guī)則引擎是由無數(shù)條類似這樣的規(guī)則組成的。
步驟102:當(dāng)判定所述采集的數(shù)據(jù)中記錄有異常事件時(shí),工作負(fù)載服務(wù)調(diào)用流程控制引擎,通過所述流程控制引擎根據(jù)知識(shí)庫的數(shù)據(jù)產(chǎn)生操作指令;
可選地,實(shí)現(xiàn)操作指令的生成,主要是從知識(shí)庫中調(diào)取數(shù)據(jù),由流程控制引擎自動(dòng)生成,生成的指令示例如下:
需要說明的是,若當(dāng)判定所述采集的數(shù)據(jù)中未記錄有異常事件時(shí),則忽略所述采集的數(shù)據(jù)。所述流程控制引擎主要是用來定義處理的過程。
步驟103:所述工作負(fù)載服務(wù)根據(jù)所述操作指令調(diào)用云平臺(tái)自動(dòng)化運(yùn)維接口,通過所述自動(dòng)化運(yùn)維接口處理所述異常事件。
如圖3所示,可選地,所述方法還包括步驟100:對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集。
可選地,所述待監(jiān)控對(duì)象(即云平臺(tái)各種資源)包括物理機(jī)、虛擬機(jī)、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備中的至少之一。
可選地,在所述步驟100,對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集后,所述方法還包括將采集的數(shù)據(jù)轉(zhuǎn)存到消息隊(duì)列。
可選地,所述對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集包括:通過主動(dòng)拉取和被動(dòng)接收兩種方式采集所述數(shù)據(jù)。
可選地,所述數(shù)據(jù)采集是提供云平臺(tái)管理系統(tǒng)自動(dòng)化運(yùn)維所需的基礎(chǔ)監(jiān)控?cái)?shù)據(jù),通??刹捎猛獠恐鲃?dòng)調(diào)用系統(tǒng)提供的接口獲取數(shù)據(jù)或在原有系統(tǒng)嵌入探針代碼的方式來實(shí)現(xiàn)。并且對(duì)于云平臺(tái)中各種各樣的事件源支持腳本方式擴(kuò)展,將盡可能多異常事件采集進(jìn)來。
可選地,所述步驟101具體包括:獲取通過所述規(guī)則引擎定義的至少一種規(guī)則與各個(gè)規(guī)則對(duì)應(yīng)的閾值條件,確定所述數(shù)據(jù)特征所屬的規(guī)則,檢測所述采集的數(shù)據(jù)特征是否滿足所述規(guī)則對(duì)應(yīng)的閾值條件;
當(dāng)檢測出所述采集的數(shù)據(jù)特征滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中記錄有所述異常事件;
當(dāng)檢測出所述采集的數(shù)據(jù)特征未滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中未記錄所述異常事件。
例如,cpu負(fù)載規(guī)則的閾值為50,通過規(guī)則引擎預(yù)設(shè)的cpu負(fù)載規(guī)則為“cpu負(fù)載大于50”,則當(dāng)規(guī)則引擎檢測出節(jié)點(diǎn)1的cpu負(fù)載是55,則確定該采集到的數(shù)據(jù)(即節(jié)點(diǎn)1的cpu負(fù)載)滿足該cpu負(fù)載規(guī)則,判定該采集的數(shù)據(jù)中記錄有異常事件。
需要說明的是,所述規(guī)則引擎可以靈活定義各種不同的規(guī)則和閾值,然后根據(jù)預(yù)設(shè)規(guī)則和所述規(guī)則對(duì)應(yīng)的閾值范圍比對(duì)所述采集的數(shù)據(jù)特征是否滿足異常事件條件,因此方便使用者定義各種不同類型的異常事件。
可選地,在所述步驟101之后,所述方法還包括:當(dāng)判定所述采集的數(shù)據(jù)中記錄有異常事件時(shí),通過所述規(guī)則引擎將記錄所述異常事件的數(shù)據(jù)發(fā)送到消息隊(duì)列。可選地,所述規(guī)則引擎還可以將所述異常事件轉(zhuǎn)換成框架組件所能處理的告警信息。
可選地,在所述工作負(fù)載服務(wù)調(diào)用流程控制引擎之前,所述步驟102還包括:工作負(fù)載服務(wù)從消息隊(duì)列中獲取所述異常事件。
可選地,所述步驟103中,通過所述自動(dòng)化運(yùn)維接口處理所述異常事件具體包括:通過api調(diào)用、遠(yuǎn)程命令執(zhí)行的方式完成所述操作指令的執(zhí)行??蛇x地,所述自動(dòng)化運(yùn)維接口包括物理機(jī)管理接口、虛擬機(jī)管理接口、進(jìn)程管理接口中至少之一。
如圖3所示,可選地,所述方法還包括步驟104:通過api服務(wù)可以查看跟蹤異常事件的處理過程和歷史處理記錄。
可選地,在所述步驟104之前,所述方法還包括所述工作負(fù)載服務(wù)將所述異常事件處理過程和結(jié)果反饋回消息隊(duì)列和/或記錄到歷史數(shù)據(jù)庫;可選地所述歷史數(shù)據(jù)庫中的操作記錄會(huì)定期同步更新到知識(shí)庫中。
需要說明的是,當(dāng)用戶需要查看并跟蹤正在執(zhí)行工作的處理過程時(shí),則可以通過api服務(wù)到消息隊(duì)列中去查詢;可選地,所述消息隊(duì)列可以根據(jù)處理要求劃分,包括但不限于事件源隊(duì)列,處理結(jié)果反饋隊(duì)列,操作過程記錄隊(duì)列等多種不同隊(duì)列,并且支持各組件之間同步或異步的雙向通訊。
所述消息隊(duì)列主要用于滿足事件源數(shù)據(jù)、處理結(jié)果反饋數(shù)據(jù)和操作過程記錄數(shù)據(jù)的臨時(shí)存儲(chǔ);以及通過api服務(wù)可以從消息隊(duì)列中獲取數(shù)據(jù),供用戶查看中間處理的情況。
當(dāng)用戶需要查某項(xiàng)歷史工作的處理過程則到歷史數(shù)據(jù)庫進(jìn)行查詢。
參見圖1、圖4,本發(fā)明實(shí)施例還提供一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理方法的框架組件交互示意圖,包括如下步驟:
步驟1:對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集;
對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集,其中所述待監(jiān)控對(duì)象(即云平臺(tái)各種資源)包括物理機(jī)、虛擬機(jī)、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備(含虛擬設(shè)備)等的至少之一。
可選地,對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集還包括將采集到的數(shù)據(jù)轉(zhuǎn)存到數(shù)據(jù)采集消息隊(duì)列中。
可選地,對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集,包括通過主動(dòng)拉取和被動(dòng)接收兩種方式(即主動(dòng)推送數(shù)據(jù)或被數(shù)據(jù)采集模塊抓取數(shù)據(jù))進(jìn)行所述數(shù)據(jù)采集。
可選地,所述數(shù)據(jù)采集是提供云平臺(tái)管理系統(tǒng)自動(dòng)化運(yùn)維所需的基礎(chǔ)監(jiān)控?cái)?shù)據(jù),通??刹捎猛獠恐鲃?dòng)調(diào)用系統(tǒng)提供的接口獲取數(shù)據(jù)或在原有系統(tǒng)嵌入探針代碼的方式來實(shí)現(xiàn)。需要說明的是,對(duì)于云平臺(tái)中各種各樣的事件源支持腳本方式擴(kuò)展,將盡可能多異常事件采集進(jìn)來。
另外需要說明的是,一方面,對(duì)于沒有獲取接口的事件源,要在云平臺(tái)中各采集節(jié)點(diǎn)部署數(shù)據(jù)采集程序,采集程序的配置文件中需要有配置項(xiàng)惟一指定該對(duì)象(例如物理機(jī)、虛擬機(jī)或其他);另一方面,對(duì)于有獲取接口的事件源,可以直接在框架中的數(shù)據(jù)采集組件中定義采集的sensor;具體地,通過定義一種外部的數(shù)據(jù)采集器,將代碼運(yùn)行在框架的數(shù)據(jù)采集組件上,不需要嵌入到采集機(jī)節(jié)點(diǎn)上。
步驟2:通過規(guī)則引擎定義的規(guī)則判斷所述采集的數(shù)據(jù)是否記錄有異常事件;可選地,獲取通過所述規(guī)則引擎定義的至少一種規(guī)則與各個(gè)規(guī)則對(duì)應(yīng)的閾值條件,確定所述數(shù)據(jù)特征所屬的規(guī)則,檢測所述采集的數(shù)據(jù)特征是否滿足所述規(guī)則對(duì)應(yīng)的閾值條件;
當(dāng)檢測出所述采集的數(shù)據(jù)特征滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中記錄有所述異常事件;
當(dāng)檢測出所述采集的數(shù)據(jù)特征未滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中未記錄所述異常事件。
需要說明的是,所述規(guī)則引擎可以靈活定義各種不同的規(guī)則和閾值,然后根據(jù)預(yù)設(shè)規(guī)則和各個(gè)規(guī)則對(duì)應(yīng)的閾值范圍比對(duì)所述采集的數(shù)據(jù)特征是否滿足異常事件條件,因此方便使用者定義各種不同類型的異常事件。
可選地,當(dāng)判定所述采集的數(shù)據(jù)記錄有異常事件時(shí),所述規(guī)則引擎將所述異常事件發(fā)送到消息隊(duì)列;可選地,所述規(guī)則引擎還可以將所述異常事件轉(zhuǎn)換成框架組件所能處理的告警信息。
對(duì)于云平臺(tái)種類繁多的異常事件,如何防止異常事件被遺漏,從而引發(fā)更嚴(yán)重的系統(tǒng)問題,規(guī)則引擎是本框架能有效實(shí)現(xiàn)的基礎(chǔ)。
步驟3:當(dāng)判定所述采集的數(shù)據(jù)記錄有異常事件時(shí),工作負(fù)載服務(wù)調(diào)用流程控制引擎,所述流程控制引擎根據(jù)知識(shí)庫的數(shù)據(jù)產(chǎn)生操作指令;
可選地,若知識(shí)庫中不存在該異常事件的處理記錄,可轉(zhuǎn)成手工操作解決;
具體地,實(shí)現(xiàn)操作指令的生成,主要是從知識(shí)庫中調(diào)取數(shù)據(jù),由流程控制引擎自動(dòng)生成??蛇x地地,在所述工作負(fù)載服務(wù)調(diào)用流程控制引擎之前,還包括:工作負(fù)載服務(wù)從消息隊(duì)列中獲取所述異常事件。
所述流程控制引擎是一種實(shí)現(xiàn)操作自動(dòng)化完成的重要技術(shù);異常事件從發(fā)現(xiàn)到轉(zhuǎn)化成框架能理解的告警信息,面對(duì)數(shù)量巨大的告警信息,單憑運(yùn)維人員手工處理不太現(xiàn)實(shí)。通過積累運(yùn)維經(jīng)驗(yàn)形成知識(shí)庫,配合流程控制引擎,做到自動(dòng)化處理,是本框架的靈魂。
步驟4:所述工作負(fù)載服務(wù)調(diào)用云平臺(tái)自動(dòng)化運(yùn)維接口,通過所述自動(dòng)化運(yùn)維接口按照步驟3的操作指令處理所述異常事件;
可選地,所述通過所述自動(dòng)化運(yùn)維接口按照步驟3的操作指令處理所述異常事件具體包括“通過api調(diào)用、遠(yuǎn)程命令執(zhí)行的方式完成步驟3的操作指令的執(zhí)行”;其中所述自動(dòng)化運(yùn)維接口可以包括物理機(jī)管理接口、虛擬機(jī)管理接口、進(jìn)程管理接口中至少之一。
可選地,本發(fā)明實(shí)施例還包括如下步驟:
步驟5:所述工作負(fù)載服務(wù)將所述異常事件處理過程和結(jié)果記錄到歷史數(shù)據(jù)庫;
步驟5a:歷史數(shù)據(jù)庫中的操作記錄會(huì)定期更新到知識(shí)庫中,以便后續(xù)同類異常事件發(fā)生時(shí),自動(dòng)生成處理指令。
步驟6:工作負(fù)載服務(wù)將各步驟的中間處理過程及結(jié)果反饋回消息隊(duì)列中。
步驟7:通過api服務(wù)到消息隊(duì)列去查看跟蹤異常事件的處理過程。
步驟7a:通過api服務(wù)到歷史數(shù)據(jù)庫查詢歷史處理記錄。
具體地,當(dāng)用戶需要查看并跟蹤正在執(zhí)行工作的處理過程時(shí),則可以通過api服務(wù)到消息隊(duì)列中去查詢;可選地,所述消息隊(duì)列可以根據(jù)處理要求劃分,包括但不限于事件源隊(duì)列,處理結(jié)果反饋隊(duì)列,操作過程記錄隊(duì)列等多種不同隊(duì)列,并且支持各組件之間同步或異步的雙向通訊。
所述消息隊(duì)列主要用于滿足事件源數(shù)據(jù)、處理結(jié)果反饋數(shù)據(jù)和操作過程記錄數(shù)據(jù)的臨時(shí)存儲(chǔ);以及通過api服務(wù)可以從消息隊(duì)列中獲取數(shù)據(jù),供用戶查看中間處理的情況。
當(dāng)用戶需要查某項(xiàng)歷史工作的處理過程則到歷史數(shù)據(jù)庫進(jìn)行查詢。
本發(fā)明實(shí)施例還提供了一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理的框架模塊示意圖,如圖5所示,所述框架包括:規(guī)則引擎模塊111、控制服務(wù)模塊112,其中所述控制服務(wù)模塊112包括工作負(fù)載服務(wù)和流程控制引擎;
所述規(guī)則引擎模塊111,用于通過定義的規(guī)則判斷所述采集的數(shù)據(jù)中是否記錄有異常事件;
所述控制服務(wù)模塊112,用于當(dāng)判定所述采集的數(shù)據(jù)中記錄有異常事件時(shí),工作負(fù)載服務(wù)調(diào)用流程控制引擎,通過所述流程控制引擎根據(jù)知識(shí)庫的數(shù)據(jù)產(chǎn)生操作指令;所述工作負(fù)載服務(wù)根據(jù)所述操作指令調(diào)用云平臺(tái)自動(dòng)化運(yùn)維接口,通過所述自動(dòng)化運(yùn)維接口處理所述異常事件。
可選地,所述規(guī)則引擎模塊111,具體用于:
獲取通過所述規(guī)則引擎模塊111定義的至少一種規(guī)則與各個(gè)規(guī)則對(duì)應(yīng)的閾值范圍條件,確定所述數(shù)據(jù)特征所屬的規(guī)則,檢測所述采集的數(shù)據(jù)特征是否滿足所述規(guī)則對(duì)應(yīng)的閾值條件;當(dāng)檢測出所述采集的數(shù)據(jù)特征滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中記錄有所述異常事件;
當(dāng)檢測出所述采集的數(shù)據(jù)特征未滿足所述規(guī)則對(duì)應(yīng)的閾值條件時(shí),則判定所述采集的數(shù)據(jù)中未記錄所述異常事件。
需要說明的是,所述規(guī)則引擎模塊111可以靈活定義各種不同的規(guī)則和所述規(guī)則對(duì)應(yīng)的閾值范圍,然后根據(jù)預(yù)設(shè)規(guī)則和閾值比對(duì)所述采集的數(shù)據(jù)特征是否滿足異常事件條件,因此方便使用者定義各種不同類型的異常事件。
可選地,所述規(guī)則引擎模塊111,還用于:
當(dāng)判定所述采集的數(shù)據(jù)中記錄有異常事件時(shí),通過所述規(guī)則引擎模塊111將記錄所述異常事件的數(shù)據(jù)發(fā)送到消息隊(duì)列。
可選地,所述規(guī)則引擎模塊111,還用于:將記錄所述異常事件的數(shù)據(jù)轉(zhuǎn)換成框架組件所能處理的告警信息。
可選地,所述控制服務(wù)模塊112,還用于在所述工作負(fù)載服務(wù)調(diào)用流程控制引擎之前,通過所述工作負(fù)載服務(wù)從異常所述消息隊(duì)列中獲取記錄所述異常事件的數(shù)據(jù)。
如圖6所示,本發(fā)明實(shí)施例還提供另一種云平臺(tái)異常事件的監(jiān)控及自動(dòng)處理的框架模塊示意圖,所述框架還包括數(shù)據(jù)采集模塊110、數(shù)據(jù)存儲(chǔ)模塊113,數(shù)據(jù)臨時(shí)存儲(chǔ)模塊114、api服務(wù)模塊115至少之一;
其中,所述數(shù)據(jù)采集模塊110,用于對(duì)所有待監(jiān)控對(duì)象進(jìn)行數(shù)據(jù)采集;
可選地,所述待監(jiān)控對(duì)象包括物理機(jī)、虛擬機(jī)、存儲(chǔ)設(shè)備和網(wǎng)絡(luò)設(shè)備中的至少之一。
可選地,所述數(shù)據(jù)采集支持通過主動(dòng)拉取和被動(dòng)接收兩種方式采集所述數(shù)據(jù);需要說明的是,對(duì)于云平臺(tái)的事件源支持腳本方式擴(kuò)展;因此可以將盡可能多異常事件采集進(jìn)來。
另外需要說明的是,所述數(shù)據(jù)采集是提供云平臺(tái)管理系統(tǒng)自動(dòng)化運(yùn)維所需的基礎(chǔ)監(jiān)控?cái)?shù)據(jù),通常可采用外部主動(dòng)調(diào)用系統(tǒng)提供的接口獲取數(shù)據(jù)或在原有系統(tǒng)嵌入探針代碼的方式來實(shí)現(xiàn)。并且對(duì)于云平臺(tái)中各種各樣的事件源支持腳本方式擴(kuò)展,將盡可能多異常事件采集進(jìn)來。
可選地,所述數(shù)據(jù)采集模塊110還用于將采集的數(shù)據(jù)轉(zhuǎn)存到消息隊(duì)列。
所述數(shù)據(jù)存儲(chǔ)模塊113,通過工作負(fù)載服務(wù)將所述異常事件的處理過程和結(jié)果記錄到歷史數(shù)據(jù)庫,并將所述歷史數(shù)據(jù)庫中的操作記錄定期同步更新到知識(shí)庫中。
所述數(shù)據(jù)臨時(shí)存儲(chǔ)模塊114,通過工作負(fù)載服務(wù)將所述異常事件的處理過程和結(jié)果反饋回消息隊(duì)列中。
所述api服務(wù)模塊115,用于查看所述異常事件的處理過程和歷史處理記錄。需要說明的是,當(dāng)用戶需要查看并跟蹤正在執(zhí)行工作的處理過程時(shí),則可以通過api服務(wù)模塊115到消息隊(duì)列中去查詢;可選地,所述消息隊(duì)列可以根據(jù)處理要求劃分,包括但不限于事件源隊(duì)列,處理結(jié)果反饋隊(duì)列,操作過程記錄隊(duì)列等多種不同隊(duì)列,并且支持各組件之間同步或異步的雙向通訊。
所述消息隊(duì)列主要用于滿足事件源數(shù)據(jù)、處理結(jié)果反饋數(shù)據(jù)和操作過程記錄數(shù)據(jù)的臨時(shí)存儲(chǔ);以及通過api服務(wù)模塊可以從消息隊(duì)列中獲取數(shù)據(jù),供用戶查看中間處理的情況。
當(dāng)用戶需要查某項(xiàng)歷史工作的處理過程則到歷史數(shù)據(jù)庫進(jìn)行查詢。在本申請(qǐng)所提供的實(shí)施例中,并未詳細(xì)示出公知的方法、結(jié)構(gòu)和技術(shù),以便不模糊對(duì)本說明書的理解;另外應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的框架實(shí)施例僅僅是示意性的,例如,所述模塊(或單元)的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)模塊(或單元)或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。本領(lǐng)域技術(shù)人員可以理解,可以對(duì)實(shí)施例中的各模塊或組件進(jìn)行適應(yīng)性的改變并且把它設(shè)置在與該實(shí)施例不同的一個(gè)或多個(gè)設(shè)備中。