本發(fā)明涉及分布式集群的IT運(yùn)維管理的技術(shù)領(lǐng)域,尤其涉及了一種分布式集群的客戶端監(jiān)視節(jié)點的方法。
背景技術(shù):
目前傳統(tǒng)集群各模塊應(yīng)用狀態(tài)監(jiān)控,是需要當(dāng)前集群的所有節(jié)點都使用同一個模塊拓?fù)渑渲茫朔绞椒秩N,第一種是每個節(jié)點都在自身本地存儲一套靜態(tài)應(yīng)用模塊拓?fù)渑渲眯畔?;另一種是使用動態(tài)存儲配置服務(wù),讀取服務(wù)獲取應(yīng)用節(jié)點拓?fù)湫畔?;第三種是遍歷集群所有節(jié)點來確定某應(yīng)用的狀態(tài)。
而對于相對獨立的分布式集群監(jiān)控系統(tǒng),以上提及的前兩種方式在不同情況下,帶來實際集群監(jiān)視的不確定性。比如靜態(tài)配置的不適應(yīng)某些應(yīng)用的動態(tài)部署,或者動態(tài)存儲配置服務(wù)處于異常等情況導(dǎo)致的集群監(jiān)視的不確定性。第三種,在集群擁有大量節(jié)點時,服務(wù)主動掃描無用節(jié)點,勢必是一種時間的浪費(fèi)。
技術(shù)實現(xiàn)要素:
本發(fā)明所要解決的技術(shù)問題是:目前傳統(tǒng)集群各模塊應(yīng)用狀態(tài)監(jiān)控對于相對獨立的分布式集群監(jiān)控系統(tǒng)并不適用,采用傳統(tǒng)集群各模塊會帶來集群監(jiān)視的不確定性,同時在集群擁有大量節(jié)點時,服務(wù)端會主動掃描無用節(jié)點,造成浪費(fèi)。
為解決上面的技術(shù)問題,本發(fā)明提供了一種分布式集群的客戶端監(jiān)視節(jié)點的方法,該方法包括如下步驟:
S1,在分布式集群的所有節(jié)點處均部署具有監(jiān)視模塊的客戶端;
S2,開啟客戶端內(nèi)部的監(jiān)視模塊的守護(hù)進(jìn)程,客戶端讀取所有的監(jiān)視模塊配置,客戶端根據(jù)這些配置加載所有監(jiān)視模塊的功能;
S3,通過客戶端內(nèi)的監(jiān)視模塊對當(dāng)前節(jié)點存在的監(jiān)視點進(jìn)行數(shù)據(jù)掃描收集;
S4,客戶端將掃描收集的數(shù)據(jù)自動推送到服務(wù)端。
進(jìn)一步地,所述步驟S2中還包括:客戶端掃描當(dāng)前節(jié)點信息,并將掃描的信息稽核,在一定時間段內(nèi)推送給服務(wù)端。
進(jìn)一步地,所述S3中包括:根據(jù)掃描收集的數(shù)據(jù)信息,客戶端進(jìn)行監(jiān)視觸發(fā)級別的調(diào)整,或更新當(dāng)前監(jiān)視配置信息。
上述進(jìn)一步的有益效果:客戶端本身均具有已知監(jiān)視點的監(jiān)視功能,再啟動后,自動掃描所有的監(jiān)視點,并根據(jù)當(dāng)前節(jié)點信息,自適應(yīng)調(diào)整各監(jiān)視點的采集頻率,減少了集群各節(jié)點的針對性功能模塊的部署及監(jiān)視調(diào)整
進(jìn)一步地,監(jiān)視觸發(fā)級別按照降頻依次包括:第一監(jiān)視觸發(fā)級別、第二監(jiān)視觸發(fā)級別、第三監(jiān)視觸發(fā)級別、第四監(jiān)視觸發(fā)級別。
上述進(jìn)一步的有益效果:一個介于高頻級別與低頻級別的中間態(tài),當(dāng)一個處于高頻級別的應(yīng)用監(jiān)視點所監(jiān)視的信息在一定高頻掃描次數(shù)均捕獲不到時,則將此監(jiān)視點級別置為中頻級別,若在中頻級別掃描期間,監(jiān)視點捕獲恢復(fù)后,則恢復(fù)高頻級別,若在中頻級別掃描期間,一直沒有監(jiān)視信息,則置為低頻級別。
進(jìn)一步地,所述S1中部署客戶端的節(jié)點具有如下信息:IP、用戶、口令、安裝目錄、端口。
進(jìn)一步地,S1中還包括:所有節(jié)點處均部署與客戶端對應(yīng)的部分服務(wù)端,所述的部署服務(wù)端的節(jié)點具有如下信息:IP、用戶、口令、安裝目錄、端口。
進(jìn)一步地,該方法還包括:S5中,查看監(jiān)視信息,查看監(jiān)視信息方式包括:登陸到服務(wù)端,使用網(wǎng)絡(luò)監(jiān)視工具監(jiān)視當(dāng)前服務(wù)端節(jié)點的端口,從而查看監(jiān)視信息。
進(jìn)一步地,查看監(jiān)視信息方式還包括:S5,若是集成可視化界面,打開監(jiān)視頁面,查看監(jiān)視信息。
進(jìn)一步地,所述客戶端配置有監(jiān)視模塊名稱和與監(jiān)視模塊有關(guān)的配置信息兩部分。
進(jìn)一步地,所述S4中客戶端通過UDP協(xié)議將掃描收集的數(shù)據(jù)推送到服務(wù)端。
本法發(fā)明的有益效果:客戶端采集所在節(jié)點主機(jī)的監(jiān)視數(shù)據(jù),客戶端將監(jiān)視的數(shù)據(jù)通過UDP協(xié)議推送到服務(wù)端,從而服務(wù)端不用主動掃描集群各節(jié)點的信息,所以降低服務(wù)端對集群節(jié)點的遍歷無用掃描,節(jié)省了時間成本。
附圖說明
圖1為本發(fā)明的一種分布式集群的客戶端監(jiān)視節(jié)點的方法流程圖。
具體實施方式
以下結(jié)合附圖對本發(fā)明的原理和特征進(jìn)行描述,所舉實例只用于解釋本發(fā)明,并非用于限定本發(fā)明的范圍。
如附圖1所示,一種分布式集群的客戶端監(jiān)視節(jié)點的方法,該方法包括如下步驟:
S1,在分布式集群的所有節(jié)點處都部署具有監(jiān)視模塊的客戶端;在客戶端上配置有監(jiān)視模塊名稱和與監(jiān)視模塊有關(guān)的配置信息兩部分;其中,部署客戶端的節(jié)點信息包括:IP、用戶、口令、安裝目錄、端口;與客戶端對應(yīng)的部分部署服務(wù)端,其服務(wù)端的節(jié)點信息包括:IP、用戶、口令、安裝目錄、端口;
S2,客戶端開啟內(nèi)部的監(jiān)視模塊的守護(hù)進(jìn)程,客戶端讀取所有的監(jiān)視模塊配置,客戶端根據(jù)這些配置加載所有監(jiān)視模塊的功能;其中,客戶端掃描當(dāng)前節(jié)點主機(jī)數(shù)據(jù),并將掃描的數(shù)據(jù)稽核,在一定時間段內(nèi)(比如在一分鐘內(nèi)的前20秒內(nèi)的數(shù)據(jù)信息)推送給服務(wù)端;一個例子場景:
假如:一個集群有A、B、C三種服務(wù),這個集群有三臺主機(jī);
第一臺主機(jī),有A服務(wù);
第二臺主機(jī),有B服務(wù);
第三臺主機(jī),有A、B、C服務(wù);
對于B服務(wù),其中有用節(jié)點是第二、三臺,第一臺就屬于無用節(jié)點。若采用服務(wù)端遠(yuǎn)程掃描所有節(jié)點,則就掃了第一臺,這樣既造成了服務(wù)端掃描浪費(fèi)的原因。
而各節(jié)點安置有客戶端,則客戶端采集監(jiān)視信息,并將信息稽核推送給服務(wù)端,則服務(wù)端僅做的是搜索某個時間段(比如在第一分鐘內(nèi)10秒的時間段)的B服務(wù)監(jiān)視信息,而監(jiān)視信息含帶節(jié)點信息,所以,服務(wù)端就知道某時間段內(nèi),B服務(wù)在第二、三臺主機(jī)的運(yùn)行情況。
S3,客戶端內(nèi)的監(jiān)視模塊會對當(dāng)前節(jié)點存在的監(jiān)視點進(jìn)行數(shù)據(jù)掃描收集;根據(jù)掃描收集的數(shù)據(jù)信息,客戶端進(jìn)行監(jiān)視觸發(fā)級別的調(diào)整,或更新當(dāng)前監(jiān)視配置信息;監(jiān)視觸發(fā)級別按照降頻依次包括:第一監(jiān)視觸發(fā)級別、第二監(jiān)視觸發(fā)級別、第三監(jiān)視觸發(fā)級別、第四監(jiān)視觸發(fā)級別。其中,第一監(jiān)視觸發(fā)級別(高頻級別)包含必要的常態(tài)監(jiān)視點、已捕獲的應(yīng)用監(jiān)視點;第二監(jiān)視觸發(fā)級別(中頻級別):一個介于高頻級別與低頻級別的中間態(tài)。當(dāng)一個處于高頻級別的應(yīng)用監(jiān)視點所監(jiān)視的信息在一定高頻掃描次數(shù)均捕獲不到時,則將此監(jiān)視點級別置為中頻級別,若在中頻級別掃描期間,監(jiān)視點捕獲恢復(fù)后,則恢復(fù)高頻級別,若在中頻級別掃描期間,一直沒有監(jiān)視信息,則置為低頻級別;第三監(jiān)視觸發(fā)級別(低頻級別):未捕獲的應(yīng)用監(jiān)視點;第四監(jiān)視觸發(fā)級別(沉睡級別):不進(jìn)行主動掃描的應(yīng)用監(jiān)視點;監(jiān)視點具有自我修復(fù)功能,當(dāng)初次啟動、重啟、或監(jiān)視功能配置異常等情況,會生成基礎(chǔ)監(jiān)視模塊列表
S4,客戶端將掃描收集的數(shù)據(jù)通過UDP協(xié)議自動推送到服務(wù)端。
在執(zhí)行完上述4個步驟后,會進(jìn)行查看監(jiān)視信息,其中查看監(jiān)視信息方式包括:1,登陸到服務(wù)端,使用網(wǎng)絡(luò)監(jiān)視工具監(jiān)視當(dāng)前服務(wù)端節(jié)點的端口查看監(jiān)視信息;2,查看監(jiān)視信息方式還包括:若是集成可視化界面,打開監(jiān)視頁面,配置定制化監(jiān)視信息,查看監(jiān)視信息。
守護(hù)進(jìn)程是程序運(yùn)行的一種方式,永遠(yuǎn)都在后臺運(yùn)行。
不刻意的手動停止或關(guān)閉的話,它都會一直運(yùn)行。
只要主機(jī)在運(yùn)行著,則這個程序就一直在運(yùn)行。
守護(hù)進(jìn)程(Daemon)是一種運(yùn)行在后臺的一種特殊的進(jìn)程,它獨立于控制終端并且周期性的執(zhí)行某種任務(wù)或等待處理某些發(fā)生的事件。由于在linux中,每個系統(tǒng)與用戶進(jìn)行交流的界面成為終端,每一個從此終端開始運(yùn)行的進(jìn)程都會依附于這個終端,這個終端被稱為這些進(jìn)程的控制終端,當(dāng)控制終端被關(guān)閉的時候,相應(yīng)的進(jìn)程都會自動關(guān)閉。但是守護(hù)進(jìn)程卻能突破這種限制,它脫離于終端并且在后臺運(yùn)行,并且它脫離終端的目的是為了避免進(jìn)程在運(yùn)行的過程中的信息在任何終端中顯示并且進(jìn)程也不會被任何終端所產(chǎn)生的終端信息所打斷。
集群的各節(jié)點(主機(jī))信息收集
兩種方式,1.從監(jiān)視服務(wù)端遠(yuǎn)程掃描所有節(jié)點的各監(jiān)視信息,2.各節(jié)點采集收集信息,發(fā)送給監(jiān)視服務(wù)端。
本發(fā)明采用第二種,就避免了服務(wù)端去掃描各節(jié)點,也就沒有了“主動掃描無用節(jié)點”。
對于“不確定性”:
因為分布式集群的緣故,有一類服務(wù)比較特殊,僅在一個集群中運(yùn)行一個,且是搶占式的運(yùn)行。
這里假設(shè)C服務(wù)屬于這種比較特殊的服務(wù),那么,一開始C服務(wù)在第三臺運(yùn)行,運(yùn)行一段時間后,第三臺異?;蛘咂渌闆r,第三臺的C服務(wù)停止運(yùn)行了,那么這個服務(wù)在集群會嘗試重啟C服務(wù),這個時候,有可能第二臺搶占運(yùn)行了C服務(wù),這個C服務(wù)在哪臺運(yùn)行的情況,就是我說的不確定性。
部署在所有節(jié)點的客戶端,擁有監(jiān)視ABC等的監(jiān)視插件,所以第二臺也能發(fā)現(xiàn)C服務(wù),并能收集其監(jiān)視信息。
對于查看方式的原因:一,因為數(shù)據(jù)都是從客戶端主動發(fā)送到服務(wù)端的,采用這種方式,避免或者減少服務(wù)端主動去訪問客戶端節(jié)點;二,收集的數(shù)據(jù),客戶端中有一個配置,即本地數(shù)據(jù)存儲的配置打開的話,則會在當(dāng)前節(jié)點主機(jī)進(jìn)行數(shù)據(jù)存儲,不打開此配置的話,客戶端的當(dāng)前節(jié)點應(yīng)用主機(jī)不存儲所收集的數(shù)據(jù),而所有的數(shù)據(jù)都會在采集后,暫存內(nèi)存,然后通過客戶端開啟的守護(hù)進(jìn)程,定時發(fā)送到服務(wù)端,將數(shù)據(jù)存儲的決定權(quán)交付給服務(wù)端(服務(wù)端可以將數(shù)據(jù)存儲到分布式數(shù)據(jù)庫里或者其他的存儲器,若是落服務(wù)端上,則是服務(wù)端的就具備選擇的自由權(quán)利)。
在本說明書中,對上述術(shù)語的示意性表述不必須針對的是相同的實施例或示例。而且,描述的具體特征、結(jié)構(gòu)、材料或者特點可以在任一個或多個實施例或示例中以合適的方式結(jié)合。此外,在不相互矛盾的情況下,本領(lǐng)域的技術(shù)人員可以將本說明書中描述的不同實施例或示例以及不同實施例或示例的特征進(jìn)行結(jié)合和組合。
以上所述僅為本發(fā)明的較佳實施例,并不用以限制本發(fā)明,凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進(jìn)等,均應(yīng)包含在本發(fā)明的保護(hù)范圍之內(nèi)。