黃 騰
(民航中南空管局,廣東 廣州 510405)
簡單網(wǎng)絡(luò)管理協(xié)議(Simple Network Management Protocol)是一種應(yīng)用層協(xié)議,是TCP/IP 協(xié)議族的一部分,它使網(wǎng)絡(luò)設(shè)備間能方便地交換管理信息。SNMP 能夠讓網(wǎng)絡(luò)管理員管理網(wǎng)絡(luò)的性能,發(fā)現(xiàn)和解決網(wǎng)絡(luò)問題及進行網(wǎng)絡(luò)的擴充。
SNMP 是如何工作的?
1)SNMP 代理程序把從設(shè)備讀到的各種數(shù)據(jù)(比如網(wǎng)卡數(shù)據(jù)包的進出情況)以SMI 規(guī)定的格式(這種格式要求MIB 變量必須以1.3.6.1.2.1 開頭)寫到MIB 庫中(MIB 庫就像抽屜一樣,有很多變量,每一個變量存儲著設(shè)備的信息。比如1.3.6.1.2.1.7.1,這個變量里存儲了收到了多少UDP 協(xié)議包)。
2)SNMP 管理器程序通過SNMP 協(xié)議與SNMP 代理程序聯(lián)系,以便間接讀取MIB 庫中的數(shù)據(jù)。
流程如下圖所示(圖1):
圖1 SNMP 信息采集流程
應(yīng)用舉例:
在trace 上運行以下指令:
snmpwalk-c public-V 1 192.168.140.73.1.3.6.1.2.1.2.2.1.10
結(jié)果顯示:
ifInOctets.1=0
ifInOctets.2=0
ifInOctets.3=1234567
ifInOctets.4=0
ifInOctets.5=0
ifInOctets.6=4567890
ifInOctets.7=0
ifInOctets.8=8901234
其中以上單位流量為 單位為bytes
-c 名為共同體,默認(rèn)為public
-v1 意為使用的是snmp V1 的協(xié)議
192.168.140.73 是某臺機器的IP 的地址
.1.3.4.1.2.1.2.2.1.10 是網(wǎng)絡(luò)的SNMP 的OID,即統(tǒng)計該臺機器所有網(wǎng)卡的總的流入流量。
該網(wǎng)卡的實時流量,可以通過以下公式求得:
下面,我們以開源軟件Cacti 為例來說明SNMP 在日常監(jiān)控中的其他一些應(yīng)用。
Cacti 是用PHP 語言實現(xiàn)的一個開源軟件,它的主要功能是通過SNMP 協(xié)議獲取數(shù)據(jù),然后儲存并更新數(shù)據(jù),當(dāng)用戶需要查看數(shù)據(jù)的時候生成圖表呈現(xiàn)給用戶。SNMP 關(guān)系著數(shù)據(jù)的收集,因此,SNMP 是Cacti 的關(guān)鍵。由于Cacti 對歷史數(shù)據(jù)進行了存儲,我們可以通過歷史數(shù)據(jù)對系統(tǒng)的故障進行分析。
Cacti 的工作流程如圖2 所示:
圖2 Cacti 工作流程
Cacti 每隔一段時間(例如:5 分鐘)進行一次數(shù)據(jù)采集,通過SNMP協(xié)議采集監(jiān)控設(shè)備的信息。
Cacti 通過RRDtool 模塊將采集到的數(shù)據(jù)按主機以及數(shù)據(jù)類別保存到硬盤文件。RRDtool 是一個用于存儲數(shù)據(jù)和繪制圖象的程序。
當(dāng)用戶要查看某臺設(shè)備的信息,Cacti 查詢數(shù)據(jù)庫查找該設(shè)備對應(yīng)的存儲文件。Cacti 讀取文件并通過RRDtool 進行繪圖,然后用http的方式返回給用戶。
Cacti 具有非常廣泛的應(yīng)用網(wǎng)絡(luò)流量,CPU 負(fù)載,磁盤剩余空間,內(nèi)存使用,進程占用資源,TCP/UDP 信息等等都可以監(jiān)控。只要OID存在于設(shè)備的MIB 中,我們都可以通過Cacti 對其進行操作,甚至OID 不存在于設(shè)備MIB 中,我們也可以構(gòu)造自定義的OID 采集需要的信息。下面以我們在歐洲貓測試平臺所做的相關(guān)測試來說明Cacti的應(yīng)用。
1)設(shè)備監(jiān)控
Cacti 可以對設(shè)備進行監(jiān)控,如圖3 所示,Cacti 最大的優(yōu)點是可以定制需要監(jiān)控的設(shè)備信息。
圖3 Cacti 設(shè)備監(jiān)控
2)網(wǎng)口流量分析
圖4 是我們用Cacti 采集到某臺機器的網(wǎng)口流量數(shù)據(jù)。通過圖形,我們可以非常直觀的分析網(wǎng)口在一天的流量情況。
圖4 網(wǎng)口流量
3)CPU 負(fù)載分析
圖5 是通過Cacti 采集到的某臺機器的CPU 負(fù)載情況。
圖5 CPU 負(fù)載分析
4)歷史數(shù)據(jù)分析
通過Cacti 我們可以分析過去2 年內(nèi)任何時間的數(shù)據(jù),可以以日、月、年等不同的事件跨度來做數(shù)據(jù)分析,圖6 是CDP 在一個月內(nèi)的網(wǎng)絡(luò)統(tǒng)計情況。對歷史數(shù)據(jù)的分析可以直觀的看清楚設(shè)備在過去一段時間的運行情況,以及設(shè)備負(fù)載的變化趨勢,技術(shù)維護人員依據(jù)這些信息,可以預(yù)判故障的潛在情況還有設(shè)備是否需要進行更新來適應(yīng)變化。
圖6 一個月網(wǎng)口流量
5)交換機網(wǎng)絡(luò)流量監(jiān)控
Cacti 除了可以監(jiān)控節(jié)點外,還可以監(jiān)控交換機的所有網(wǎng)口。
Cacti 還具有良好的擴展性,我們可以針對不同類型的設(shè)備,定義不同的主機模版,數(shù)據(jù)模板,圖形顯示模版等。
綜上所述,我們可以知道SNMP 可以非常方便的獲取節(jié)點的網(wǎng)絡(luò)流量、cpu 使用率、內(nèi)存使用情況等信息。獲取SNMP 信息,有利于我們對設(shè)備故障的判斷,解決MMI 屏幕凍結(jié)就是一個很好的例子。開源軟件Cacti 在數(shù)據(jù)分析方面做了很多的工作,讓我們在數(shù)據(jù)分析方面節(jié)省了很多編寫代碼的工作。當(dāng)需要對上千個節(jié)點進行監(jiān)控時,SNMP的輪詢方式會產(chǎn)生很大的網(wǎng)絡(luò)流量,可能導(dǎo)致網(wǎng)絡(luò)阻塞;在這種情況下,我們可以采用snmptrap 的方式,讓節(jié)點在某些參數(shù)在超過閥值時,通過snmptrap 向監(jiān)控系統(tǒng)發(fā)送信息。
[1]Thales ATM Pty Ltd.Eurocat-x system/segment specification[Z].
[2]Thales ATM Pty Ltd.Eurocat-x DPR offline data specification[Z].