本公開涉及ha狀態(tài)監(jiān)控技術(shù),尤其涉及ha狀態(tài)的處理方法及裝置。
背景技術(shù):
相關(guān)技術(shù)中,mw-ha(ha配置的安全監(jiān)管平臺)指為安全監(jiān)管平臺提供的高可用功能,它在兩臺安全監(jiān)管平臺上,構(gòu)建集群,提供虛擬ip,作為外部用戶或設(shè)備接入的接口,在內(nèi)部ha軟件監(jiān)控節(jié)點的狀態(tài)和相關(guān)資源的狀態(tài),實現(xiàn)資源的故障遷移(failover)。兩臺安全監(jiān)管平臺在ha狀態(tài)下,都對外提供服務(wù)。主備之分只是名義上的概念,沒有實質(zhì)區(qū)別。一般ha都基于心跳數(shù)據(jù),檢測節(jié)點的狀態(tài)(啟動、宕機(jī)等)以及各個ha管理的各種資源或者服務(wù)的狀態(tài)。因此,心跳數(shù)據(jù)的傳輸在ha應(yīng)用中至關(guān)重要。
一般來說,ha所依賴的相關(guān)系統(tǒng)服務(wù)、基礎(chǔ)軟件以及應(yīng)用軟件比較多,任何一個服務(wù)或者應(yīng)用出問題,都有可能影響整個ha系統(tǒng)的穩(wěn)定性以及可用性。普通監(jiān)控軟件需要搭建獨立的監(jiān)控服務(wù)器,來集中管理監(jiān)控數(shù)據(jù),但是由于ha系統(tǒng)需要監(jiān)控的資源比較多,監(jiān)控的參數(shù)比較復(fù)雜,因此相關(guān)技術(shù)中的監(jiān)控軟件不適合于監(jiān)控資源受限的工控環(huán)境。
技術(shù)實現(xiàn)要素:
為克服相關(guān)技術(shù)中存在的問題,本公開提供一種ha系統(tǒng)狀態(tài)的處理方法及裝置。
根據(jù)本公開實施例的第一方面,提供一種ha系統(tǒng)狀態(tài)的處理方法,所述方法包括:
通過主監(jiān)控進(jìn)程監(jiān)控至少一個子監(jiān)控進(jìn)程的狀態(tài),其中,所述子監(jiān)控進(jìn)程用于檢查監(jiān)控的所述ha系統(tǒng)的資源狀態(tài);以及
當(dāng)監(jiān)控到所述ha系統(tǒng)的資源狀態(tài)存在異常情況時,調(diào)用與所述異常情況相對應(yīng)的恢復(fù)進(jìn)程進(jìn)行恢復(fù)。
進(jìn)一步地,所述當(dāng)監(jiān)控到所述ha系統(tǒng)的資源狀態(tài)存在異常情況時包括:
通過所述至少一個子監(jiān)控進(jìn)程對所述ha系統(tǒng)的資源狀態(tài)進(jìn)行檢測;
當(dāng)所述至少一個子監(jiān)控進(jìn)程檢測到所述ha系統(tǒng)的資源狀態(tài)存在異常情況時,創(chuàng)建系統(tǒng)事件;以及
將所創(chuàng)建的系統(tǒng)事件發(fā)布到事件總線。
進(jìn)一步地,所述調(diào)用與所述異常情況相對應(yīng)的恢復(fù)進(jìn)程進(jìn)行恢復(fù)包括:
從所述事件總線中訂閱系統(tǒng)事件;以及
接收訂閱的系統(tǒng)事件,并根據(jù)所述系統(tǒng)事件中的資源狀態(tài)的異常情況,調(diào)用與所述異常情況相對應(yīng)的恢復(fù)進(jìn)程,以將ha系統(tǒng)的資源狀態(tài)恢復(fù)至正常狀態(tài)。
進(jìn)一步地,所述方法還包括:
在所述通過所述主監(jiān)控進(jìn)程監(jiān)控至少一個子監(jiān)控進(jìn)程的狀態(tài)之前,將所述主監(jiān)控進(jìn)程注冊為至少一個子監(jiān)控進(jìn)程的觀察者,以對所述至少一個子監(jiān)控進(jìn)程的狀態(tài)進(jìn)行監(jiān)控。
進(jìn)一步地,所述方法還包括:
通過所述至少一個子監(jiān)控進(jìn)程對所述ha系統(tǒng)的資源狀態(tài)進(jìn)行檢測;以及
當(dāng)檢測到所述ha系統(tǒng)的資源狀態(tài)變化時,修改ha狀態(tài)數(shù)據(jù)中與所述資源狀態(tài)對應(yīng)的數(shù)據(jù)并向所述主監(jiān)控進(jìn)程更新所述資源狀態(tài)。
進(jìn)一步地,所述ha系統(tǒng)的狀態(tài)包括以下至少之一者:
分布式復(fù)制塊設(shè)備drbd狀態(tài)、所述ha系統(tǒng)管理的資源狀態(tài)、網(wǎng)絡(luò)狀態(tài)。
進(jìn)一步地,所述方法還包括:
根據(jù)ha狀態(tài)數(shù)據(jù)、ha系統(tǒng)的資源狀態(tài)參數(shù)和資源狀態(tài)異常情況發(fā)生節(jié)點,確定ha系統(tǒng)的健康指數(shù)。
進(jìn)一步地,所述方法還包括:
根據(jù)所述ha系統(tǒng)的健康指數(shù)的數(shù)值范圍,顯示對應(yīng)的健康標(biāo)志。
進(jìn)一步地,所述方法還包括:
響應(yīng)于初始化請求,以初始化所述主監(jiān)控進(jìn)程。
根據(jù)本公開實施例的第二方面,提供一種ha系統(tǒng)狀態(tài)的處理裝置,包括:
監(jiān)控單元,用于通過主監(jiān)控進(jìn)程監(jiān)控至少一個子監(jiān)控進(jìn)程的狀態(tài),其中,所述子監(jiān)控進(jìn)程用于檢查監(jiān)控的所述ha系統(tǒng)的資源狀態(tài);以及
恢復(fù)單元,用于當(dāng)監(jiān)控到所述ha系統(tǒng)的資源狀態(tài)存在異常情況時,調(diào)用與所述異常情況相對應(yīng)的恢復(fù)進(jìn)程進(jìn)行恢復(fù)。
本公開的實施例提供的技術(shù)方案可以包括以下有益效果:創(chuàng)建了ha系統(tǒng)的輕量級監(jiān)控機(jī)制,在不需要搭建獨立的監(jiān)控服務(wù)器的情況下,便于工控設(shè)備等資源受限的情況下對ha進(jìn)行監(jiān)控,還實現(xiàn)了同時對ha系統(tǒng)涉及的各種系統(tǒng)服務(wù)、網(wǎng)絡(luò)、基礎(chǔ)軟件和應(yīng)用軟件的監(jiān)控,捕獲各種異常情況,并及時對異常進(jìn)行恢復(fù),以提高h(yuǎn)a系統(tǒng)的整體穩(wěn)定性和服務(wù)的可用性。
應(yīng)當(dāng)理解的是,以上的一般描述和后文的細(xì)節(jié)描述僅是示例性和解釋性的,并不能限制本公開。
附圖說明
此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
圖1是根據(jù)一示例性實施例示出的一種ha系統(tǒng)的總體邏輯架構(gòu)圖;
圖2是根據(jù)一示例性實施例示出的一種ha系統(tǒng)狀態(tài)的處理方法的流程圖;
圖3是根據(jù)一示例性實施例示出的一種ha系統(tǒng)狀態(tài)的處理方法中ha狀態(tài)數(shù)據(jù)示意圖;
圖4是根據(jù)一示例性實施例示出的一種ha系統(tǒng)狀態(tài)的處理裝置結(jié)構(gòu)框圖。
具體實施方式
這里將詳細(xì)地對示例性實施例進(jìn)行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權(quán)利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
本公開提供一種ha系統(tǒng)狀態(tài)的處理方法,通過監(jiān)控ha系統(tǒng)涉及的各種系統(tǒng)服務(wù)、網(wǎng)絡(luò)、基礎(chǔ)軟件和應(yīng)用軟件,從而發(fā)現(xiàn)各種異常情況,并及時對異常進(jìn)行恢復(fù)。
為了使本領(lǐng)域技術(shù)人員能夠清楚、準(zhǔn)確地理解本公開的技術(shù)方案,在對本公開實施例進(jìn)行詳細(xì)描述之前,下面首先結(jié)合附圖對ha系統(tǒng)中的結(jié)構(gòu)框架進(jìn)行詳細(xì)介紹。
如圖1所示,提供了根據(jù)一示例性實施例示出的ha系統(tǒng)的總體邏輯架構(gòu)圖。ha系統(tǒng)可以包括四個組成部分,分別為數(shù)據(jù)備份層、節(jié)點管理層、服務(wù)管理層、ha狀態(tài)監(jiān)測與自動恢復(fù)模塊。
1)數(shù)據(jù)備份層:負(fù)責(zé)將數(shù)據(jù)從主節(jié)點同步備份到備用節(jié)點,同時維護(hù)備用節(jié)點的數(shù)據(jù)備份的狀態(tài),例如數(shù)據(jù)是否處于更新,還是未同步,或者腦裂。以及在主節(jié)點發(fā)生故障時,將主節(jié)點自動切換到原來的備用節(jié)點,然后繼續(xù)提供數(shù)據(jù)共享服務(wù)。
2)節(jié)點管理層:其依靠心跳數(shù)據(jù)通訊,心跳數(shù)據(jù)要保證高度的可靠性,以確保每個節(jié)點狀態(tài)的正確性,在主節(jié)點故障時,可以將服務(wù)正確地遷移到正常的節(jié)點(例如備用節(jié)點)上。在正確心跳數(shù)據(jù)的基礎(chǔ)上,ha軟件會記錄節(jié)點的狀態(tài),正?;蛘叩艟€,并不斷及時更新節(jié)點狀態(tài)。
3)服務(wù)管理層:用于管理各個ha資源(例如,ha軟件管理的系統(tǒng)服務(wù)),選擇正確的節(jié)點部署資源,在節(jié)點故障時,將ha資源遷移到正常節(jié)點。在本公開中,ha資源可以包括:虛擬ip,mysql服務(wù),其他系統(tǒng)服務(wù),kafka等。
此外,服務(wù)管理層還可以具備檢測外部網(wǎng)絡(luò)的功能,例如,當(dāng)單個節(jié)點的外部網(wǎng)絡(luò)異常,而另外一個節(jié)點外部網(wǎng)絡(luò)正常時,可以將ha資源遷移到外部網(wǎng)絡(luò)正常的節(jié)點上。
4)ha狀態(tài)監(jiān)測與自動恢復(fù)模塊:可以定期檢測或者實時監(jiān)測各個系統(tǒng)服務(wù)的狀態(tài),在系統(tǒng)服務(wù)出現(xiàn)異常時,可以控制異常的系統(tǒng)服務(wù)恢復(fù)正常工作狀態(tài)。ha系統(tǒng)往往會運(yùn)行多個系統(tǒng)服務(wù),且ha系統(tǒng)的穩(wěn)定性依賴于這些系統(tǒng)服務(wù),因此在ha系統(tǒng)中配置ha狀態(tài)監(jiān)測與自動恢復(fù)模塊,可以確保系統(tǒng)服務(wù)的正常運(yùn)行。
基于上述ha系統(tǒng)的結(jié)構(gòu)框架,本公開提供一種用于對上述ha系統(tǒng)的結(jié)構(gòu)框架中涉及的各種系統(tǒng)服務(wù)、網(wǎng)絡(luò)、基礎(chǔ)軟件和應(yīng)用軟件的狀態(tài)進(jìn)行處理的方法,通過本公開提供的處理方法,在不需要搭建獨立的監(jiān)控服務(wù)器的情況下,實現(xiàn)對ha系統(tǒng)涉及的各種系統(tǒng)服務(wù)、網(wǎng)絡(luò)、基礎(chǔ)軟件和應(yīng)用軟件的監(jiān)控,以便及時對異常進(jìn)行恢復(fù),以提高h(yuǎn)a系統(tǒng)的整體穩(wěn)定性和服務(wù)的可用性。下面將結(jié)合附圖對本公開的技術(shù)方案進(jìn)行詳細(xì)描述。
圖2是根據(jù)一示例性實施例示出的一種ha系統(tǒng)狀態(tài)的處理方法的流程圖,如圖2所示,所述ha系統(tǒng)狀態(tài)的處理方法包括以下步驟:
在步驟s21中,通過主監(jiān)控進(jìn)程監(jiān)控至少一個子監(jiān)控進(jìn)程的狀態(tài),其中,所述子監(jiān)控進(jìn)程用于檢查監(jiān)控的所述ha系統(tǒng)的資源狀態(tài)。
在通過主監(jiān)控進(jìn)程監(jiān)控至少一個子監(jiān)控進(jìn)程的狀態(tài)之前,接收第三方裝置通過特定接口(例如,restapi)發(fā)送的初始化請求,所述ha系統(tǒng)響應(yīng)于所述初始化請求,進(jìn)行自動配置,以初始化所述主監(jiān)控進(jìn)程。
以基于linux的ha系統(tǒng)狀態(tài)處理為例,結(jié)合linux本身的系統(tǒng)特性,可以預(yù)先定義的函數(shù)例如hamonitor作為ha狀態(tài)監(jiān)控的主監(jiān)控進(jìn)程以及預(yù)先定義用于對ha的資源狀態(tài)進(jìn)行監(jiān)控的函數(shù)(如所示子監(jiān)控進(jìn)程)。所述主監(jiān)控進(jìn)程hamonitor可以先調(diào)用自身init方法進(jìn)行初始化,然后啟動各個服務(wù)的監(jiān)控器,例如至少一個子監(jiān)控進(jìn)程,以對所述ha系統(tǒng)的資源狀態(tài)進(jìn)行監(jiān)控。
需要說明的是,主監(jiān)控進(jìn)程hamonitor可以理解為是ha狀態(tài)監(jiān)控的邏輯主入口,為ha監(jiān)控部分的總調(diào)度程序。采用observer設(shè)計模式,可以從其他monitor子類(即子監(jiān)控進(jìn)程)中獲取ha狀態(tài)更新數(shù)據(jù)。其中,主監(jiān)控進(jìn)程hamonitor中還可以定義有其他的子類,例如:status,用于表示當(dāng)前的ha狀態(tài)參數(shù);overallhealth,用于計算和表示當(dāng)前的總體健康指數(shù);getnodestatus,用于獲取子監(jiān)控進(jìn)程監(jiān)測到的ha系統(tǒng)各個資源的當(dāng)前狀態(tài)參數(shù);updatestatus,用于根據(jù)getnodestatus獲取到的參數(shù)更新當(dāng)前的狀態(tài)參數(shù),以及控制其他線程(例如,子監(jiān)控進(jìn)程)根據(jù)對應(yīng)的ha系統(tǒng)的資源的狀態(tài)進(jìn)行狀態(tài)更新,且進(jìn)行狀態(tài)更新之前需預(yù)先取得解鎖,否則以免造成數(shù)據(jù)阻塞;calculateoverallhealth,用于計算整體健康指數(shù)。
另外,在一些實施例中,在所述通過所述主監(jiān)控進(jìn)程監(jiān)控至少一個子監(jiān)控進(jìn)程的狀態(tài)之前,將所述主監(jiān)控進(jìn)程注冊為至少一個子監(jiān)控進(jìn)程的觀察者。其中,以drbdmonitor、haresourcesmonitor和networkmonitor三個子監(jiān)控進(jìn)程為例,分別用于監(jiān)控drbd狀態(tài)、ha管理的資源狀態(tài)和網(wǎng)絡(luò)狀態(tài),將hamonitor作為drbdmonitor、haresourcesmonitor和networkmonitor的觀察者,以便對上述三個子監(jiān)控進(jìn)程的狀態(tài)進(jìn)行監(jiān)控。
在一些實施例中,通過所述至少一個子監(jiān)控進(jìn)程對所述ha系統(tǒng)的資源狀態(tài)進(jìn)行檢測;以及當(dāng)檢測到所述ha系統(tǒng)的資源狀態(tài)變化時,修改ha狀態(tài)數(shù)據(jù)中與所述資源狀態(tài)對應(yīng)的數(shù)據(jù)并向所述主監(jiān)控進(jìn)程更新所述資源狀態(tài)。
其中,其中如圖3所示,ha狀態(tài)數(shù)據(jù)為一個寬度為32位的由0/1代碼組成的整數(shù)。總體按照每8位為一組,分別表示不同類型的資源狀態(tài),分別有ha資源組、drbd組、網(wǎng)絡(luò)組和預(yù)留組四類。每一位分別代表一個資源狀態(tài),正常為0,異常為1。整個ha狀態(tài)最終表示為一個整數(shù),對狀態(tài)進(jìn)行查詢或者設(shè)置時,需要對相關(guān)的0/1代碼位進(jìn)行操作。
以drbd組、所述ha資源組以及網(wǎng)絡(luò)組中的資源狀態(tài)為例,當(dāng)檢測到ha資源組中的資源狀態(tài)變化時,修改ha狀態(tài)數(shù)據(jù)中與所述資源狀態(tài)對應(yīng)的數(shù)據(jù),即將所述ha資源組中對應(yīng)的資源狀態(tài)由0修改為1,同時通知觀察者h(yuǎn)amonitor,并向所述主監(jiān)控進(jìn)程hamonitor更新所述資源狀態(tài);類似的,當(dāng)檢測到drbd狀態(tài)變化時,ha狀態(tài)數(shù)據(jù)中與所述資源狀態(tài)對應(yīng)的數(shù)據(jù),即將所述drbd組中對應(yīng)的資源狀態(tài)由0修改為1,同時通知觀察者h(yuǎn)amonitor,并向所述主監(jiān)控進(jìn)程hamonitor更新所述資源狀態(tài);類似的,當(dāng)檢測到網(wǎng)絡(luò)狀態(tài)變化時,ha狀態(tài)數(shù)據(jù)中與所述資源狀態(tài)對應(yīng)的數(shù)據(jù),即將所述網(wǎng)絡(luò)組中對應(yīng)的資源狀態(tài)由0修改為1,同時通知觀察者h(yuǎn)amonitor,并向所述主監(jiān)控進(jìn)程hamonitor更新所述資源狀態(tài)。
在步驟s22中,當(dāng)監(jiān)控到所述ha系統(tǒng)的資源狀態(tài)存在異常情況時,調(diào)用與所述異常情況相對應(yīng)的恢復(fù)進(jìn)程進(jìn)行恢復(fù)。
在一些實施例中,通過所述至少一個子監(jiān)控進(jìn)程對所述ha系統(tǒng)的資源狀態(tài)進(jìn)行檢測;當(dāng)所述至少一個子監(jiān)控進(jìn)程檢測到所述ha系統(tǒng)的資源狀態(tài)存在異常情況時,創(chuàng)建系統(tǒng)事件;將所創(chuàng)建的系統(tǒng)事件發(fā)布到事件總線。
其中,所述系統(tǒng)事件是對存在異常情況的狀態(tài)的描述,以函數(shù)systemevent表示系統(tǒng)事件為例,其中包括諸如系統(tǒng)事件的時間戳、事件類型等插件,如eventid插件用于表示系統(tǒng)事件的uuid(universallyuniqueidentifier,通用唯一標(biāo)識符);hostname插件用于表示發(fā)生系統(tǒng)事件的主機(jī)名;hostipaddr插件用于表示發(fā)生系統(tǒng)事件的ip地址;message插件用于表示系統(tǒng)事件的提示內(nèi)容;priority插件用于表示系統(tǒng)事件的優(yōu)先級;eventtype插件用于表示系統(tǒng)事件類型;timestamp插件用于表示系統(tǒng)事件的時間戳等等。
其中,對于ha系統(tǒng)而言,在事件總線中發(fā)送和接收的對象都是系統(tǒng)事件。事件總線用于在多個子系統(tǒng)、代碼之間提供弱耦合的應(yīng)用集成。事件總線的物理基礎(chǔ)是消息機(jī)制(messagebroker),基于message來封裝系統(tǒng)事件,構(gòu)建整個事件驅(qū)動的架構(gòu)。
在另一些實施例中,從所述事件總線中訂閱系統(tǒng)事件;接收訂閱的系統(tǒng)事件,并根據(jù)所述系統(tǒng)事件中的資源狀態(tài)的異常情況,調(diào)用與所述異常情況相對應(yīng)的恢復(fù)進(jìn)程進(jìn)行恢復(fù)。
其中,多個程序可以訂閱系統(tǒng)事件,當(dāng)訂閱的系統(tǒng)事件出現(xiàn)后,即會被發(fā)送到所訂閱的程序,當(dāng)程序接收到訂閱的系統(tǒng)事件后,根據(jù)所述系統(tǒng)事件中的資源狀態(tài)的異常情況,調(diào)用與所述異常情況相對應(yīng)的恢復(fù)進(jìn)程進(jìn)行恢復(fù)。例如,ha資源管理器hamanager和drbd管理器drbdmanager在訂閱相關(guān)的系統(tǒng)事件后,當(dāng)所訂閱的系統(tǒng)事件發(fā)送到hamanager或drbdmanager時,hamanager或drbdmanager會根據(jù)所述系統(tǒng)事件中的資源狀態(tài)的異常情況,調(diào)用與所述異常情況相對應(yīng)的恢復(fù)進(jìn)程進(jìn)行恢復(fù)。
例如,函數(shù)hamanager的onsystemevent插件用于處理ha系統(tǒng)中資源異常相關(guān)的系統(tǒng)事件;函數(shù)drbdmanager的onsystemevent插件用于處理drbd相關(guān)的系統(tǒng)事件。
另外,同一個系統(tǒng)事件也可能會由多個程序進(jìn)行恢復(fù)處理,主要是看訂閱系統(tǒng)事件的程序有哪些,一旦系統(tǒng)事件發(fā)生,所述系統(tǒng)事件將會發(fā)送到訂閱的程序進(jìn)行恢復(fù)處理。
在另一些實施例中,根據(jù)ha狀態(tài)數(shù)據(jù)、ha系統(tǒng)的資源狀態(tài)參數(shù)和資源狀態(tài)異常情況發(fā)生節(jié)點,確定ha系統(tǒng)的健康指數(shù)。
在確定ha系統(tǒng)的健康指數(shù)之前,首先按照資源的重要程度對資源進(jìn)行分級,分為:一般資源,資源發(fā)生異常時不會影響其他資源,也可以簡單恢復(fù);重要資源,資源異常時會影響其他資源,恢復(fù)時可能需要恢復(fù)多個服務(wù);關(guān)鍵資源,資源異常時,會影響用戶使用,恢復(fù)時可能導(dǎo)致數(shù)據(jù)丟失等。
根據(jù)上述分級得到所述ha系統(tǒng)的每個資源狀態(tài)參數(shù),例如,每一種資源都有一個基礎(chǔ)分?jǐn)?shù),正常的+5分,異常的-5分。資源按照重要度不同,會給分?jǐn)?shù)乘以權(quán)重,例如一般資源的權(quán)重為1,重要資源的權(quán)重為3,關(guān)鍵資源的權(quán)重為5。同時還會區(qū)分資源異常是發(fā)生在主節(jié)點上,還是備用節(jié)點上。若異常發(fā)生在備用節(jié)點上,分?jǐn)?shù)乘以權(quán)重1,若異常發(fā)生在主節(jié)點上,分?jǐn)?shù)乘以權(quán)重3。
根據(jù)所述ha狀態(tài)數(shù)據(jù)中的32位由0/1組成的代碼,由于每一位分別代表一個資源狀態(tài),正常為0,異常為1,可以得到每種資源的狀態(tài),再結(jié)合ha系統(tǒng)的每個資源狀態(tài)參數(shù)和對應(yīng)資源狀態(tài)異常情況發(fā)生節(jié)點,確定ha系統(tǒng)的健康指數(shù)。
在另一個實施例中,根據(jù)所述ha系統(tǒng)的健康指數(shù)的數(shù)值范圍,顯示對應(yīng)的健康標(biāo)志。
例如,計算得到整個ha系統(tǒng)的健康指數(shù)后,還可以根據(jù)數(shù)值的范圍,通過不同顏色作為健康標(biāo)志為用戶展示,例如使用紅色、黃色或綠色健康標(biāo)志。
例如,主監(jiān)控進(jìn)程hamonitor會定期調(diào)用函數(shù)calculateoverallhealth通過上述規(guī)則來計算ha系統(tǒng)的健康指數(shù)。外部調(diào)用者還可以通過函數(shù)overallhealth來獲取當(dāng)前的總體健康指數(shù)。
本公開實施例中的ha系統(tǒng)在異常發(fā)生后,基于事件總線將對應(yīng)的系統(tǒng)事件發(fā)送給相關(guān)的訂閱者去處理。異常處理程序在收到系統(tǒng)事件后,會根據(jù)異常情況的具體情況,調(diào)用自身的不同方法進(jìn)行異常恢復(fù)。監(jiān)控和異常恢復(fù)的密切配合,確保了ha系統(tǒng)異常會在第一時間自動恢復(fù),確保了ha系統(tǒng)的穩(wěn)定性和服務(wù)的可用性。另外,基于事件總線將監(jiān)控與異?;謴?fù)集成在一起,提高了模塊的內(nèi)聚,弱化了模塊之間的耦合度,同時也便于多個系統(tǒng)事件的處理程序?qū)τ谕粋€系統(tǒng)事件進(jìn)行不同的處理。
通過ha系統(tǒng)的輕量級監(jiān)控機(jī)制,便于工控設(shè)備等資源受限的情況下對ha狀態(tài)進(jìn)行監(jiān)控,能捕獲各種異常情況,并及時對異常進(jìn)行恢復(fù),以提高h(yuǎn)a系統(tǒng)的整體穩(wěn)定性和服務(wù)的可用性。另外由于對ha系統(tǒng)進(jìn)行定期監(jiān)控,基于各種服務(wù)和資源的不同權(quán)重計算整體的ha健康狀況,為用戶提供直觀清晰的ha健康狀況。
圖4是根據(jù)一示例性實施例示出的一種ha系統(tǒng)狀態(tài)的處理裝置結(jié)構(gòu)框圖。參照圖4,一種ha系統(tǒng)狀態(tài)的處理裝置40包括監(jiān)控單元41和恢復(fù)單元42。
監(jiān)控單元41,用于通過主監(jiān)控進(jìn)程監(jiān)控至少一個子監(jiān)控進(jìn)程的狀態(tài),其中,所述子監(jiān)控進(jìn)程用于檢查監(jiān)控的所述ha系統(tǒng)的資源狀態(tài);以及
恢復(fù)單元42,用于當(dāng)監(jiān)控到所述ha系統(tǒng)的資源狀態(tài)存在異常情況時,調(diào)用與所述異常情況相對應(yīng)的恢復(fù)進(jìn)程進(jìn)行恢復(fù)。
通過ha系統(tǒng)的輕量級監(jiān)控機(jī)制,便于工控設(shè)備等資源受限的情況下對ha狀態(tài)進(jìn)行監(jiān)控,捕獲各種異常情況,并及時對異常進(jìn)行恢復(fù),以提高h(yuǎn)a系統(tǒng)的整體穩(wěn)定性和服務(wù)的可用性。
關(guān)于上述實施例中的裝置,其中各個模塊執(zhí)行操作的具體方式已經(jīng)在有關(guān)該方法的實施例中進(jìn)行了詳細(xì)描述,此處將不做詳細(xì)闡述說明。
本領(lǐng)域技術(shù)人員在考慮說明書及實踐這里公開的發(fā)明后,將容易想到本發(fā)明的其它實施方案。本申請旨在涵蓋本發(fā)明的任何變型、用途或者適應(yīng)性變化,這些變型、用途或者適應(yīng)性變化遵循本發(fā)明的一般性原理并包括本公開未公開的本技術(shù)領(lǐng)域中的公知常識或慣用技術(shù)手段。說明書和實施例僅被視為示例性的,本發(fā)明的真正范圍和精神由下面的權(quán)利要求指出。
應(yīng)當(dāng)理解的是,本發(fā)明并不局限于上面已經(jīng)描述并在附圖中示出的精確結(jié)構(gòu),并且可以在不脫離其范圍進(jìn)行各種修改和改變。本發(fā)明的范圍僅由所附的權(quán)利要求來限制。