本發(fā)明實(shí)施例涉及分布式集群系統(tǒng)技術(shù)領(lǐng)域,特別是涉及一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法、裝置及系統(tǒng)。
背景技術(shù):
分布式集群系統(tǒng)一般包含多臺(tái)服務(wù)器,這些服務(wù)器組成一個(gè)集群,統(tǒng)一對(duì)外提供服務(wù)。數(shù)據(jù)監(jiān)控是分布式集群系統(tǒng)中的一個(gè)關(guān)鍵環(huán)節(jié),監(jiān)控集群中各個(gè)服務(wù)器節(jié)點(diǎn)(簡稱節(jié)點(diǎn))的性能和硬件指標(biāo)狀態(tài),比如各節(jié)點(diǎn)的cpu利用率、內(nèi)存利用率、電源和主板溫度等,以便為系統(tǒng)管理人員提供實(shí)時(shí)的監(jiān)控指標(biāo)數(shù)據(jù)。
通常情況下,在各個(gè)節(jié)點(diǎn)上部署一個(gè)代理進(jìn)程m_agent(也即m_agent模塊),該m_agent模塊負(fù)責(zé)實(shí)時(shí)的搜集所屬節(jié)點(diǎn)的性能和硬件指標(biāo)數(shù)據(jù),通過udp協(xié)議(userdatagramprotocol,用戶數(shù)據(jù)報(bào)協(xié)議)以單播或組播的方式向指定的端口發(fā)送這些數(shù)據(jù),并且任意兩個(gè)節(jié)點(diǎn)通過指定的端口互相接收彼此的數(shù)據(jù),這樣每個(gè)節(jié)點(diǎn)的m_agent模塊都搜集到其他節(jié)點(diǎn)的性能數(shù)據(jù),另外,還需要在集群中選定一個(gè)節(jié)點(diǎn)(稱為主節(jié)點(diǎn))部署數(shù)據(jù)監(jiān)控進(jìn)程m_client(即數(shù)據(jù)監(jiān)控模塊),該模塊從本節(jié)點(diǎn)的指定端口接收其他節(jié)點(diǎn)發(fā)送的數(shù)據(jù),并將數(shù)據(jù)保存至本節(jié)點(diǎn)的數(shù)據(jù)庫中,以供系統(tǒng)管理人員實(shí)時(shí)監(jiān)控和查看。
可見,現(xiàn)有技術(shù)中的分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法是通過主節(jié)點(diǎn)中的數(shù)據(jù)監(jiān)控模塊來獲取各個(gè)節(jié)點(diǎn)的數(shù)據(jù)信息,并將這些數(shù)據(jù)信息存儲(chǔ)在主節(jié)點(diǎn)的數(shù)據(jù)庫中,從而實(shí)現(xiàn)對(duì)分布式集群的數(shù)據(jù)監(jiān)控。但是,當(dāng)主節(jié)點(diǎn)出現(xiàn)故障不能正常運(yùn)行時(shí),數(shù)據(jù)監(jiān)控模塊(即m_client進(jìn)程)也會(huì)停止工作,從而將停止對(duì)數(shù)據(jù)信息的實(shí)時(shí)搜集,也即將停止進(jìn)行數(shù)據(jù)監(jiān)控工作,在一定程度上降低了系統(tǒng)的穩(wěn)定性和可靠性。
因此,如何提供一種解決上述技術(shù)問題的分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法、裝置及系統(tǒng)成為本領(lǐng)域的技術(shù)人員目前需要解決的問題。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例的目的是提供一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法、裝置及系統(tǒng),在一定程度上提高了系統(tǒng)的穩(wěn)定性和可靠性。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法,包括:
實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常,并當(dāng)所述第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)異常時(shí),實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù);
將所述運(yùn)行數(shù)據(jù)儲(chǔ)存至第二數(shù)據(jù)庫中。
可選的,所述方法還包括:
定時(shí)獲取所述主節(jié)點(diǎn)上的數(shù)據(jù)備份模塊發(fā)送的第一數(shù)據(jù)信息;
將所述數(shù)據(jù)信息存儲(chǔ)至所述第二數(shù)據(jù)庫中;所述第一數(shù)據(jù)信息為所述數(shù)據(jù)備份模塊從所述主節(jié)點(diǎn)上的第一數(shù)據(jù)庫中獲取的;所述數(shù)據(jù)備份模塊為預(yù)先添加至所述主節(jié)點(diǎn)中的。
可選的,所述方法還包括:
當(dāng)所述第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)恢復(fù)正常時(shí),接收所述數(shù)據(jù)備份模塊發(fā)送的獲取指令;
依據(jù)所述獲取指令獲取所述第二數(shù)據(jù)庫中存儲(chǔ)的第二數(shù)據(jù)信息,并將所述第二數(shù)據(jù)信息發(fā)送至所述數(shù)據(jù)備份模塊,以便所述數(shù)據(jù)備份模塊將所述數(shù)據(jù)信息存儲(chǔ)至所述第一數(shù)據(jù)庫中。
可選的,所述運(yùn)行數(shù)據(jù)包括cpu利用率、內(nèi)存利用率、電源溫度及主板溫度中的一種或多種的組合。
可選的,如上述所述的分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法,所述方法還包括:
當(dāng)所述第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)恢復(fù)正常時(shí),停止對(duì)各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)的獲取。
可選的,實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常的過程具體為:
通過心跳連接的方式實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控裝置,包括:
第二數(shù)據(jù)監(jiān)控模塊,用于實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常,并當(dāng)所述第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)異常時(shí),實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù);
存儲(chǔ)模塊,用于將所述運(yùn)行數(shù)據(jù)儲(chǔ)存至第二數(shù)據(jù)庫中。
可選的,所述裝置還包括:
接收模塊,定時(shí)接收所述主節(jié)點(diǎn)上的數(shù)據(jù)備份模塊發(fā)送的第一數(shù)據(jù)信息,并發(fā)送所述第一數(shù)據(jù)信息發(fā)送;
所述存儲(chǔ)模塊,還用于將所述數(shù)據(jù)信息存儲(chǔ)至所述第二數(shù)據(jù)庫中;所述第一數(shù)據(jù)信息為所述數(shù)據(jù)備份模塊從所述主節(jié)點(diǎn)上的第一數(shù)據(jù)庫中獲取的;所述數(shù)據(jù)備份模塊為預(yù)先添加至所述主節(jié)點(diǎn)中的。
可選的,所述裝置還包括發(fā)送模塊;
所述接收模塊,還用于當(dāng)所述第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)恢復(fù)正常時(shí),接收所述數(shù)據(jù)備份模塊發(fā)送的獲取指令,并依據(jù)獲取指令獲取第二數(shù)據(jù)庫中存儲(chǔ)的第二數(shù)據(jù)信息;
所述發(fā)送模塊,用于將所述第二數(shù)據(jù)信息發(fā)送至所述數(shù)據(jù)備份模塊,以便所述數(shù)據(jù)備份模塊將所述數(shù)據(jù)信息存儲(chǔ)至所述第一數(shù)據(jù)庫中。
為解決上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控系統(tǒng),包括如上述所述的分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控裝置。
本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法、裝置及系統(tǒng),包括:實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常,并當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)異常時(shí),實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù);將運(yùn)行數(shù)據(jù)儲(chǔ)存至第二數(shù)據(jù)庫中。
可見,通過對(duì)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè),可以及時(shí)發(fā)現(xiàn)其異常狀態(tài),并當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)出現(xiàn)異常時(shí),實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),并將各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)存儲(chǔ)至第二數(shù)據(jù)庫中,以便管理人員在主節(jié)點(diǎn)的第一數(shù)據(jù)監(jiān)控模塊出現(xiàn)異常時(shí),可以通過對(duì)第二數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行監(jiān)控和查看,實(shí)現(xiàn)對(duì)分布式集群系統(tǒng)的運(yùn)行數(shù)據(jù)的實(shí)時(shí)監(jiān)控。本發(fā)明實(shí)施例在使用的過程中,在一定程度上提高了系統(tǒng)的穩(wěn)定性和可靠性。
附圖說明
為了更清楚地說明本發(fā)明實(shí)施例中的技術(shù)方案,下面將對(duì)現(xiàn)有技術(shù)和實(shí)施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
圖1為本發(fā)明實(shí)施例提供的一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法的流程示意圖;
圖2為本發(fā)明實(shí)施例提供的一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控裝置的結(jié)構(gòu)示意圖;
圖3為本發(fā)明實(shí)施例提供的另一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控裝置的結(jié)構(gòu)示意圖。
具體實(shí)施方式
本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法、裝置及系統(tǒng),在一定程度上提高了系統(tǒng)的穩(wěn)定性和可靠性。
為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例?;诒景l(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒有做出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
需要說明的是,由于在分布式集群系統(tǒng)中的各個(gè)節(jié)點(diǎn)(即服務(wù)器節(jié)點(diǎn))上均部署有一個(gè)代理進(jìn)程(即m_agent),并且各個(gè)節(jié)點(diǎn)上的m_agent模塊可以實(shí)時(shí)搜集所屬節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),并且該m_agent模塊可以通過指定的端口實(shí)現(xiàn)與其他節(jié)點(diǎn)上的m_agent模塊的實(shí)現(xiàn)數(shù)據(jù)通信,故每個(gè)節(jié)點(diǎn)上的m_agent都保留了其他節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),這些運(yùn)行數(shù)據(jù)包括節(jié)點(diǎn)的性能數(shù)據(jù)以及相關(guān)硬件的指標(biāo)數(shù)據(jù)。當(dāng)然,從各個(gè)節(jié)點(diǎn)中選擇出的主節(jié)點(diǎn)中部署m_client進(jìn)程,也就是在主節(jié)點(diǎn)中部署第一數(shù)據(jù)監(jiān)控模塊,該第一數(shù)據(jù)監(jiān)控模塊可以通過相關(guān)的通信協(xié)議(例如tcp協(xié)議(transmissioncontrolprotocol,傳輸控制協(xié)議))實(shí)時(shí)獲取本節(jié)點(diǎn)中的m_agent模塊獲取的數(shù)據(jù)信息,這些數(shù)據(jù)信息包含本節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)以及其他各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),并將這些數(shù)據(jù)信息存儲(chǔ)至主節(jié)點(diǎn)的第一數(shù)據(jù)庫中。當(dāng)主節(jié)點(diǎn)中的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)出現(xiàn)異常時(shí),就不能對(duì)分布式集群系統(tǒng)的數(shù)據(jù)進(jìn)行實(shí)時(shí)監(jiān)控了,所以針對(duì)上述技術(shù)問題,本發(fā)明實(shí)施例提供了一種有效的解決方案。
具體的如下:
請(qǐng)參照?qǐng)D1,圖1為本發(fā)明實(shí)施例提供的一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法的流程示意圖。
該方法包括:
s11:實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常,并當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)異常時(shí),實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù);
s12:將運(yùn)行數(shù)據(jù)儲(chǔ)存至第二數(shù)據(jù)庫中。
需要說明的是,本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法,具體的可以從除主節(jié)點(diǎn)之外的各個(gè)節(jié)點(diǎn)中選擇出任意一個(gè)節(jié)點(diǎn)作為性能監(jiān)控模塊的備份節(jié)點(diǎn),即從節(jié)點(diǎn),并且在該從節(jié)點(diǎn)上部署m_client進(jìn)程,也即部署第二數(shù)據(jù)監(jiān)控模塊,該第二數(shù)據(jù)監(jiān)控模塊可以實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)中的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài),具體可以通過心跳連接與第一數(shù)據(jù)監(jiān)控模塊進(jìn)行通信,以監(jiān)測(cè)第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)。如果主節(jié)點(diǎn)因某種故障出現(xiàn)宕機(jī)現(xiàn)象,則主節(jié)點(diǎn)中的第一數(shù)據(jù)監(jiān)控模塊、m_agent模塊等將均會(huì)停止工作,也即第一數(shù)據(jù)監(jiān)控模塊不能正常運(yùn)行,當(dāng)從節(jié)點(diǎn)中的第二數(shù)據(jù)監(jiān)控模塊監(jiān)測(cè)到主節(jié)點(diǎn)的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)異常時(shí),第二數(shù)據(jù)監(jiān)控模塊自動(dòng)將其狀態(tài)轉(zhuǎn)換為激活狀態(tài)(在第一數(shù)據(jù)監(jiān)控模塊正常運(yùn)行的情況下,第二數(shù)據(jù)監(jiān)控模塊的狀態(tài)為掛起狀態(tài)),并且開始實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),同樣這些運(yùn)行數(shù)據(jù)包括從節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)以及其他各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),并將獲取的運(yùn)行數(shù)據(jù)存儲(chǔ)至從節(jié)點(diǎn)中的第二數(shù)據(jù)庫中,分布式集群系統(tǒng)的管理人員可以到從節(jié)點(diǎn)中進(jìn)行監(jiān)測(cè)或查看。也即,當(dāng)主節(jié)點(diǎn)故障導(dǎo)致主節(jié)點(diǎn)中的第一數(shù)據(jù)監(jiān)控模塊不能進(jìn)行數(shù)據(jù)監(jiān)控時(shí),可以漂移到從節(jié)點(diǎn)中的第二數(shù)據(jù)監(jiān)控模塊,使其代替主節(jié)點(diǎn)中的第一數(shù)據(jù)監(jiān)控模塊進(jìn)行數(shù)據(jù)的獲取,以確??梢詫?shí)時(shí)的搜集和存儲(chǔ)整個(gè)分布式集群系統(tǒng)中各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)。
具體的,第二數(shù)據(jù)監(jiān)控模塊通過通信協(xié)議(例如tcp協(xié)議)實(shí)時(shí)獲取從節(jié)點(diǎn)中的m_agent模塊搜集到的自身節(jié)點(diǎn)及各個(gè)其他節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)。當(dāng)然,第二數(shù)據(jù)監(jiān)控模塊與m_agent模塊之間除了通過tcp協(xié)議進(jìn)行通信之外也可以通過其他的通信協(xié)議進(jìn)行通信,具體采用哪種協(xié)議本發(fā)明實(shí)施例對(duì)此不做特殊的限定,能實(shí)現(xiàn)本發(fā)明實(shí)施例的目的即可。
本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法,包括實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常,并當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)異常時(shí),實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù);將運(yùn)行數(shù)據(jù)儲(chǔ)存至第二數(shù)據(jù)庫中。
可見,通過對(duì)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)進(jìn)行監(jiān)測(cè),可以及時(shí)發(fā)現(xiàn)其異常狀態(tài),并當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)出現(xiàn)異常時(shí),實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),并將各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)存儲(chǔ)至第二數(shù)據(jù)庫中,以便管理人員在主節(jié)點(diǎn)的第一數(shù)據(jù)監(jiān)控模塊出現(xiàn)異常時(shí),可以通過對(duì)第二數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行監(jiān)控和查看,實(shí)現(xiàn)對(duì)分布式集群系統(tǒng)的運(yùn)行數(shù)據(jù)的實(shí)時(shí)監(jiān)控。本發(fā)明實(shí)施例在使用的過程中,在一定程度上提高了系統(tǒng)的穩(wěn)定性和可靠性。
本發(fā)明實(shí)施例公開了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法,相對(duì)于上一實(shí)施例,本實(shí)施例對(duì)技術(shù)方案作了進(jìn)一步的說明和優(yōu)化。具體的:
進(jìn)一步的,該方法還可以包括:
定時(shí)獲取主節(jié)點(diǎn)上的數(shù)據(jù)備份模塊發(fā)送的第一數(shù)據(jù)信息;
將數(shù)據(jù)信息存儲(chǔ)至第二數(shù)據(jù)庫中;第一數(shù)據(jù)信息為數(shù)據(jù)備份模塊從主節(jié)點(diǎn)上的第一數(shù)據(jù)庫中獲取的;數(shù)據(jù)備份模塊為預(yù)先添加至主節(jié)點(diǎn)中的。
需要說明的是,當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊正常運(yùn)行時(shí),各個(gè)節(jié)點(diǎn)的所以運(yùn)行數(shù)據(jù)存儲(chǔ)在主節(jié)點(diǎn)的第一數(shù)據(jù)庫中,當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊不能正常運(yùn)行時(shí),也即在第一數(shù)據(jù)監(jiān)控模塊異常的這段時(shí)間,各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)存儲(chǔ)在從節(jié)點(diǎn)的第二數(shù)據(jù)庫中。整體而言,整個(gè)分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控是以第一數(shù)據(jù)庫為主進(jìn)行存儲(chǔ)各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),若主節(jié)點(diǎn)發(fā)生故障、宕機(jī),則可能會(huì)導(dǎo)致存儲(chǔ)在第一數(shù)據(jù)庫中的數(shù)據(jù)發(fā)生丟失現(xiàn)象,而存儲(chǔ)在第一數(shù)據(jù)庫中的歷史數(shù)據(jù)又可以為后期對(duì)分布式集群系統(tǒng)的運(yùn)行維護(hù)提供依據(jù),所以數(shù)據(jù)的完整性也非常重要。
因此,為了保障整個(gè)系統(tǒng)中的各個(gè)節(jié)點(diǎn)在運(yùn)行過程中的運(yùn)行數(shù)據(jù)的完整性,可以對(duì)主節(jié)點(diǎn)中的第一數(shù)據(jù)庫中存儲(chǔ)的數(shù)據(jù)信息進(jìn)行備份處理,以確保這些數(shù)據(jù)信息的完整。
具體的,本發(fā)明實(shí)時(shí)例中在主節(jié)點(diǎn)中添加了一個(gè)數(shù)據(jù)備份模塊,該數(shù)據(jù)備份模塊可以定時(shí)獲取第一數(shù)據(jù)庫中的第一數(shù)據(jù)信息,并將所獲取的第一數(shù)據(jù)信息發(fā)送至從節(jié)點(diǎn)中的第二數(shù)據(jù)庫進(jìn)行存儲(chǔ)。當(dāng)主節(jié)點(diǎn)發(fā)生故障、宕機(jī)時(shí),系統(tǒng)的管理人員可以從第二數(shù)據(jù)庫中獲取主節(jié)點(diǎn)正常運(yùn)行時(shí)獲取到的數(shù)據(jù)信息,以進(jìn)行后續(xù)工作??梢?,本發(fā)明實(shí)施例進(jìn)一步提高了數(shù)據(jù)信息的完整性。
更進(jìn)一步的,該方法還可以包括:
當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)恢復(fù)正常時(shí),接收數(shù)據(jù)備份模塊發(fā)送的獲取指令;
依據(jù)獲取指令獲取第二數(shù)據(jù)庫中存儲(chǔ)的第二數(shù)據(jù)信息,并將第二數(shù)據(jù)信息發(fā)送至數(shù)據(jù)備份模塊,以便數(shù)據(jù)備份模塊將數(shù)據(jù)信息存儲(chǔ)至第一數(shù)據(jù)庫中。
可以理解的是,當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)恢復(fù)正常時(shí),主節(jié)點(diǎn)中的數(shù)據(jù)備份模塊還可以獲取存儲(chǔ)在從節(jié)點(diǎn)中的第二數(shù)據(jù)庫中的第二數(shù)據(jù)信息,以對(duì)第一數(shù)據(jù)庫中存儲(chǔ)的第一數(shù)據(jù)信息進(jìn)行恢復(fù),以防止在主節(jié)點(diǎn)故障、宕機(jī)時(shí),第一數(shù)據(jù)庫中的第一數(shù)據(jù)信息發(fā)送丟失。
當(dāng)然,從第二數(shù)據(jù)庫中獲取的第二數(shù)據(jù)信息不僅包括第一數(shù)據(jù)信息,還可以包括在第一數(shù)據(jù)監(jiān)控模塊運(yùn)行異常這段時(shí)間,第二數(shù)據(jù)監(jiān)控模塊所搜集的各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)。
具體的,運(yùn)行數(shù)據(jù)可以包括cpu利用率、內(nèi)存利用率、電源溫度及主板溫度中的一種或多種的組合。
當(dāng)然,各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)不僅限于包括以上幾種類型的數(shù)據(jù),還可以包括其他類型的數(shù)據(jù),具體需要獲取哪些運(yùn)行數(shù)據(jù)可以根據(jù)實(shí)際情況而定,本發(fā)明實(shí)施例對(duì)此不做特殊的限定能實(shí)現(xiàn)本發(fā)明實(shí)施例的目的即可。
更具體的,本發(fā)明實(shí)施例中所提供的分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法,還可以包括以下步驟:
當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)恢復(fù)正常時(shí),停止對(duì)各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)的獲取。
需要說明的是,為了減輕從節(jié)點(diǎn)的負(fù)載壓力,在主節(jié)點(diǎn)中的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)正常的情況下,從節(jié)點(diǎn)中的第二數(shù)據(jù)監(jiān)控模塊處于掛起狀態(tài),此時(shí),該第二數(shù)據(jù)監(jiān)控模塊只用來與第一數(shù)據(jù)監(jiān)控模塊進(jìn)行通信,即實(shí)時(shí)監(jiān)測(cè)第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常,第二數(shù)據(jù)監(jiān)控模塊不進(jìn)行各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)搜集和存儲(chǔ)工作。當(dāng)監(jiān)測(cè)到第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)異常時(shí)(也即主節(jié)點(diǎn)出現(xiàn)故障、宕機(jī),第一數(shù)據(jù)監(jiān)控模塊(即m_client進(jìn)程)無法正常運(yùn)行),則第二數(shù)據(jù)監(jiān)控模塊對(duì)自身的狀態(tài)進(jìn)行切換,將自身的狀態(tài)切換為激活狀態(tài),并開始進(jìn)行各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)的獲取,以及將獲取到的運(yùn)行數(shù)據(jù)存儲(chǔ)至該從節(jié)點(diǎn)的第二數(shù)據(jù)庫中,同時(shí)依舊對(duì)第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè),當(dāng)監(jiān)測(cè)到第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)恢復(fù)正常后,即主節(jié)點(diǎn)中的第一數(shù)據(jù)監(jiān)控模塊開始正常進(jìn)行各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)的搜集和存儲(chǔ)時(shí),第二數(shù)據(jù)監(jiān)控模塊自動(dòng)將自身的狀態(tài)切換為掛起狀態(tài),停止對(duì)各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù)的獲取。
當(dāng)然,也可以使從節(jié)點(diǎn)中的第二數(shù)據(jù)監(jiān)控模塊一直處于激活狀態(tài),實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù),只是這種情況會(huì)增加從節(jié)點(diǎn)的負(fù)載壓力,而本發(fā)明實(shí)施例所提供的分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法可以在一定程度上減少從節(jié)點(diǎn)的負(fù)載壓力。
可選的,實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常的過程具體為:
通過心跳連接的方式實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常。
可以理解的是,從節(jié)點(diǎn)中的第二數(shù)據(jù)監(jiān)控模塊與主節(jié)點(diǎn)中的第一數(shù)據(jù)監(jiān)控模塊之間可以建立心跳連接,使第二數(shù)據(jù)監(jiān)控模塊可以通過心跳連接實(shí)時(shí)監(jiān)測(cè)第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài),以提高監(jiān)測(cè)精確度。
例如,第二數(shù)據(jù)監(jiān)控模塊可以實(shí)時(shí)向第一數(shù)據(jù)監(jiān)控模塊發(fā)送數(shù)據(jù)包,當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊在正常運(yùn)行時(shí),第二數(shù)據(jù)監(jiān)控模塊可以接收到第一數(shù)據(jù)監(jiān)控模塊返回的反饋信息,如果第二數(shù)據(jù)監(jiān)控模塊在想第一數(shù)據(jù)監(jiān)控模塊發(fā)送數(shù)據(jù)包后沒有接收到第一數(shù)據(jù)監(jiān)控模塊返回的反饋信息,并經(jīng)過多次發(fā)送數(shù)據(jù)包后沒有接到到第一數(shù)據(jù)監(jiān)控模塊返回的反饋信息,則說明第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)出現(xiàn)異常。
當(dāng)然,本發(fā)明實(shí)施例不僅限于采用上述方法對(duì)第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)進(jìn)行實(shí)時(shí)監(jiān)測(cè),也可以通過其他的方式來實(shí)時(shí)監(jiān)測(cè)第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài),具體采用哪種方法,本發(fā)明實(shí)施例對(duì)此不做特殊的限定,能實(shí)現(xiàn)本發(fā)明實(shí)施例的目的即可。
另外,本發(fā)明實(shí)施例在使用過程中配置方便,資源消耗少,只需要在從節(jié)點(diǎn)中添加第二數(shù)據(jù)監(jiān)控模塊(即m_client進(jìn)程),在主節(jié)點(diǎn)上添加數(shù)據(jù)備份模塊(即d_backup進(jìn)程)即可,并且這兩種進(jìn)程在運(yùn)行時(shí)所消耗的資源較少。
相應(yīng)的本發(fā)明實(shí)施例還公開了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控裝置,具體請(qǐng)參照?qǐng)D2,圖2為本發(fā)明實(shí)施例提供的一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控裝置的結(jié)構(gòu)示意圖。在上述實(shí)施例的基礎(chǔ)上:
該裝置包括:
第二數(shù)據(jù)監(jiān)控模塊1,用于實(shí)時(shí)監(jiān)測(cè)主節(jié)點(diǎn)上的第一數(shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)是否正常,并當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)異常時(shí),實(shí)時(shí)獲取各個(gè)節(jié)點(diǎn)的運(yùn)行數(shù)據(jù);
存儲(chǔ)模塊2,用于將運(yùn)行數(shù)據(jù)儲(chǔ)存至第二數(shù)據(jù)庫中。
需要說明的是,本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控裝置,當(dāng)主節(jié)點(diǎn)的第一數(shù)據(jù)監(jiān)控模塊出現(xiàn)異常時(shí),可以使管理人員通過對(duì)第二數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行監(jiān)控和查看,實(shí)現(xiàn)對(duì)分布式集群系統(tǒng)的運(yùn)行數(shù)據(jù)的實(shí)時(shí)監(jiān)控。本發(fā)明實(shí)施例在使用的過程中,在一定程度上提高了系統(tǒng)的穩(wěn)定性和可靠性。
另外,對(duì)于本發(fā)明實(shí)施例中涉及到的分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法的具體介紹,請(qǐng)參照上述方法實(shí)施例,本申請(qǐng)?jiān)诖瞬辉儋樖觥?/p>
在上述實(shí)施例的基礎(chǔ)上,請(qǐng)參照?qǐng)D3,圖3為本發(fā)明實(shí)施例提供的另一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控裝置的結(jié)構(gòu)示意圖。
可選的,該裝置還可以包括:
接收模塊3,定時(shí)接收主節(jié)點(diǎn)上的數(shù)據(jù)備份模塊發(fā)送的第一數(shù)據(jù)信息,并發(fā)送第一數(shù)據(jù)信息發(fā)送;
存儲(chǔ)模塊2,還用于將數(shù)據(jù)信息存儲(chǔ)至第二數(shù)據(jù)庫中;第一數(shù)據(jù)信息為數(shù)據(jù)備份模塊從主節(jié)點(diǎn)上的第一數(shù)據(jù)庫中獲取的;數(shù)據(jù)備份模塊為預(yù)先添加至主節(jié)點(diǎn)中的。
可選的,裝置還包括發(fā)送模塊;
接收模塊3,還用于當(dāng)?shù)谝粩?shù)據(jù)監(jiān)控模塊的運(yùn)行狀態(tài)恢復(fù)正常時(shí),接收數(shù)據(jù)備份模塊發(fā)送的獲取指令,并依據(jù)獲取指令獲取第二數(shù)據(jù)庫中存儲(chǔ)的第二數(shù)據(jù)信息;
發(fā)送模塊4,用于將第二數(shù)據(jù)信息發(fā)送至數(shù)據(jù)備份模塊,以便數(shù)據(jù)備份模塊將數(shù)據(jù)信息存儲(chǔ)至第一數(shù)據(jù)庫中。
需要說明的是,本發(fā)明實(shí)施例在一定程度上提高了數(shù)據(jù)信息的完整性。
在上述實(shí)施例的基礎(chǔ)上,本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控系統(tǒng),包括如上述的分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控裝置。
需要說明的是,本發(fā)明實(shí)施例提供了一種分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控系統(tǒng),當(dāng)主節(jié)點(diǎn)的第一數(shù)據(jù)監(jiān)控模塊出現(xiàn)異常時(shí),可以使管理人員通過對(duì)第二數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行監(jiān)控和查看,實(shí)現(xiàn)對(duì)分布式集群系統(tǒng)的運(yùn)行數(shù)據(jù)的實(shí)時(shí)監(jiān)控。本發(fā)明實(shí)施例在使用的過程中,在一定程度上提高了系統(tǒng)的穩(wěn)定性和可靠性。
另外,對(duì)于本發(fā)明實(shí)施例中涉及到的分布式集群系統(tǒng)的數(shù)據(jù)監(jiān)控方法的具體介紹,請(qǐng)參照上述方法實(shí)施例,本申請(qǐng)?jiān)诖瞬辉儋樖觥?/p>
還需要說明的是,在本說明書中,諸如第一和第二等之類的關(guān)系術(shù)語僅僅用來將一個(gè)實(shí)體或者操作與另一個(gè)實(shí)體或操作區(qū)分開來,而不一定要求或者暗示這些實(shí)體或操作之間存在任何這種實(shí)際的關(guān)系或者順序。而且,術(shù)語“包括”、“包含”或者其任何其他變體意在涵蓋非排他性的包含,從而使得包括一系列要素的過程、方法、物品或者設(shè)備不僅包括那些要素,而且還包括沒有明確列出的其他要素,或者是還包括為這種過程、方法、物品或者設(shè)備所固有的要素。在沒有更多限制的情況下,由語句“包括一個(gè)……”限定的要素,并不排除在包括所述要素的過程、方法、物品或者設(shè)備中還存在另外的相同要素。
對(duì)所公開的實(shí)施例的上述說明,使本領(lǐng)域?qū)I(yè)技術(shù)人員能夠?qū)崿F(xiàn)或使用本發(fā)明。對(duì)這些實(shí)施例的多種修改對(duì)本領(lǐng)域的專業(yè)技術(shù)人員來說將是顯而易見的,本文中所定義的一般原理可以在不脫離本發(fā)明的精神或范圍的情況下,在其他實(shí)施例中實(shí)現(xiàn)。因此,本發(fā)明將不會(huì)被限制于本文所示的這些實(shí)施例,而是要符合與本文所公開的原理和新穎特點(diǎn)相一致的最寬的范圍。