本發(fā)明屬于計(jì)算機(jī)系統(tǒng)數(shù)據(jù)監(jiān)控領(lǐng)域,特別是實(shí)時監(jiān)控及異常動態(tài)配置的方法,具體涉及基于JMX(JavaManagementExtensions,即Java管理擴(kuò)展)的定制化實(shí)時監(jiān)控及自動化異常處理的系統(tǒng)及方法。
背景技術(shù):信息化的日益深入促使現(xiàn)代IT系統(tǒng)業(yè)務(wù)規(guī)模的不斷擴(kuò)大,相應(yīng)地,系統(tǒng)數(shù)量也隨之在不斷增加。系統(tǒng)運(yùn)行過程中所產(chǎn)生的異常監(jiān)控報(bào)警信息對系統(tǒng)運(yùn)維人員及時定位異常,挖掘系統(tǒng)運(yùn)行規(guī)律,起到至關(guān)重要的作用。然而,傳統(tǒng)的系統(tǒng)運(yùn)維方式只有在發(fā)生故障或影響業(yè)務(wù)連續(xù)性時才可能被發(fā)現(xiàn),被動救火式的維護(hù)不僅會因異常數(shù)據(jù)采集不及時導(dǎo)致異常發(fā)生處無法被準(zhǔn)確定位,而且更嚴(yán)重地則會導(dǎo)致故障的惡性連鎖反應(yīng)持續(xù)發(fā)生。同時,為保證系統(tǒng)的穩(wěn)定運(yùn)行和業(yè)務(wù)的正常流轉(zhuǎn),也將耗費(fèi)大量的人力和物力進(jìn)行監(jiān)控。針對一些常見異常,開發(fā)人員可直接在系統(tǒng)程序編寫中實(shí)現(xiàn)風(fēng)險(xiǎn)的自動規(guī)避,但仍有一些異常仍需要系統(tǒng)運(yùn)維人員參與實(shí)時監(jiān)控并做及時處理,比如系統(tǒng)運(yùn)行中的部分參數(shù)會根據(jù)當(dāng)前運(yùn)行狀況進(jìn)行動態(tài)調(diào)整,通常的實(shí)現(xiàn)方式是將這些配置參數(shù)置于配置文件中進(jìn)行管理,一旦有調(diào)整的需求,系統(tǒng)運(yùn)維人員首先修改配置文件,再重新發(fā)布系統(tǒng),如若調(diào)整不及時很可能導(dǎo)致運(yùn)行環(huán)境報(bào)錯。JMX在Java編程語言中定義了應(yīng)用程序以及網(wǎng)絡(luò)管理和監(jiān)控的體系結(jié)構(gòu)、設(shè)計(jì)模式、應(yīng)用程序接口以及服務(wù)。通常使用JMX來監(jiān)控系統(tǒng)的運(yùn)行狀態(tài)或管理系統(tǒng)的某些方面,比如清空緩存、重新加載配置文件等優(yōu)點(diǎn)可以非常容易的使應(yīng)用程序具有被管理伸縮性的架構(gòu)每個JMXAgent服務(wù)可以很容易的放入到Agent中。如專利“基于JMX的網(wǎng)管系統(tǒng)中服務(wù)生命周期管理監(jiān)控方法”(專利公開號:CN102904745A)提供一種基于JMX的網(wǎng)管系統(tǒng)中服務(wù)生命周期管理監(jiān)控方法,該方法包括服務(wù)生命周期的管理、服務(wù)的配置和服務(wù)生命周期的監(jiān)控,所述的服務(wù)生命周期的管理是指對生命周期的階段及狀態(tài)進(jìn)行管理;所述的服務(wù)的配置是指服務(wù)器獲取相應(yīng)的配置文件對服務(wù)模塊進(jìn)行監(jiān)聽配置、異常事件處理方式配置和服務(wù)啟動方式配置;所述的服務(wù)生命周期的監(jiān)控是指服務(wù)器利用JMX對生命周期進(jìn)行監(jiān)控;此監(jiān)控方法能有效實(shí)現(xiàn)對服務(wù)模塊進(jìn)行生命周期的監(jiān)控及管理,并能靈活動態(tài)地對服務(wù)進(jìn)行配置。然而,這種監(jiān)控方法僅是通過配置文件控制監(jiān)控、異常事件處理及服務(wù)啟動,因而針對不同的服務(wù)應(yīng)用,需要重復(fù)更改配置文件實(shí)現(xiàn)監(jiān)控及異常處理,這不僅導(dǎo)致效率低,而且通用性也不高;再者,該監(jiān)控方法僅僅是關(guān)注服務(wù)在生命周期內(nèi)的狀態(tài)是否正常,監(jiān)控流程較為簡單,不能全面覆蓋多樣化的應(yīng)用系統(tǒng)運(yùn)行中。專利“一種基于Java的異常處理裝置及其異常處理方法”(專利公開號:CN101853189A)提供一種基于Java的異常處理裝置及異常處理方法,其中異常裝置主要包括異常管理器、XML解析器、類反射器、異常處理器、異常處理結(jié)果信息封裝器及日志記錄器,并提供異常處理框架接口、異常處理器接口和日志記錄器接口,將異常處理封裝在一個框架中,并為用戶提供了統(tǒng)一的調(diào)用接口和格式化的配置文件?;贘ava的異常處理方法,通過提供異常處理框架接口與異常處理器接口,使傳入的異常封裝在一個框架內(nèi)處理。該方法利用XML配置文件定義異常和異常處理之間的對應(yīng)關(guān)系,雖然保證異常處理的靈活性和自動化,但XML配置文件編寫較為復(fù)雜,需要專業(yè)的技術(shù)人員參與異常分析和編寫工作,配置化程度不高。如何轉(zhuǎn)變傳統(tǒng)的人工更新、檢測和故障排除的模式,實(shí)現(xiàn)定制化監(jiān)控、自動化部署、診斷和管理,提高監(jiān)控的工作效率,加速定位異常的速度和縮短故障恢復(fù)時間,對計(jì)算機(jī)系統(tǒng)數(shù)據(jù)監(jiān)控來說是一件非常重要和有意義的工作。
技術(shù)實(shí)現(xiàn)要素:為解決現(xiàn)有技術(shù)的局限性,本發(fā)明提供一種基于JMX的定制化實(shí)時監(jiān)控及自動化異常處理的系統(tǒng)及方法,通過采用JMX遠(yuǎn)程方法調(diào)用RMI,構(gòu)建集監(jiān)控系統(tǒng)和多被監(jiān)控系統(tǒng)的分布式網(wǎng)絡(luò)連接,各個被監(jiān)控系統(tǒng)根據(jù)各自需求自行限定運(yùn)行過程中需監(jiān)控的關(guān)鍵數(shù)據(jù)及異常發(fā)生條件,實(shí)現(xiàn)監(jiān)控細(xì)節(jié)的定制化,滿足不同系統(tǒng)的數(shù)據(jù)監(jiān)控需求;監(jiān)控系統(tǒng)依據(jù)被監(jiān)控系統(tǒng)的選擇及異常處理設(shè)置,實(shí)時收集、校驗(yàn)監(jiān)控?cái)?shù)據(jù),并對出現(xiàn)的異常直接調(diào)用適合的異常處理方式進(jìn)行自動化處理,減少人工參與,提高異常處理的準(zhǔn)確率,也縮短了異常周期。本發(fā)明的技術(shù)方案是:一種基于JMX的定制化實(shí)時監(jiān)控及自動化異常處理的系統(tǒng),監(jiān)控系統(tǒng)具體包括數(shù)據(jù)采樣信息庫、監(jiān)控模型庫、異常處理庫、網(wǎng)絡(luò)通信模塊、數(shù)據(jù)收集模塊、數(shù)據(jù)異常處理分析模塊、頁面展示模塊,監(jiān)控?cái)?shù)據(jù)庫;被監(jiān)控系統(tǒng)開啟JMX訪問端口,建立監(jiān)控系統(tǒng)與被監(jiān)控系統(tǒng)之間的遠(yuǎn)程訪問連接;所述數(shù)據(jù)采樣信息庫,用于存放數(shù)據(jù)樣本信息的倉庫,被監(jiān)控系統(tǒng)根據(jù)自身所需從采樣信息庫中選擇需要被監(jiān)控的數(shù)據(jù),如若數(shù)據(jù)采樣信息庫無法滿足被監(jiān)控系統(tǒng)的數(shù)據(jù)需求,則由被監(jiān)控系統(tǒng)向數(shù)據(jù)采樣信息庫中添加新的數(shù)據(jù)樣本,數(shù)據(jù)采樣信息庫會實(shí)時對新的數(shù)據(jù)樣本進(jìn)行保存;所述監(jiān)控模型庫,用于存放所有被監(jiān)控系統(tǒng)所對應(yīng)的監(jiān)控模型的倉庫;經(jīng)從采樣信息庫中采集到監(jiān)控?cái)?shù)據(jù)后,被監(jiān)控系統(tǒng)會根據(jù)這些數(shù)據(jù)間的結(jié)構(gòu),在監(jiān)控模型庫中搜索相應(yīng)的數(shù)據(jù)監(jiān)控模型;如存在基于采樣數(shù)據(jù)的數(shù)據(jù)監(jiān)控模型,被監(jiān)控系統(tǒng)直接調(diào)用;如若沒有,被監(jiān)控系統(tǒng)需要自行構(gòu)建新監(jiān)控模型,同時將其存入監(jiān)控模型庫中;所述異常處理庫,用于存放異常處理方法及流程的倉庫;針對一些監(jiān)控?cái)?shù)據(jù),被監(jiān)控系統(tǒng)會設(shè)定異常閥值,超出閥值的監(jiān)控?cái)?shù)據(jù)則被視為異常,不同的異常對應(yīng)不同的異常處理方式,因而閥值和異常處理方式相互綁定;當(dāng)被監(jiān)控系統(tǒng)的監(jiān)控?cái)?shù)據(jù)超出預(yù)定的異常閥值時,被監(jiān)控系統(tǒng)根據(jù)閥值直接從異常處理庫中調(diào)用相應(yīng)的異常處理方式,在無需人工參與的情況下,自動進(jìn)入異常處理流程;所述網(wǎng)絡(luò)通信模塊,構(gòu)建并管理監(jiān)控系統(tǒng)和各個被監(jiān)控系統(tǒng)間的網(wǎng)絡(luò)數(shù)據(jù)傳輸,維護(hù)監(jiān)控系統(tǒng)和所有被監(jiān)控系統(tǒng)間的正常網(wǎng)絡(luò)通信;所述數(shù)據(jù)收集模塊,用于對監(jiān)控?cái)?shù)據(jù)的實(shí)時和定時采集;監(jiān)控系統(tǒng)的數(shù)據(jù)采集模塊根據(jù)被監(jiān)控系統(tǒng)所選的監(jiān)控?cái)?shù)據(jù)實(shí)施數(shù)據(jù)采集,采集范圍包括被監(jiān)控系統(tǒng)的鏈路層、網(wǎng)絡(luò)層、設(shè)備層及系統(tǒng)層;數(shù)據(jù)采集方式分為變頻采集、主動探測、鏈路管理,其中變頻采集是指根據(jù)被監(jiān)控系統(tǒng)設(shè)定的采集頻率進(jìn)行數(shù)據(jù)采集;主動探測是指監(jiān)控系統(tǒng)主動對關(guān)鍵數(shù)據(jù)實(shí)時采集;鏈路管理是對監(jiān)控系統(tǒng)和各被監(jiān)控系統(tǒng)間的鏈路數(shù)據(jù)進(jìn)行采集;所述數(shù)據(jù)異常分析模塊,用于對存在異常的監(jiān)控?cái)?shù)據(jù)進(jìn)行定制化處理和記錄;數(shù)據(jù)異常分析模塊對每一次采集模塊輸出的數(shù)據(jù)進(jìn)行閥值校驗(yàn),針對那些觸發(fā)閥值條件的數(shù)據(jù),被監(jiān)控系統(tǒng)根據(jù)閥值從異常處理庫中調(diào)用相應(yīng)的異常處理方式,自動進(jìn)入異常處理流程;所述頁面展示模塊,用于實(shí)時統(tǒng)計(jì)、分析數(shù)據(jù)采集模塊獲取的數(shù)據(jù)、發(fā)生異常的數(shù)據(jù)、被監(jiān)控系統(tǒng)正常運(yùn)行的數(shù)據(jù)及異常運(yùn)行的數(shù)據(jù),同時提供報(bào)表展示界面,助于被監(jiān)控系統(tǒng)的負(fù)責(zé)人員評估系統(tǒng)運(yùn)行健康狀況;所述監(jiān)控?cái)?shù)據(jù)庫,用于存儲實(shí)時數(shù)據(jù)收集模塊監(jiān)控采集的數(shù)據(jù)、數(shù)據(jù)異常分析模塊采集的異常發(fā)生現(xiàn)場數(shù)據(jù)及數(shù)據(jù)異常分析處理的數(shù)據(jù),是定期的監(jiān)控統(tǒng)計(jì)報(bào)表的數(shù)據(jù)源。最初運(yùn)行的數(shù)據(jù)采樣信息庫、監(jiān)控模型庫及異常處理庫中不存在任何數(shù)據(jù);隨著系統(tǒng)持續(xù)運(yùn)行,數(shù)據(jù)采樣信息庫會不斷積累不同的數(shù)據(jù)樣本,監(jiān)控模型庫會不斷積累不同的監(jiān)控模型,異常處理庫也會不斷積累不同的異常處理方式,具有相同數(shù)據(jù)需求、模型需求、異常處理需求的被監(jiān)控系統(tǒng)可直接從相應(yīng)的庫中調(diào)用。一種基于JMX的定制化實(shí)時監(jiān)控及自動化異常處理的方法,包括定制化數(shù)據(jù)采集監(jiān)控的方法和異常識別及自動化處理的方法;所述定制化數(shù)據(jù)采集監(jiān)控的方法,是指被監(jiān)控系統(tǒng)根據(jù)自己需要自行選擇在運(yùn)行過程中需要被特別關(guān)注的數(shù)據(jù),監(jiān)控系統(tǒng)會實(shí)時觀測被監(jiān)控系統(tǒng)的運(yùn)行狀況,并根據(jù)設(shè)定的數(shù)據(jù)采集頻率及時收集、校驗(yàn)監(jiān)控?cái)?shù)據(jù),具體步驟為:步驟1:通過為被監(jiān)控系統(tǒng)開啟JMX訪問端口,建立監(jiān)控系統(tǒng)與被監(jiān)控系統(tǒng)之間的遠(yuǎn)程訪問連接;根據(jù)被監(jiān)控系統(tǒng)的訪問頻率及其所承擔(dān)的任務(wù)量,為不同的被監(jiān)控系統(tǒng)設(shè)置不同的數(shù)據(jù)采集頻率;其中,數(shù)據(jù)采集頻率規(guī)定了監(jiān)控系統(tǒng)每次應(yīng)間隔多長時間對被監(jiān)控系統(tǒng)的運(yùn)行數(shù)據(jù)進(jìn)行采集;監(jiān)控系統(tǒng)通過記錄被監(jiān)控系統(tǒng)的IP地址實(shí)現(xiàn)對被監(jiān)控系統(tǒng)的識別,進(jìn)而形成兩者間的連接;連接方式分為主動連接和配置連接,主動連接是指監(jiān)控系統(tǒng)定期輪詢連接到自己的IP,當(dāng)發(fā)現(xiàn)有新的IP連接時,監(jiān)控系統(tǒng)則認(rèn)定該IP為新的監(jiān)控對象,同時添加到監(jiān)控隊(duì)列當(dāng)中;配置連接是指通過將所有被監(jiān)控系統(tǒng)的IP地址寫入監(jiān)控系統(tǒng)的配置文件實(shí)現(xiàn)連接;步驟2:由于不同的被監(jiān)控系統(tǒng)對需要監(jiān)控?cái)?shù)據(jù)存在不同的需求,因而被監(jiān)控系統(tǒng)可根據(jù)監(jiān)控需要從監(jiān)控系統(tǒng)的數(shù)據(jù)采樣信息庫中檢索并選擇需要監(jiān)控的數(shù)據(jù),數(shù)據(jù)定制的具體步驟包括:步驟2-1:被監(jiān)控系統(tǒng)確定需要監(jiān)控的數(shù)據(jù),并在數(shù)據(jù)采樣信息庫中搜索這些數(shù)據(jù);步驟2-2:監(jiān)控系統(tǒng)判斷數(shù)據(jù)采樣信息庫中是否存在相應(yīng)的監(jiān)控?cái)?shù)據(jù);步驟2-3:如果數(shù)據(jù)采樣信息庫中存在所需的監(jiān)控?cái)?shù)據(jù),調(diào)用這些數(shù)據(jù);如果數(shù)據(jù)采樣信息庫中沒有所需的數(shù)據(jù),則繼續(xù)執(zhí)行步驟2-4;步驟2-4:針對那些沒有存儲于數(shù)據(jù)采樣信息庫中的監(jiān)控?cái)?shù)據(jù),監(jiān)控系統(tǒng)向數(shù)據(jù)采樣信息庫中添加缺失的數(shù)據(jù),再從步驟2-1開始執(zhí)行;步驟3:不同的被監(jiān)控系統(tǒng)會定制不同的監(jiān)控?cái)?shù)據(jù),為梳理這些監(jiān)控?cái)?shù)據(jù)間的層次結(jié)構(gòu),體現(xiàn)監(jiān)控?cái)?shù)據(jù)之間的關(guān)系,構(gòu)建相應(yīng)的數(shù)據(jù)監(jiān)控模型;所有被監(jiān)控系統(tǒng)所構(gòu)建對應(yīng)的監(jiān)控模型存放監(jiān)控模型庫;定制化數(shù)據(jù)采集監(jiān)控的方法的步驟3具體包括:步驟3-1:根據(jù)監(jiān)控?cái)?shù)據(jù)及數(shù)據(jù)之間的結(jié)構(gòu)和關(guān)系,在監(jiān)控模型庫搜索相應(yīng)的監(jiān)控模型;步驟3-2:監(jiān)控系統(tǒng)判斷監(jiān)控模型庫中是否存在被監(jiān)控系統(tǒng)所需的監(jiān)控模型;步驟3-3:如果監(jiān)控模型庫中存在相應(yīng)的監(jiān)控模型,被監(jiān)控系統(tǒng)調(diào)用該模型直接作為自己的監(jiān)控模型,繼續(xù)執(zhí)行步驟3-5;如果監(jiān)控模型庫中不存在相應(yīng)的監(jiān)控模型,則執(zhí)行步驟3-4;步驟3-4:針對那些監(jiān)控模型庫中沒有相匹配模型的被監(jiān)控系統(tǒng),監(jiān)控系統(tǒng)根據(jù)被監(jiān)控系統(tǒng)的模型需求,重新構(gòu)建監(jiān)控模型,并將該新模型存儲于監(jiān)控模型庫中,然后再從步驟3-1開始執(zhí)行;步驟3-5:將被監(jiān)控系統(tǒng)和監(jiān)控模型進(jìn)行綁定;步驟4:針對監(jiān)控模型中所涉及的所有數(shù)據(jù),為對監(jiān)控起關(guān)鍵作用的重要數(shù)據(jù)設(shè)定異常閥值,同時設(shè)置針對異常閥值的異常處理方式,并將該異常處理方式存儲于異常處理庫中;步驟5:按照監(jiān)控?cái)?shù)據(jù)所隸屬的范圍,依次從鏈路層、網(wǎng)絡(luò)層、設(shè)備層、系統(tǒng)層上獲取并保存被監(jiān)控系統(tǒng)在實(shí)際運(yùn)行過程中的實(shí)時數(shù)據(jù);采集方式分為主動勘測和變頻采集,其中主動勘測是指數(shù)據(jù)收集模塊實(shí)時獲取被監(jiān)控系統(tǒng)運(yùn)行數(shù)據(jù),變頻采集是指數(shù)據(jù)收集模塊按照設(shè)定的采集頻率收集定制的監(jiān)控?cái)?shù)據(jù);步驟6:針對每一個被監(jiān)控系統(tǒng),監(jiān)控系統(tǒng)將每一次采集得到的監(jiān)控?cái)?shù)據(jù)與異常閥值進(jìn)行校驗(yàn)比對,用以確認(rèn)被監(jiān)控系統(tǒng)的運(yùn)行是否處于正常狀態(tài);當(dāng)監(jiān)控?cái)?shù)據(jù)未達(dá)到異常閥值時,將當(dāng)前運(yùn)行數(shù)據(jù)直接記錄入庫;當(dāng)監(jiān)控?cái)?shù)據(jù)達(dá)到異常閥值時,監(jiān)控系統(tǒng)記錄閥值的發(fā)生時間、主機(jī)信息及應(yīng)用信息;同時根據(jù)異常的監(jiān)控?cái)?shù)據(jù)隸屬的監(jiān)控模型,定位異常發(fā)生處;所述異常識別及自動化處理的方法,是指當(dāng)被監(jiān)控系統(tǒng)在運(yùn)行過程中出現(xiàn)異常時,監(jiān)控系統(tǒng)無需將所有異常問題都發(fā)送給運(yùn)維人員,等待人工處理;而是經(jīng)異常分析確認(rèn)異常原因及異常嚴(yán)重性,并自動調(diào)用監(jiān)控系統(tǒng)內(nèi)的異常處理方式,直接對異常做出相應(yīng)處理,具體步驟為:步驟6-1:針對監(jiān)控?cái)?shù)據(jù)達(dá)到異常閥值的被監(jiān)控系統(tǒng),異常分析模塊通過計(jì)算被監(jiān)控系統(tǒng)運(yùn)行時在監(jiān)控?cái)?shù)據(jù)上的數(shù)值超出閥值的范圍判斷異常的嚴(yán)重性,通過依據(jù)監(jiān)控?cái)?shù)據(jù)隸屬監(jiān)控模型的維度判定異常產(chǎn)生起因,同時記錄本次異常的發(fā)生時間、所屬的應(yīng)用系統(tǒng)、發(fā)生的主機(jī);步驟6-2:根據(jù)閥值、閥值超出范圍在異常處理庫中搜索對之對應(yīng)的異常處理方式;步驟6-3:針對在監(jiān)控系統(tǒng)內(nèi)能搜尋到異常處理方式的異常,直接從異常處理庫中調(diào)用異常處理方式,作用于異常對象;針對在監(jiān)控系統(tǒng)內(nèi)不能搜尋到異常處理方式的異常,監(jiān)控系統(tǒng)應(yīng)及時告知被監(jiān)控系統(tǒng),待被監(jiān)控系統(tǒng)向異常處理庫中添加異常處理方式后再對異常進(jìn)行處理;步驟6-4:狀態(tài)入庫:異常對象處理完畢后,監(jiān)控系統(tǒng)需要將異常的現(xiàn)場數(shù)據(jù)和異常處理的結(jié)果信息記錄入監(jiān)控系統(tǒng)的數(shù)據(jù)庫中,用以后期對被監(jiān)控系統(tǒng)的整體運(yùn)行狀態(tài)做異常評估;所述異常的現(xiàn)場數(shù)據(jù),指包括異常發(fā)生的時間、異常發(fā)生的應(yīng)用、異常發(fā)生的主機(jī)、異常名稱、異常處理方式、異常處理用時;步驟6-5:監(jiān)控系統(tǒng)實(shí)時更新數(shù)據(jù)庫內(nèi)各個被監(jiān)控系統(tǒng)的正常運(yùn)行數(shù)據(jù)、異常運(yùn)行及處理數(shù)據(jù),并對監(jiān)控?cái)?shù)據(jù)、異常處理做不同維度的統(tǒng)計(jì)展現(xiàn)。監(jiān)控系統(tǒng)監(jiān)控的數(shù)據(jù)范圍分布在系統(tǒng)層、設(shè)備層、網(wǎng)絡(luò)層、鏈路層;其中系統(tǒng)層涵蓋被監(jiān)控系統(tǒng)的運(yùn)行數(shù)據(jù);設(shè)備層涵蓋被監(jiān)控系統(tǒng)所在主機(jī)的硬件配置數(shù)據(jù);網(wǎng)絡(luò)層涵蓋被監(jiān)控系統(tǒng)當(dāng)前網(wǎng)絡(luò)運(yùn)行狀況的數(shù)據(jù);鏈路層涵蓋監(jiān)控系統(tǒng)和被監(jiān)控系統(tǒng)之間鏈路連接狀況的數(shù)據(jù);具體地,監(jiān)控模型是一種多維的數(shù)據(jù)結(jié)構(gòu),每一層維度都是對上一層維度的細(xì)化,下一層維度的數(shù)據(jù)隸屬于上一層維度的數(shù)據(jù),監(jiān)控模型方便于異常發(fā)生時準(zhǔn)確定位異常來源;所述異常閥值,是判定被監(jiān)控系統(tǒng)是否出現(xiàn)異常的條件;當(dāng)監(jiān)控?cái)?shù)據(jù)達(dá)到指定的異常閥值時,被監(jiān)控系統(tǒng)被視為出現(xiàn)異常,一方面可根據(jù)監(jiān)控?cái)?shù)據(jù)超出閥值的范圍判斷異常的嚴(yán)重性;另一方面可根據(jù)監(jiān)控?cái)?shù)據(jù)定位異常發(fā)生處及異常發(fā)生原因;特別地,異常閥值的設(shè)定是可選擇的,并且相同的異常處理方式不進(jìn)行二次存儲;每一個異常閥值及閥值超出范圍均與異常處理庫中的異常處理方式相互對應(yīng)。本發(fā)明與現(xiàn)有技術(shù)相比,其有益效果:(1)本發(fā)明提供被監(jiān)控系統(tǒng)對監(jiān)控?cái)?shù)據(jù)的自主選擇,被監(jiān)控系統(tǒng)能根據(jù)自身的運(yùn)行需要自行定義監(jiān)控的數(shù)據(jù)對象和監(jiān)控細(xì)節(jié),通過區(qū)分運(yùn)行過程中的關(guān)鍵數(shù)據(jù)和非關(guān)鍵數(shù)據(jù),重點(diǎn)對關(guān)鍵數(shù)據(jù)進(jìn)行關(guān)注,有利于提高監(jiān)控的工作效率;(2)本發(fā)明通過構(gòu)建數(shù)據(jù)采樣信息庫、監(jiān)控模型庫,被監(jiān)控系統(tǒng)能直接從庫中調(diào)用數(shù)據(jù)對象和模型對象,減少通過修改配置文件創(chuàng)建監(jiān)控對象帶來的重復(fù)工作,實(shí)現(xiàn)被監(jiān)控系統(tǒng)對監(jiān)控?cái)?shù)據(jù)及模型的管理和復(fù)用;通過構(gòu)建異常處理庫,被監(jiān)控系統(tǒng)能直接從庫中調(diào)用異常處理方式匹配異常問題,減少為應(yīng)對不同系統(tǒng)的同一異常處理需要而進(jìn)行的重復(fù)工作,實(shí)現(xiàn)被監(jiān)控系統(tǒng)對異常處理方式的管理和復(fù)用,提高異常處理的可復(fù)用性及可配置性;(3)本發(fā)明提供自定義異常閥值與異常處理方式之間的對應(yīng)關(guān)系,方便被監(jiān)控系統(tǒng)根據(jù)實(shí)際異常處理情況,通過設(shè)定或修改閥值控制異常處理方式在異常發(fā)生時的自動化調(diào)用,減少異常處理過程中的人工參與,將原始的被動處理轉(zhuǎn)變?yōu)橹鲃犹幚?,提高異常處理的靈活性,加速定位異常的速度,縮短故障恢復(fù)時間,確保系統(tǒng)運(yùn)行的穩(wěn)定性。附圖說明圖1為本發(fā)明實(shí)施例的基于JMX的定制化實(shí)時監(jiān)控及自動化異常處理的系統(tǒng)結(jié)構(gòu)圖;圖2為本發(fā)明實(shí)施例中定制化數(shù)據(jù)采集監(jiān)控的方法實(shí)現(xiàn)流程圖;圖3為本發(fā)明實(shí)施例中監(jiān)控模型構(gòu)建流程圖;圖4為本發(fā)明實(shí)施例中異常識別及自動化處理的方法。具體實(shí)施方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。如圖1所示,為本發(fā)明實(shí)施例中一種基于JMX的可訂閱化實(shí)時監(jiān)控及異常自動化處理的系統(tǒng),包括以下幾個部分:數(shù)據(jù)采樣信息庫101、監(jiān)控模型庫102、異常處理庫103、網(wǎng)絡(luò)通信模塊104、數(shù)據(jù)收集模塊105、數(shù)據(jù)異常處理分析模塊106、頁面展示模塊107。所述數(shù)據(jù)采樣信息庫101,指用于存放數(shù)據(jù)樣本信息的倉庫,被監(jiān)控系統(tǒng)根據(jù)自身所需從采樣信息庫中選擇需要被監(jiān)控的數(shù)據(jù),如若采樣信息庫無法滿足被監(jiān)控系統(tǒng)的數(shù)據(jù)需求,則由被監(jiān)控系統(tǒng)向采樣信息庫中添加新的數(shù)據(jù)樣本,采樣信息庫會實(shí)時對新的數(shù)據(jù)樣本進(jìn)行保存;最初數(shù)據(jù)采樣信息庫中不存在任何數(shù)據(jù),伴隨著系統(tǒng)持續(xù)運(yùn)行,數(shù)據(jù)采樣信息庫中會不斷積累數(shù)據(jù)樣本,以避免具有相同數(shù)據(jù)采集需求的被監(jiān)控系統(tǒng)重復(fù)新建數(shù)據(jù)樣本;所述監(jiān)控模型庫102,指用于存放所有被監(jiān)控系統(tǒng)所對應(yīng)的監(jiān)控模型的倉庫;經(jīng)從采樣信息庫中采集到監(jiān)控?cái)?shù)據(jù)后,被監(jiān)控系統(tǒng)會根據(jù)這些數(shù)據(jù)間的結(jié)構(gòu),在監(jiān)控模型庫中搜索相應(yīng)的數(shù)據(jù)監(jiān)控模型,如存在基于采樣數(shù)據(jù)的數(shù)據(jù)監(jiān)控模型,被監(jiān)控系統(tǒng)直接調(diào)用;如若沒有,被監(jiān)控系統(tǒng)需要自行構(gòu)建新監(jiān)控模型,同時將其存入監(jiān)控模型庫中;所述異常處理庫103,指用于存放異常處理方法及流程的倉庫;針對一些關(guān)鍵的監(jiān)控?cái)?shù)據(jù),被監(jiān)控系統(tǒng)會設(shè)定異常閥值,超出閥值的監(jiān)控?cái)?shù)據(jù)則被視為異常,不同的異常對應(yīng)不同的異常處理方式,因而閥值和異常處理方式相互綁定;當(dāng)被監(jiān)控系統(tǒng)的監(jiān)控?cái)?shù)據(jù)超出預(yù)定的異常閥值時,被監(jiān)控系統(tǒng)根據(jù)閥值直接從異常處理庫中調(diào)用相應(yīng)的異常處理方式,在無需人工參與的情況下,自動進(jìn)入異常處理流程;最初的異常處理庫中不存在任何異常處理的方法,隨著系統(tǒng)持續(xù)運(yùn)行,異常處理庫會不斷積累異常處理方式供被監(jiān)控系統(tǒng)選擇,而無需再由被監(jiān)控系統(tǒng)重新建立;所述網(wǎng)絡(luò)通信模塊104,指用構(gòu)建并管理監(jiān)控系統(tǒng)和各個被監(jiān)控系統(tǒng)間的網(wǎng)絡(luò)數(shù)據(jù)傳輸,維護(hù)監(jiān)控系統(tǒng)和所有被監(jiān)控系統(tǒng)間的正常網(wǎng)絡(luò)通信;實(shí)時監(jiān)控和異常處理的實(shí)現(xiàn)都建立于監(jiān)控系統(tǒng)和被監(jiān)控系統(tǒng)的正常通信情景下;所述數(shù)據(jù)收集模塊105,用于負(fù)責(zé)對監(jiān)控?cái)?shù)據(jù)的實(shí)時和定時采集;監(jiān)控系統(tǒng)的數(shù)據(jù)采集模塊根據(jù)被監(jiān)控系統(tǒng)所選的監(jiān)控?cái)?shù)據(jù)實(shí)施數(shù)據(jù)采集,采集范圍包括被監(jiān)控系統(tǒng)的鏈路層、網(wǎng)絡(luò)層、設(shè)備層及系統(tǒng)層;數(shù)據(jù)采集方式分為變頻采集、主動探測、鏈路管理,其中變頻采集是指根據(jù)被監(jiān)控系統(tǒng)設(shè)定的采集頻率進(jìn)行數(shù)據(jù)采集;主動探測是指監(jiān)控系統(tǒng)主動對關(guān)鍵數(shù)據(jù)實(shí)時采集;鏈路管理是對監(jiān)控系統(tǒng)和各被監(jiān)控系統(tǒng)間的鏈路數(shù)據(jù)進(jìn)行采集;所述數(shù)據(jù)異常分析模塊106,用于負(fù)責(zé)對存在異常的監(jiān)控?cái)?shù)據(jù)進(jìn)行定制化處理和記錄;數(shù)據(jù)異常分析模塊對每一次采集模塊輸出的數(shù)據(jù)進(jìn)行閥值校驗(yàn),針對那些觸發(fā)閥值條件的數(shù)據(jù),被監(jiān)控系統(tǒng)根據(jù)閥值從異常處理庫中調(diào)用相應(yīng)的異常處理方式,自動進(jìn)入異常處理流程;所述頁面展示模塊107,用于實(shí)時統(tǒng)計(jì)、分析數(shù)據(jù)采集模塊獲取的數(shù)據(jù)、發(fā)生異常的數(shù)據(jù)、被監(jiān)控系統(tǒng)正常運(yùn)行的數(shù)據(jù)及異常運(yùn)行的數(shù)據(jù),同時提供可視化報(bào)表展示界面,助于被監(jiān)控系統(tǒng)的負(fù)責(zé)人員評估系統(tǒng)運(yùn)行健康狀況。所述監(jiān)控?cái)?shù)據(jù)庫108,用于存儲實(shí)時監(jiān)控采集的數(shù)據(jù)、異常發(fā)生現(xiàn)場數(shù)據(jù)及異常處理數(shù)據(jù),是定期的監(jiān)控統(tǒng)計(jì)報(bào)表的數(shù)據(jù)源。本發(fā)明實(shí)施例中還涉及一種基于JMX的定制化實(shí)時監(jiān)控及自動化異常處理的方法,包括定制化數(shù)據(jù)采集監(jiān)控的方法和異常識別及自動化處理的方法;如圖2所示,為本發(fā)明實(shí)施例中定制化數(shù)據(jù)采集監(jiān)控的方法,它是指被監(jiān)控系統(tǒng)可根據(jù)自己需要自行選擇在運(yùn)行過程中需要被特別關(guān)注的數(shù)據(jù),監(jiān)控系統(tǒng)會實(shí)時觀測被監(jiān)控系統(tǒng)的運(yùn)行狀況,并根據(jù)設(shè)定的數(shù)據(jù)采集頻率及時收集、校驗(yàn)監(jiān)控?cái)?shù)據(jù),具體步驟為:通過為被監(jiān)控系統(tǒng)開啟JMX訪問端口,建立監(jiān)控系統(tǒng)與被監(jiān)控系統(tǒng)之間的遠(yuǎn)程訪問連接;根據(jù)被監(jiān)控系統(tǒng)的訪問頻率及其所承擔(dān)的任務(wù)量,為不同的被監(jiān)控系統(tǒng)設(shè)置不同的數(shù)據(jù)采集頻率;其中,數(shù)據(jù)采集頻率規(guī)定了監(jiān)控系統(tǒng)每次應(yīng)間隔多長時間對被監(jiān)控系統(tǒng)的運(yùn)行數(shù)據(jù)進(jìn)行采集;監(jiān)控系統(tǒng)通過記錄被監(jiān)控系統(tǒng)的IP地址實(shí)現(xiàn)對被監(jiān)控系統(tǒng)的識別,進(jìn)而形成兩者間的連接;連接方式分為主動連接和配置連接,主動連接是指監(jiān)控系統(tǒng)定期輪詢連接到自己的IP,當(dāng)發(fā)現(xiàn)有新的IP連接時,監(jiān)控系統(tǒng)則認(rèn)定該IP為新的監(jiān)控對象,同時添加到監(jiān)控隊(duì)列當(dāng)中;配置連接是指通過將所有被監(jiān)控系統(tǒng)的IP地址寫入監(jiān)控系統(tǒng)的配置文件實(shí)現(xiàn)連接;步驟202:由于不同的被監(jiān)控系統(tǒng)對需要監(jiān)控?cái)?shù)據(jù)存在不同的需求,因而被監(jiān)控系統(tǒng)可根據(jù)監(jiān)控需要從數(shù)據(jù)采樣信息庫中檢索并選擇需要監(jiān)控的數(shù)據(jù),數(shù)據(jù)定制的具體步驟包括:步驟202-1:被監(jiān)控系統(tǒng)確定需要監(jiān)控的數(shù)據(jù),并在數(shù)據(jù)采樣信息庫中搜索這些數(shù)據(jù);步驟202-2:監(jiān)控系統(tǒng)判斷數(shù)據(jù)采樣信息庫中是否存在相應(yīng)的監(jiān)控?cái)?shù)據(jù);步驟202-3:如果數(shù)據(jù)采樣信息庫中存在所需的監(jiān)控?cái)?shù)據(jù),調(diào)用這些數(shù)據(jù);如果數(shù)據(jù)采樣信息庫中沒有所需的數(shù)據(jù),則繼續(xù)執(zhí)行步驟2-4;步驟202-4:針對那些沒有存儲于數(shù)據(jù)采樣信息庫中的監(jiān)控?cái)?shù)據(jù),監(jiān)控系統(tǒng)向數(shù)據(jù)采樣信息庫中添加缺失的數(shù)據(jù),再從步驟202-1開始執(zhí)行;監(jiān)控系統(tǒng)監(jiān)控的數(shù)據(jù)范圍分布在系統(tǒng)層、設(shè)備層、網(wǎng)絡(luò)層、鏈路層;其中系統(tǒng)層涵蓋被監(jiān)控系統(tǒng)的運(yùn)行數(shù)據(jù);設(shè)備層涵蓋被監(jiān)控系統(tǒng)所在主機(jī)的硬件配置數(shù)據(jù);網(wǎng)絡(luò)層涵蓋被監(jiān)控系統(tǒng)當(dāng)前網(wǎng)絡(luò)運(yùn)行狀況的數(shù)據(jù);鏈路層涵蓋監(jiān)控系統(tǒng)和被監(jiān)控系統(tǒng)之間鏈路連接狀況的數(shù)據(jù);特別地,監(jiān)控系統(tǒng)初次使用時,數(shù)據(jù)采樣信息庫內(nèi)不存在任何數(shù)據(jù)樣本,隨著監(jiān)控系統(tǒng)長期運(yùn)行,不斷積累監(jiān)控過程中需要的關(guān)鍵數(shù)據(jù),以避免不同監(jiān)控系統(tǒng)具有相同監(jiān)控?cái)?shù)據(jù)需要時,無需再重新創(chuàng)建數(shù)據(jù);步驟203:不同的被監(jiān)控系統(tǒng)會定制不同的監(jiān)控?cái)?shù)據(jù),為梳理這些監(jiān)控?cái)?shù)據(jù)間的層次結(jié)構(gòu),體現(xiàn)監(jiān)控?cái)?shù)據(jù)之間的關(guān)系,應(yīng)構(gòu)建相應(yīng)的數(shù)據(jù)監(jiān)控模型’具體地,監(jiān)控模型是一種多維的數(shù)據(jù)結(jié)構(gòu),每一層維度都是對上一層維度的細(xì)化,下一層維度的數(shù)據(jù)隸屬于上一層維度的數(shù)據(jù),監(jiān)控模型方便于異常發(fā)生時準(zhǔn)確定位異常來源;比如:某一個監(jiān)控模型Y如下所示:具體的模型構(gòu)建流程參閱圖3所示:現(xiàn)有被監(jiān)控系統(tǒng)X,需要定制的監(jiān)控?cái)?shù)據(jù)分別是數(shù)據(jù)A、B、B’、C和數(shù)據(jù)A’,其中數(shù)據(jù)A、B、B’、C已存儲于數(shù)據(jù)采樣信息庫中,相應(yīng)地,基于數(shù)據(jù)A、B、B’、C之間結(jié)構(gòu)關(guān)系的監(jiān)控模型也已存儲于監(jiān)控模型庫中,即監(jiān)控模型X={A,B{B’},C},當(dāng)前被監(jiān)控系統(tǒng)X構(gòu)建基于數(shù)據(jù)A、B、B’、C和A’之間結(jié)構(gòu)關(guān)系的監(jiān)控模型涉及如下步驟:步驟301:被監(jiān)控系統(tǒng)從數(shù)據(jù)采樣信息庫中調(diào)用數(shù)據(jù)A、B、B’、C、A’,識別數(shù)據(jù)之間的結(jié)構(gòu)關(guān)系,即數(shù)據(jù)A、數(shù)據(jù)B和數(shù)據(jù)C相互獨(dú)立,數(shù)據(jù)B’屬于數(shù)據(jù)B,數(shù)據(jù)A’屬于數(shù)據(jù)A;步驟302:根據(jù)數(shù)據(jù)間的結(jié)構(gòu)關(guān)系,確定需要構(gòu)建的數(shù)據(jù)監(jiān)控模型X,即監(jiān)控模型X={A{A’},B{B’},C};步驟303:搜索監(jiān)控模型庫,判斷監(jiān)控模型庫中是否存在與監(jiān)控模型X一致的模型;步驟304:經(jīng)搜索發(fā)現(xiàn),監(jiān)控模型庫中不存在與監(jiān)控模型X一致的模型,被監(jiān)控系統(tǒng)按照自己的模型需求,新建監(jiān)控模型X’={A{A’},B{B’},C};步驟305:被監(jiān)控系統(tǒng)將新建的監(jiān)控模型X’存入監(jiān)控模型庫中;步驟306:再次搜索監(jiān)控模型庫,找到新建的監(jiān)控模型X’,對其進(jìn)行調(diào)用;步驟307:將被監(jiān)控系統(tǒng)X和監(jiān)控模型X’進(jìn)行綁定;步驟204:針對監(jiān)控模型中所涉及的所有數(shù)據(jù),為對監(jiān)控起關(guān)鍵作用的重要數(shù)據(jù)設(shè)定異常閥值,同時設(shè)置針對異常閥值的異常處理方式,并將該異常處理方式存儲于異常處理庫中;所述異常閥值,是判定被監(jiān)控系統(tǒng)是否出現(xiàn)異常的條件;當(dāng)監(jiān)控?cái)?shù)據(jù)達(dá)到指定的異常閥值時,被監(jiān)控系統(tǒng)被視為出現(xiàn)異常,一方面可根據(jù)監(jiān)控?cái)?shù)據(jù)超出閥值的范圍判斷異常的嚴(yán)重性;另一方面可根據(jù)監(jiān)控?cái)?shù)據(jù)定位異常發(fā)生處及異常發(fā)生原因;特別地,異常閥值的設(shè)定是可選擇的,并且相同的異常處理方式不進(jìn)行二次存儲;步驟205:按照監(jiān)控?cái)?shù)據(jù)所隸屬的范圍,依次從鏈路層、網(wǎng)絡(luò)層、設(shè)備層、系統(tǒng)層上獲取并保存被監(jiān)控系統(tǒng)在實(shí)際運(yùn)行過程中的實(shí)時數(shù)據(jù);具體流程包括:步驟205-1:數(shù)據(jù)收集模塊獲取有關(guān)被監(jiān)控系統(tǒng)與監(jiān)控系統(tǒng)連接管理情況的數(shù)據(jù);步驟205-2:數(shù)據(jù)收集模塊實(shí)時主動獲取被監(jiān)控系統(tǒng)運(yùn)行狀態(tài)的數(shù)據(jù);步驟205-3:數(shù)據(jù)收集模塊按照數(shù)據(jù)采集頻率收集在某個時間點(diǎn)上被監(jiān)控系統(tǒng)運(yùn)行數(shù)據(jù);步驟206:針對每一個被監(jiān)控系統(tǒng),監(jiān)控系統(tǒng)將每一次采集得到的監(jiān)控?cái)?shù)據(jù)與異常閥值進(jìn)行校驗(yàn)比對,用以確認(rèn)被監(jiān)控系統(tǒng)的運(yùn)行是否處于正常狀態(tài);當(dāng)監(jiān)控?cái)?shù)據(jù)未達(dá)到異常閥值時,將當(dāng)前運(yùn)行數(shù)據(jù)直接記錄入庫;當(dāng)監(jiān)控?cái)?shù)據(jù)達(dá)到異常閥值時,監(jiān)控系統(tǒng)記錄閥值的發(fā)生時間、主機(jī)信息及應(yīng)用信息;同時根據(jù)異常的監(jiān)控?cái)?shù)據(jù)隸屬的監(jiān)控模型,定位異常發(fā)生處。如圖4所示,為本發(fā)明實(shí)施例中異常識別及自動化處理的方法,它是指當(dāng)被監(jiān)控系統(tǒng)在運(yùn)行過程中出現(xiàn)異常時,監(jiān)控系統(tǒng)無需將所有異常問題都發(fā)送給運(yùn)維人員,等待人工處理;而是經(jīng)異常分析確認(rèn)異常原因及異常嚴(yán)重性,并自動調(diào)用監(jiān)控系統(tǒng)內(nèi)的異常處理方式,直接對異常做出相應(yīng)處理,具體步驟為:步驟401:針對監(jiān)控?cái)?shù)據(jù)達(dá)到異常閥值的被監(jiān)控系統(tǒng),異常分析模塊通過計(jì)算被監(jiān)控系統(tǒng)運(yùn)行時在監(jiān)控?cái)?shù)據(jù)上的數(shù)值超出閥值的范圍判斷異常的嚴(yán)重性,通過依據(jù)監(jiān)控?cái)?shù)據(jù)隸屬監(jiān)控模型的維度判定異常產(chǎn)生起因,同時記錄本次異常的發(fā)生時間、所屬的應(yīng)用系統(tǒng)、發(fā)生的主機(jī);步驟402:根據(jù)閥值、閥值超出范圍在異常處理庫中搜索對之對應(yīng)的異常處理方式;步驟403:針對在監(jiān)控系統(tǒng)內(nèi)能搜尋到異常處理方式的異常,直接從異常處理庫中調(diào)用異常處理方式,作用于異常對象;針對在監(jiān)控系統(tǒng)內(nèi)不能搜尋到異常處理方式的異常,監(jiān)控系統(tǒng)應(yīng)及時告知被監(jiān)控系統(tǒng),待被監(jiān)控系統(tǒng)向異常處理庫中添加異常處理方式后再對異常進(jìn)行處理;步驟404:狀態(tài)入庫:異常對象處理完畢后,監(jiān)控系統(tǒng)需要將異常的現(xiàn)場數(shù)據(jù)和異常處理的結(jié)果信息記錄入監(jiān)控系統(tǒng)的數(shù)據(jù)庫中,用以后期對被監(jiān)控系統(tǒng)的整體運(yùn)行狀態(tài)做異常評估;所述異常的現(xiàn)場數(shù)據(jù),指包括異常發(fā)生的時間、異常發(fā)生的應(yīng)用、異常發(fā)生的主機(jī)、異常名稱、異常處理方式、異常處理用時;步驟405:監(jiān)控系統(tǒng)實(shí)時更新數(shù)據(jù)庫內(nèi)各個被監(jiān)控系統(tǒng)的正常運(yùn)行數(shù)據(jù)、異常運(yùn)行及處理數(shù)據(jù),并對監(jiān)控?cái)?shù)據(jù)、異常處理做不同維度的統(tǒng)計(jì)及可視化展現(xiàn),本發(fā)明實(shí)施例中監(jiān)控?cái)?shù)據(jù)運(yùn)行曲線圖中也明顯給出了這種統(tǒng)計(jì)及可視化展現(xiàn)。所屬領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:以上所述僅為本發(fā)明的具體實(shí)施例而已,并不用于限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所做的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。