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