基于snmp的服務(wù)器監(jiān)控方法和裝置的制造方法
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及服務(wù)器領(lǐng)域,具體來說,涉及一種基于SNMP的服務(wù)器監(jiān)控方法和裝置。
【背景技術(shù)】
[0002]目前,在對服務(wù)器的監(jiān)控上,主要有采用私有協(xié)議和簡單網(wǎng)絡(luò)管理協(xié)議(SNMP)協(xié)議的兩種方式,而采用SNMP協(xié)議來監(jiān)控服務(wù)器的軟硬件資源在業(yè)界則更為普遍。
[0003]其中,現(xiàn)有的利用SNMP協(xié)議來實現(xiàn)服務(wù)器監(jiān)控的方案中主要是利用net-snmp這個實現(xiàn)了 SNMP的軟件來對服務(wù)器進(jìn)行監(jiān)控,而根據(jù)監(jiān)控需求的不同,可對net-snmp進(jìn)行功能擴展而無需重新開發(fā)實現(xiàn)SNMP協(xié)議。
[0004]在現(xiàn)有技術(shù)中,在Iinux系統(tǒng)上進(jìn)行服務(wù)器系統(tǒng)的監(jiān)測主要有以下兩種方式:一種方式為通過SNMP協(xié)議結(jié)合數(shù)據(jù)采集軟件來實現(xiàn);另一種方式為通過編寫腳本調(diào)用系統(tǒng)狀態(tài)監(jiān)測的命令,并結(jié)合數(shù)據(jù)采集軟件來實現(xiàn)。
[0005]在具體應(yīng)用中可通過配置snmpd.conf (net-snmp的代理配置文件,用于配置代理和管理端通信時的參數(shù))來調(diào)用外部腳本獲取服務(wù)器的信息,但是這種調(diào)用腳本來獲取服務(wù)器的信息的方式存在著每個腳本只能處理一個對象標(biāo)識符(OID)的問題,那么為了解決該問題,該方案可采用一個變量型的指標(biāo)來實現(xiàn)多個OID的處理,但是變量型的指標(biāo)又不利于擴展;而利于擴展的指標(biāo)則需要采用數(shù)據(jù)表類型,但是采用數(shù)據(jù)表類型的指標(biāo)如果通過配置snmpd.conf來處理每個指標(biāo)又會很繁瑣和復(fù)雜。
[0006]針對相關(guān)技術(shù)中無法實現(xiàn)對多個OID進(jìn)行處理,即無法通過調(diào)用一次腳本來監(jiān)控服務(wù)器的多個指標(biāo)的問題,目前尚未提出有效的解決方案。
【發(fā)明內(nèi)容】
[0007]針對相關(guān)技術(shù)中的上述問題,本發(fā)明提出一種基于SNMP的服務(wù)器監(jiān)控方法和裝置,能夠通過訪問數(shù)據(jù)表的方式獲得多個OID的監(jiān)控數(shù)據(jù),又不會增加訪問OID的監(jiān)控數(shù)據(jù)時所帶來的繁瑣性和復(fù)雜性問題,從而提高snmp代理性能。
[0008]本發(fā)明的技術(shù)方案是這樣實現(xiàn)的:
[0009]根據(jù)本發(fā)明的一個方面,提供了一種基于SNMP的服務(wù)器監(jiān)控方法。
[0010]該服務(wù)器監(jiān)控方法包括:
[0011]根據(jù)服務(wù)器的管理信息庫(MIB)文件預(yù)先生成對應(yīng)服務(wù)器的不同監(jiān)控對象的多個數(shù)據(jù)表,其中,每個數(shù)據(jù)表中包括所對應(yīng)的監(jiān)控對象的OID和監(jiān)控數(shù)據(jù);
[0012]根據(jù)接收的需要訪問的多個目標(biāo)OID在預(yù)先生成的多個數(shù)據(jù)表中確定每個目標(biāo)OID所對應(yīng)的目標(biāo)數(shù)據(jù)表;
[0013]在存在多個目標(biāo)OID對應(yīng)相同的目標(biāo)數(shù)據(jù)表的情況下,在目標(biāo)數(shù)據(jù)表中分別讀取多個目標(biāo)OID所分別對應(yīng)的監(jiān)控數(shù)據(jù)。
[0014]其中,在根據(jù)接收的需要訪問的多個目標(biāo)OID在預(yù)先生成的多個數(shù)據(jù)表中確定每個目標(biāo)OID所對應(yīng)的目標(biāo)數(shù)據(jù)表時,可根據(jù)接收的需要訪問的目標(biāo)OID確定目標(biāo)監(jiān)控對象;然后,再在預(yù)先生成的多個數(shù)據(jù)表中確定目標(biāo)監(jiān)控對象所對應(yīng)的目標(biāo)數(shù)據(jù)表。
[0015]可選的,該服務(wù)器監(jiān)控方法進(jìn)一步包括:
[0016]在目標(biāo)數(shù)據(jù)表在預(yù)定時間內(nèi)被首次讀取監(jiān)控數(shù)據(jù)的情況下,可獲取目標(biāo)服務(wù)器的動態(tài)指標(biāo)的狀態(tài)信息;
[0017]并根據(jù)服務(wù)器的動態(tài)指標(biāo)的狀態(tài)信息對目標(biāo)數(shù)據(jù)表中的動態(tài)指標(biāo)的監(jiān)控數(shù)據(jù)進(jìn)行更新。
[0018]另外,在目標(biāo)數(shù)據(jù)表中讀取每個目標(biāo)OID所對應(yīng)的監(jiān)控數(shù)據(jù)之前,該服務(wù)器監(jiān)控方法進(jìn)一步包括:
[0019]對每個目標(biāo)OID所對應(yīng)的指標(biāo)的類型進(jìn)行判斷,在判斷該指標(biāo)為服務(wù)器的動態(tài)指標(biāo)的情況下,實時獲取服務(wù)器當(dāng)前該動態(tài)指標(biāo)的狀態(tài)信息;
[0020]基于當(dāng)前該動態(tài)指標(biāo)的狀態(tài)信息對目標(biāo)數(shù)據(jù)表中的該動態(tài)指標(biāo)的監(jiān)控數(shù)據(jù)進(jìn)行實時更新。
[0021]此外,在目標(biāo)數(shù)據(jù)表中讀取目標(biāo)OID所對應(yīng)的監(jiān)控數(shù)據(jù)時,可通過遍歷目標(biāo)數(shù)據(jù)表,來確定目標(biāo)OID所對應(yīng)的子監(jiān)控對象在目標(biāo)數(shù)據(jù)表中所對應(yīng)的數(shù)據(jù)行;再根據(jù)目標(biāo)OID所對應(yīng)的目標(biāo)數(shù)據(jù)表的列號,在數(shù)據(jù)行中確定該目標(biāo)OID所對應(yīng)的監(jiān)控數(shù)據(jù)。
[0022]可選的,該服務(wù)器監(jiān)控方法進(jìn)一步包括:
[0023]根據(jù)服務(wù)器的MIB文件預(yù)先生成服務(wù)器的動態(tài)庫文件;
[0024]其中,動態(tài)庫文件中包括對應(yīng)服務(wù)器的不同監(jiān)控對象的多個數(shù)據(jù)表。
[0025]根據(jù)本發(fā)明的另一方面,提供了一種基于SNMP的服務(wù)器監(jiān)控裝置。
[0026]該服務(wù)器監(jiān)控裝置包括:
[0027]預(yù)先生成模塊,用于根據(jù)服務(wù)器的MIB文件預(yù)先生成對應(yīng)服務(wù)器的不同監(jiān)控對象的多個數(shù)據(jù)表,其中,每個數(shù)據(jù)表中包括所對應(yīng)的監(jiān)控對象的OID和監(jiān)控數(shù)據(jù);
[0028]確定模塊,用于根據(jù)接收的需要訪問的多個目標(biāo)OID在預(yù)先生成的多個數(shù)據(jù)表中確定每個目標(biāo)OID所對應(yīng)的目標(biāo)數(shù)據(jù)表;
[0029]讀取模塊,用于在存在多個目標(biāo)OID對應(yīng)相同的目標(biāo)數(shù)據(jù)表的情況下,在目標(biāo)數(shù)據(jù)表中分別讀取多個目標(biāo)OID所分別對應(yīng)的監(jiān)控數(shù)據(jù)。
[0030]其中,確定模塊包括:
[0031]第一確定子模塊,用于根據(jù)接收的需要訪問的目標(biāo)OID確定目標(biāo)監(jiān)控對象;
[0032]第二確定子模塊,用于在預(yù)先生成的多個數(shù)據(jù)表中確定目標(biāo)監(jiān)控對象所對應(yīng)的目標(biāo)數(shù)據(jù)表。
[0033]此外,該服務(wù)器監(jiān)控裝置進(jìn)一步包括:
[0034]獲取模塊,用于在目標(biāo)數(shù)據(jù)表在預(yù)定時間內(nèi)被首次讀取監(jiān)控數(shù)據(jù)的情況下,獲取目標(biāo)服務(wù)器的動態(tài)指標(biāo)的狀態(tài)信息;
[0035]更新模塊,用于根據(jù)服務(wù)器的動態(tài)指標(biāo)的狀態(tài)信息對目標(biāo)數(shù)據(jù)表中的動態(tài)指標(biāo)的監(jiān)控數(shù)據(jù)進(jìn)行更新。
[0036]另外,該服務(wù)器監(jiān)控裝置進(jìn)一步包括:
[0037]判斷獲取模塊,用于在目標(biāo)數(shù)據(jù)表中讀取每個目標(biāo)OID所對應(yīng)的監(jiān)控數(shù)據(jù)之前,對每個目標(biāo)OID所對應(yīng)的指標(biāo)的類型進(jìn)行判斷,在判斷該指標(biāo)為服務(wù)器的動態(tài)指標(biāo)的情況下,實時獲取服務(wù)器當(dāng)前該動態(tài)指標(biāo)的狀態(tài)信息;
[0038]實時更新模塊,用于基于當(dāng)前該動態(tài)指標(biāo)的狀態(tài)信息對目標(biāo)數(shù)據(jù)表中的該動態(tài)指標(biāo)的監(jiān)控數(shù)據(jù)進(jìn)行實時更新。
[0039]本發(fā)明通過將OID以數(shù)據(jù)表的方式進(jìn)行組織,從而實現(xiàn)了對多個OID的監(jiān)控數(shù)據(jù)的同時訪問,并避免了訪問多個OID所帶來的對SNMP配置文件的復(fù)雜配置問題,簡化了 OID的監(jiān)控數(shù)據(jù)的處理步驟,提高了 snmp代理能力。
【附圖說明】
[0040]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對實施例中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的一些實施例,對于本領(lǐng)域普通技術(shù)人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0041]圖1是根據(jù)本發(fā)明實施例的服務(wù)器監(jiān)控方法的流程圖;
[0042]圖2是根據(jù)本發(fā)明實施例的服務(wù)器監(jiān)控方法的通過so庫擴展snmp代理的示意性流程圖;
[0043]圖3是根據(jù)本發(fā)明實施例的服務(wù)器監(jiān)控方法的數(shù)據(jù)表的記錄形式的示意圖。
[0044]圖4是根據(jù)本發(fā)明一具體實施例的服務(wù)器監(jiān)控方法的流程圖;
[0045]圖5是根據(jù)本發(fā)明實施例的服務(wù)器監(jiān)控裝置的框圖。
【具體實施方式】
[0046]下面將結(jié)合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領(lǐng)域普通技術(shù)人員所獲得的所有其他實施例,都屬于本發(fā)明保護(hù)的范圍。
[0047]根據(jù)本發(fā)明的實施例,提供了一種基于SNMP的服務(wù)器監(jiān)控方法。
[0048]如圖1所示,根據(jù)本發(fā)明實施例的服務(wù)器監(jiān)控方法包括:
[0049]步驟S101,根據(jù)服務(wù)器的MIB文件預(yù)先生成對應(yīng)服務(wù)器的不同監(jiān)控對象的