一種采集主機(jī)資源的方法、裝置和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明屬于計(jì)算機(jī)通信領(lǐng)域,尤其涉及一種采集主機(jī)資源的方法、裝置和系統(tǒng)。
【背景技術(shù)】
[0002]隨著互聯(lián)網(wǎng)(Internet)行業(yè)的發(fā)展,很多信息科技(Informat1n Technology,IT)企業(yè)都需要運(yùn)維、管理大量的服務(wù)器主機(jī),運(yùn)維人員很多時(shí)候需要采集監(jiān)控各個(gè)服務(wù)器的內(nèi)存、CPU、進(jìn)程數(shù)等等各種和主機(jī)有關(guān)的數(shù)據(jù)即主機(jī)資源的使用情況,公司管理人員也可能想要或需要了解公司的計(jì)算機(jī)資源使用分布情況。
[0003]就硬件而言,IT企業(yè)的服務(wù)器主機(jī)本質(zhì)上還是一種性能強(qiáng)大的計(jì)算機(jī),其操作系統(tǒng)通常存在著不同的類型,例如¥;[11(10¥8、1;[111^、&11和8111108等等,它們提供的采集同一資源的接口有些是不一樣的,而需要采集監(jiān)控的主機(jī)資源種類通常會(huì)隨需求不同而變化?,F(xiàn)有的采集主機(jī)資源的方法是直接修改客戶端的采集程序來應(yīng)對這種變化,即,主機(jī)資源種類會(huì)隨需求不同變化一次,則開發(fā)人員針對這種變化將客戶端的采集程序修改一次,然后,重新編譯打包發(fā)布客戶端的采集程序,而運(yùn)維人員重新在所有機(jī)器上安裝這些采集重新發(fā)布的采集程序。
[0004]上述現(xiàn)有的采集主機(jī)資源的方法,其缺陷在于每次采集需求變化都是通過修改客戶端的采集程序來實(shí)現(xiàn),每次修改重新發(fā)布后可能需要重新部署幾千臺、甚至幾萬臺的服務(wù)器主機(jī)上的客戶端采集程序,這會(huì)給運(yùn)維人員帶來極大的不便,使得運(yùn)維成本急劇飆升。
【發(fā)明內(nèi)容】
[0005]本發(fā)明的目的在于提供一種采集主機(jī)資源的方法、裝置和系統(tǒng),以降低服務(wù)器的運(yùn)維成本。
[0006]本發(fā)明第一方面提供一種采集主機(jī)資源的方法,所述方法包括:
[0007]采集客戶端采用腳本語言封裝主機(jī)資源采集命令并提供采集接口;
[0008]所述采集客戶端調(diào)用所述采集接口,根據(jù)所述封裝的主機(jī)資源采集命令采集與主機(jī)資源相關(guān)的數(shù)據(jù);
[0009]所述將所述采集的數(shù)據(jù)傳送至中間節(jié)點(diǎn);
[0010]所述中間節(jié)點(diǎn)將所述數(shù)據(jù)傳送至分析入庫節(jié)點(diǎn);
[0011 ]所述分析庫節(jié)點(diǎn)對所述數(shù)據(jù)進(jìn)行分析后保存至數(shù)據(jù)庫。
[0012]本發(fā)明第二方面提供一種采集主機(jī)資源的系統(tǒng),所述系統(tǒng)包括采集客戶端、中間節(jié)點(diǎn)和分析入庫節(jié)點(diǎn),所述采集客戶端包括封裝模塊、調(diào)用模塊和傳送模塊;
[0013]所述封裝模塊,用于采用腳本語言封裝主機(jī)資源采集命令并提供采集接口;
[0014]所述調(diào)用模塊,用于調(diào)用所述采集接口,根據(jù)所述封裝的主機(jī)資源采集命令采集與主機(jī)資源相關(guān)的數(shù)據(jù);
[0015]所述傳送模塊,將所述采集的數(shù)據(jù)傳送至所述中間節(jié)點(diǎn);
[0016]所述中間節(jié)點(diǎn),用于接收所述傳送模塊傳送的數(shù)據(jù)和將所述數(shù)據(jù)傳送至所述分析入庫節(jié)點(diǎn);
[0017]所述分析入庫節(jié)點(diǎn),用于對所述數(shù)據(jù)進(jìn)行分析后保存至數(shù)據(jù)庫。
[0018]從上述本發(fā)明技術(shù)方案可知,主機(jī)資源采集命令和采集接口由腳本語言封裝成腳本文件,在采集主機(jī)資源時(shí),高級語言編寫的程序只需要調(diào)用這些采集接口。當(dāng)采集需求發(fā)生變化時(shí),只需要開發(fā)人員對這些采用腳本語言所封裝成的腳本文件進(jìn)行簡單修改而無需修改采集客戶端的代碼,然后由運(yùn)維人員將這些修改后的腳本文件傳輸至所有已安裝舊有采集客戶端的終端上即可實(shí)現(xiàn)主機(jī)資源的采集。在上述過程中,開發(fā)人員只是對腳本文件進(jìn)行了簡單修改,而沒有修改采集客戶端的代碼且沒有重新編譯打包發(fā)布采集客戶端,運(yùn)維人員也無需重新安裝所有機(jī)器上的采集客戶端,由于腳本語言相對高級語言編寫的代碼而言要簡單,因此,本發(fā)明提供的技術(shù)方案顯著減小了開發(fā)人員和運(yùn)維人員的工作量,從而大大降低了開發(fā)和運(yùn)維的成本。
【附圖說明】
[0019]圖1是本發(fā)明實(shí)施例一提供的采集主機(jī)資源的方法的實(shí)現(xiàn)流程示意圖;
[0020]圖2是本發(fā)明實(shí)施例二提供的采集主機(jī)資源的裝置的結(jié)構(gòu)示意圖;
[0021]圖3是本發(fā)明實(shí)施例三提供的采集主機(jī)資源的系統(tǒng)的結(jié)構(gòu)示意圖;
[0022]圖4是本發(fā)明實(shí)施例四提供的采集主機(jī)資源的系統(tǒng)的結(jié)構(gòu)示意圖;
[0023]圖5是本發(fā)明實(shí)施例五提供的采集主機(jī)資源的系統(tǒng)的結(jié)構(gòu)示意圖;
[0024]圖6是本發(fā)明實(shí)施例六提供的采集主機(jī)資源的系統(tǒng)的分層結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0025]為了使本發(fā)明的目的、技術(shù)方案及有益效果更加清楚明白,以下結(jié)合附圖及實(shí)施例,對本發(fā)明進(jìn)行進(jìn)一步詳細(xì)說明。應(yīng)當(dāng)理解,此處所描述的具體實(shí)施例僅僅用以解釋本發(fā)明,并不用于限定本發(fā)明。
[0026]本發(fā)明實(shí)施例提供一種采集主機(jī)資源的方法,所述方法包括:采集客戶端采用腳本語言封裝主機(jī)資源采集命令并提供采集接口 ;所述采集客戶端調(diào)用所述采集接口,根據(jù)所述封裝的主機(jī)資源采集命令采集與主機(jī)資源相關(guān)的數(shù)據(jù);所述采集客戶端將所述采集的數(shù)據(jù)傳送至中間節(jié)點(diǎn);所述中間節(jié)點(diǎn)將所述數(shù)據(jù)傳送至分析入庫節(jié)點(diǎn);所述分析庫節(jié)點(diǎn)對所述數(shù)據(jù)進(jìn)行分析后保存至數(shù)據(jù)庫。本發(fā)明實(shí)施例還提供相應(yīng)的采集主機(jī)資源的系統(tǒng)。以下分別進(jìn)行詳細(xì)說明。
[0027]請參閱附圖1,是本發(fā)明實(shí)施例一提供的采集主機(jī)資源的方法的實(shí)現(xiàn)流程示意圖,主要包括以下步驟SlOl至步驟S105:
[0028]SlOl,采集客戶端采用腳本語言封裝主機(jī)資源采集命令并提供采集接口。
[0029]在本發(fā)明實(shí)施例中,實(shí)現(xiàn)對主機(jī)資源采集的采集程序即采集客戶端由高級程序語言,例如C、C++或Java等編寫的代碼和腳本語言組成,其中,腳本語言將主機(jī)資源采集命令和采集接口封裝為腳本文件。具體地,可按照約定好的數(shù)據(jù)輸入輸出規(guī)范進(jìn)行主機(jī)資源采集命令的底層封裝,所封裝的采集接口提供給高級語言編寫的代碼調(diào)用。
[0030]由于既具有一些高級語言強(qiáng)大功能,又具有其他腳本語言的簡單、方便,因此,作為本發(fā)明一個(gè)實(shí)施例,腳本語言可以是Perl腳本語言。作為本發(fā)明另一實(shí)施例,封裝主機(jī)資源采集命令并提供采集接口的腳本語言也可以是Shell腳本語言。當(dāng)然,其他已有的腳本語言原則上也可以用于主機(jī)資源采集命令和采集接口的封裝。
[0031]S102,采集客戶端調(diào)用采集接口,根據(jù)主機(jī)資源采集命令采集與主機(jī)資源相關(guān)的數(shù)據(jù)。
[0032]為了能夠做到當(dāng)采集內(nèi)容的需求變化時(shí),可以盡量少地去修改采集客戶端的代碼,一個(gè)比較好的好方就是將變化的部分獨(dú)立出來。采用腳本語言來封裝主機(jī)資源采集命令和采集接口,然后由采集客戶端來調(diào)用這些采集接口,當(dāng)新增采集內(nèi)容或需要修改舊的采集內(nèi)容時(shí),只是修改腳本、采集任務(wù)和周期等配置信息即可。具體地,在本發(fā)明實(shí)施例中,調(diào)用采集接口,根據(jù)主機(jī)資源采集命令采集與主機(jī)資源相關(guān)的數(shù)據(jù)可以是按照配置信息,例如,采集任務(wù)和周期,調(diào)用相應(yīng)的采集接口采集與主機(jī)資源相關(guān)的數(shù)據(jù)。采集任務(wù)和周期可以由開發(fā)人員預(yù)先配置成文件放置于采集客戶端,由于Web前端通過中間節(jié)點(diǎn)與采集客戶端連接,當(dāng)采集任務(wù)和周期有更新時(shí),也可以將更新的采集任務(wù)和周期等數(shù)據(jù)配置成文件,從Web前端通過中間節(jié)點(diǎn)、由中間節(jié)點(diǎn)將配置文件和主機(jī)資源采集命令傳送至采集客戶端。采集客戶端按照配置的采集任務(wù)和周期調(diào)用相應(yīng)的采集接口采集與主機(jī)資源相關(guān)的數(shù)據(jù)。
[0033]需要說明的是,對采集接口的調(diào)用由C、C++或Java等高級程序語言編寫的代碼來完成。在本發(fā)明實(shí)施例中,C、c++或Java等高級程序語言編寫的代碼負(fù)責(zé)采集客戶端與中間節(jié)點(diǎn)之間通信通道的建立與維護(hù)、維護(hù)采集任務(wù)和周期的執(zhí)行以及接收來自管理控制臺的采集指令等。
[0034]S103,采集客戶端將采集的數(shù)據(jù)傳送至中間節(jié)點(diǎn)。
[0035]S104、中間節(jié)點(diǎn)將數(shù)據(jù)傳送至分析入庫節(jié)點(diǎn)。
[0036]在本發(fā)明實(shí)施例中,所有的采集客戶端可與中間節(jié)點(diǎn)(Hub)建立并維護(hù)一個(gè)TCP長連接,采集客戶端所采集的與主機(jī)資源相關(guān)的數(shù)據(jù)均可通過這個(gè)TCP長連接傳送至中間節(jié)點(diǎn),然后由該中間節(jié)點(diǎn)將采集到的數(shù)據(jù)傳送至分析入庫節(jié)點(diǎn)。
[0037]換言之,中間節(jié)點(diǎn)是一個(gè)中轉(zhuǎn)設(shè)備,具體可以接受Web前端的連接訪問,用戶(包括管理人員和一般用戶)可以通過Web前端來發(fā)送實(shí)時(shí)采集命令,以及更新指定采集客戶端或所有采集客戶端的采集任務(wù)和周期等配置文件、采集腳本(例如,Perl腳本語言編寫的采集腳本)等數(shù)據(jù),中間節(jié)點(diǎn)負(fù)責(zé)將這些配置文件和主機(jī)資源采集命令等數(shù)據(jù)轉(zhuǎn)發(fā)至相應(yīng)的采集客戶端,采集客戶端做出相應(yīng)的響應(yīng),再經(jīng)由中間節(jié)點(diǎn)將響應(yīng)返回給對應(yīng)的Web前端。
[0038]S105、分析庫節(jié)點(diǎn)對采集客戶端所采集的數(shù)據(jù)進(jìn)行分析后保存至數(shù)據(jù)庫。
[0039]分析入庫節(jié)點(diǎn)負(fù)責(zé)分析所采集到的數(shù)據(jù)之間的關(guān)系并且將分析后的數(shù)據(jù)保存至數(shù)據(jù)庫。
[0040]從上述附圖1示例的采集主機(jī)資源的方法可知,主機(jī)資源采集命令和采集接口由腳本語言封裝成腳本文件,在采集主機(jī)資源時(shí),高級語言編寫的程序只需要調(diào)用這些采集接口。當(dāng)采集需求發(fā)生變化時(shí),只需要開發(fā)人員對這些采用腳本語言所封裝成的腳本文件進(jìn)行簡單修改而無需修改采集客戶端的代碼,然后由運(yùn)維人員將這些修改后的腳本文件傳輸至所有已安裝舊有采集客戶端的終端上即可實(shí)現(xiàn)主機(jī)資源的采集。在上述過程中,開發(fā)人員只是對腳本文件進(jìn)行了簡單修改,而沒有修改采