黃 騰
(民航中南空管局,廣東 廣州 510405)
簡單網絡管理協(xié)議(Simple Network Management Protocol)是一種應用層協(xié)議,是TCP/IP 協(xié)議族的一部分,它使網絡設備間能方便地交換管理信息。SNMP 能夠讓網絡管理員管理網絡的性能,發(fā)現(xiàn)和解決網絡問題及進行網絡的擴充。
SNMP 是如何工作的?
1)SNMP 代理程序把從設備讀到的各種數(shù)據(jù)(比如網卡數(shù)據(jù)包的進出情況)以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ù)據(jù)。
流程如下圖所示(圖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ù)據(jù),然后儲存并更新數(shù)據(jù),當用戶需要查看數(shù)據(jù)的時候生成圖表呈現(xiàn)給用戶。SNMP 關系著數(shù)據(jù)的收集,因此,SNMP 是Cacti 的關鍵。由于Cacti 對歷史數(shù)據(jù)進行了存儲,我們可以通過歷史數(shù)據(jù)對系統(tǒng)的故障進行分析。
Cacti 的工作流程如圖2 所示:
圖2 Cacti 工作流程
Cacti 每隔一段時間(例如:5 分鐘)進行一次數(shù)據(jù)采集,通過SNMP協(xié)議采集監(jiān)控設備的信息。
Cacti 通過RRDtool 模塊將采集到的數(shù)據(jù)按主機以及數(shù)據(jù)類別保存到硬盤文件。RRDtool 是一個用于存儲數(shù)據(jù)和繪制圖象的程序。
當用戶要查看某臺設備的信息,Cacti 查詢數(shù)據(jù)庫查找該設備對應的存儲文件。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ù)據(jù)。通過圖形,我們可以非常直觀的分析網口在一天的流量情況。
圖4 網口流量
3)CPU 負載分析
圖5 是通過Cacti 采集到的某臺機器的CPU 負載情況。
圖5 CPU 負載分析
4)歷史數(shù)據(jù)分析
通過Cacti 我們可以分析過去2 年內任何時間的數(shù)據(jù),可以以日、月、年等不同的事件跨度來做數(shù)據(jù)分析,圖6 是CDP 在一個月內的網絡統(tǒng)計情況。對歷史數(shù)據(jù)的分析可以直觀的看清楚設備在過去一段時間的運行情況,以及設備負載的變化趨勢,技術維護人員依據(jù)這些信息,可以預判故障的潛在情況還有設備是否需要進行更新來適應變化。
圖6 一個月網口流量
5)交換機網絡流量監(jiān)控
Cacti 除了可以監(jiān)控節(jié)點外,還可以監(jiān)控交換機的所有網口。
Cacti 還具有良好的擴展性,我們可以針對不同類型的設備,定義不同的主機模版,數(shù)據(jù)模板,圖形顯示模版等。
綜上所述,我們可以知道SNMP 可以非常方便的獲取節(jié)點的網絡流量、cpu 使用率、內存使用情況等信息。獲取SNMP 信息,有利于我們對設備故障的判斷,解決MMI 屏幕凍結就是一個很好的例子。開源軟件Cacti 在數(shù)據(jù)分析方面做了很多的工作,讓我們在數(shù)據(jù)分析方面節(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].