黃 騰
(民航中南空管局,廣東 廣州 510405)
簡單網絡管理協議(Simple Network Management Protocol)是一種應用層協議,是TCP/IP 協議族的一部分,它使網絡設備間能方便地交換管理信息。SNMP 能夠讓網絡管理員管理網絡的性能,發現和解決網絡問題及進行網絡的擴充。
SNMP 是如何工作的?
1)SNMP 代理程序把從設備讀到的各種數據(比如網卡數據包的進出情況)以SMI 規定的格式(這種格式要求MIB 變量必須以1.3.6.1.2.1 開頭)寫到MIB 庫中(MIB 庫就像抽屜一樣,有很多變量,每一個變量存儲著設備的信息。比如1.3.6.1.2.1.7.1,這個變量里存儲了收到了多少UDP 協議包)。
2)SNMP 管理器程序通過SNMP 協議與SNMP 代理程序聯系,以便間接讀取MIB 庫中的數據。
流程如下圖所示(圖1):

圖1 SNMP 信息采集流程
應用舉例:
在trace 上運行以下指令:
snmpwalk-c public-V 1 192.168.140.73.1.3.6.1.2.1.2.2.1.10
結果顯示:
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 名為共同體,默認為public
-v1 意為使用的是snmp V1 的協議
192.168.140.73 是某臺機器的IP 的地址
.1.3.4.1.2.1.2.2.1.10 是網絡的SNMP 的OID,即統計該臺機器所有網卡的總的流入流量。
該網卡的實時流量,可以通過以下公式求得:


下面,我們以開源軟件Cacti 為例來說明SNMP 在日常監控中的其他一些應用。
Cacti 是用PHP 語言實現的一個開源軟件,它的主要功能是通過SNMP 協議獲取數據,然后儲存并更新數據,當用戶需要查看數據的時候生成圖表呈現給用戶。SNMP 關系著數據的收集,因此,SNMP 是Cacti 的關鍵。由于Cacti 對歷史數據進行了存儲,我們可以通過歷史數據對系統的故障進行分析。
Cacti 的工作流程如圖2 所示:

圖2 Cacti 工作流程
Cacti 每隔一段時間(例如:5 分鐘)進行一次數據采集,通過SNMP協議采集監控設備的信息。
Cacti 通過RRDtool 模塊將采集到的數據按主機以及數據類別保存到硬盤文件。RRDtool 是一個用于存儲數據和繪制圖象的程序。
當用戶要查看某臺設備的信息,Cacti 查詢數據庫查找該設備對應的存儲文件。Cacti 讀取文件并通過RRDtool 進行繪圖,然后用http的方式返回給用戶。
Cacti 具有非常廣泛的應用網絡流量,CPU 負載,磁盤剩余空間,內存使用,進程占用資源,TCP/UDP 信息等等都可以監控。只要OID存在于設備的MIB 中,我們都可以通過Cacti 對其進行操作,甚至OID 不存在于設備MIB 中,我們也可以構造自定義的OID 采集需要的信息。下面以我們在歐洲貓測試平臺所做的相關測試來說明Cacti的應用。
1)設備監控
Cacti 可以對設備進行監控,如圖3 所示,Cacti 最大的優點是可以定制需要監控的設備信息。

圖3 Cacti 設備監控
2)網口流量分析
圖4 是我們用Cacti 采集到某臺機器的網口流量數據。通過圖形,我們可以非常直觀的分析網口在一天的流量情況。

圖4 網口流量
3)CPU 負載分析
圖5 是通過Cacti 采集到的某臺機器的CPU 負載情況。

圖5 CPU 負載分析
4)歷史數據分析
通過Cacti 我們可以分析過去2 年內任何時間的數據,可以以日、月、年等不同的事件跨度來做數據分析,圖6 是CDP 在一個月內的網絡統計情況。對歷史數據的分析可以直觀的看清楚設備在過去一段時間的運行情況,以及設備負載的變化趨勢,技術維護人員依據這些信息,可以預判故障的潛在情況還有設備是否需要進行更新來適應變化。

圖6 一個月網口流量
5)交換機網絡流量監控
Cacti 除了可以監控節點外,還可以監控交換機的所有網口。
Cacti 還具有良好的擴展性,我們可以針對不同類型的設備,定義不同的主機模版,數據模板,圖形顯示模版等。
綜上所述,我們可以知道SNMP 可以非常方便的獲取節點的網絡流量、cpu 使用率、內存使用情況等信息。獲取SNMP 信息,有利于我們對設備故障的判斷,解決MMI 屏幕凍結就是一個很好的例子。開源軟件Cacti 在數據分析方面做了很多的工作,讓我們在數據分析方面節省了很多編寫代碼的工作。當需要對上千個節點進行監控時,SNMP的輪詢方式會產生很大的網絡流量,可能導致網絡阻塞;在這種情況下,我們可以采用snmptrap 的方式,讓節點在某些參數在超過閥值時,通過snmptrap 向監控系統發送信息。
[1]Thales ATM Pty Ltd.Eurocat-x system/segment specification[Z].
[2]Thales ATM Pty Ltd.Eurocat-x DPR offline data specification[Z].