交換機的某個端口的實時速率?占了端口總速率的百分比?是否擁塞了?這些都是網絡管理工作中經常碰到的問題。
大型企業通常是搭建基于snmp的網絡管理系統。像SolarWinds、IMC、PRTG 等大型網絡管理軟件價格不菲。Cacti、zabbix、netdisco、NagIOS、Pandora FMS、Open Falcon、mtrg等開源軟件需要一定的開發能力和系統搭建能力。在一些中小企業中不是沒有這種網絡管理系統就是只購買了少量的授權。碰到臨時的網絡故障沒有即用的端口流量監測工具資源是令中小企業網絡管理員頭痛的是事情。多少網絡管理員不得不進入交換機不停的show interface xxx刷新。
今天為大家介紹一款在windows平臺下的可以即時使用的綠色軟件snmp traffic grapher 簡稱STG。
首先要使能交換機的snmp,并且設置community(STG小工具不支持snmp v3)設置方法如下:
Cisco交換機 snmp-server community "public" RO
Huawei 交換機 snmp-agent; snmp-agent community read "public"
打開STG ——View——setting

其中 Target 里面填寫要監視交換機的ip;
Community 里面填寫交換機里配置的 community 名稱
Green 和blue 里面填寫要監測交換機的snmp oid 后面詳細介紹
Guuge 計量尺寸 這個建議勾上防止圖形過小或者溢出
Request 請求的時間
Update 更新時間
Max 最大流量
Show Traffic 選擇流量顯示的單位是 bytes 還是 bits
Fix rat 釘住速率
Reverse 圖形反轉 STG默認從右往左(時間抽越左邊的時間是離現在越遠的時間)
Log file STG 支持記錄的數據自動導出到一個csv文檔
Rotate 多少個文件多少(小時、天、星期、月)。即多長時間分割多少個文件。
看起來這些參數很復雜,其實一般我們只要填寫三大項軟件即可正常工作Target、Community、OID
下面介紹一個些常見的OID




System GroupsysDescr 1.3.6.1.2.1.1.1sysObjectID 1.3.6.1.2.1.1.2sysUpTime 1.3.6.1.2.1.1.3sysContact 1.3.6.1.2.1.1.4sysName 1.3.6.1.2.1.1.5sysLocation 1.3.6.1.2.1.1.6sysServices 1.3.6.1.2.1.1.7Interfaces GroupifNumber 1.3.6.1.2.1.2.1ifTable 1.3.6.1.2.1.2.2ifEntry 1.3.6.1.2.1.2.2.1ifIndex 1.3.6.1.2.1.2.2.1.1ifDescr 1.3.6.1.2.1.2.2.1.2ifType 1.3.6.1.2.1.2.2.1.3ifMtu 1.3.6.1.2.1.2.2.1.4ifSpeed 1.3.6.1.2.1.2.2.1.5ifPhysAddress 1.3.6.1.2.1.2.2.1.6ifAdminStatus 1.3.6.1.2.1.2.2.1.7ifOperStatus 1.3.6.1.2.1.2.2.1.8ifLastChange 1.3.6.1.2.1.2.2.1.9ifInOctets 1.3.6.1.2.1.2.2.1.10ifInUcastPkts 1.3.6.1.2.1.2.2.1.11ifInNUcastPkts 1.3.6.1.2.1.2.2.1.12ifInDiscards 1.3.6.1.2.1.2.2.1.13ifInErrors 1.3.6.1.2.1.2.2.1.14ifInUnknownProtos 1.3.6.1.2.1.2.2.1.15ifOutOctets 1.3.6.1.2.1.2.2.1.16ifOutUcastPkts 1.3.6.1.2.1.2.2.1.17ifOutNUcastPkts 1.3.6.1.2.1.2.2.1.18ifOutDiscards 1.3.6.1.2.1.2.2.1.19ifOutErrors 1.3.6.1.2.1.2.2.1.20ifOutQLen 1.3.6.1.2.1.2.2.1.21ifSpecific 1.3.6.1.2.1.2.2.1.22IP GroupipForwarding 1.3.6.1.2.1.4.1ipDefaultTTL 1.3.6.1.2.1.4.2ipInReceives 1.3.6.1.2.1.4.3ipInHdrErrors 1.3.6.1.2.1.4.4ipInAddrErrors 1.3.6.1.2.1.4.5ipForwDatagrams 1.3.6.1.2.1.4.6ipInUnknownProtos 1.3.6.1.2.1.4.7ipInDiscards 1.3.6.1.2.1.4.8ipInDelivers 1.3.6.1.2.1.4.9ipOutRequests 1.3.6.1.2.1.4.10ipOutDiscards 1.3.6.1.2.1.4.11ipOutNoRoutes 1.3.6.1.2.1.4.12ipReasmTimeout 1.3.6.1.2.1.4.13ipReasmReqds 1.3.6.1.2.1.4.14ipReasmOKs 1.3.6.1.2.1.4.15ipReasmFails 1.3.6.1.2.1.4.16ipFragsOKs 1.3.6.1.2.1.4.17ipFragsFails 1.3.6.1.2.1.4.18ipFragCreates 1.3.6.1.2.1.4.19ipAddrTable 1.3.6.1.2.1.4.20ipAddrEntry 1.3.6.1.2.1.4.20.1ipAdEntAddr 1.3.6.1.2.1.4.20.1.1ipAdEntIfIndex 1.3.6.1.2.1.4.20.1.2ipAdEntNetMask 1.3.6.1.2.1.4.20.1.3ipAdEntBcastAddr 1.3.6.1.2.1.4.20.1.4ipAdEntReasmMaxSize 1.3.6.1.2.1.4.20.1.5ICMP GroupicmpInMsgs 1.3.6.1.2.1.5.1icmpInErrors 1.3.6.1.2.1.5.2icmpInDestUnreachs 1.3.6.1.2.1.5.3icmpInTimeExcds 1.3.6.1.2.1.5.4icmpInParmProbs 1.3.6.1.2.1.5.5icmpInSrcQuenchs 1.3.6.1.2.1.5.6icmpInRedirects 1.3.6.1.2.1.5.7icmpInEchos 1.3.6.1.2.1.5.8icmpInEchoReps 1.3.6.1.2.1.5.9icmpInTimestamps 1.3.6.1.2.1.5.10icmpInTimestampReps 1.3.6.1.2.1.5.11icmpInAddrMasks 1.3.6.1.2.1.5.12icmpInAddrMaskReps 1.3.6.1.2.1.5.13icmpOutMsgs 1.3.6.1.2.1.5.14icmpOutErrors 1.3.6.1.2.1.5.15icmpOutDestUnreachs 1.3.6.1.2.1.5.16icmpOutTimeExcds 1.3.6.1.2.1.5.17icmpOutParmProbs 1.3.6.1.2.1.5.18icmpOutSrcQuenchs 1.3.6.1.2.1.5.19icmpOutRedirects 1.3.6.1.2.1.5.20icmpOutEchos 1.3.6.1.2.1.5.21icmpOutEchoReps 1.3.6.1.2.1.5.22icmpOutTimestamps 1.3.6.1.2.1.5.23icmpOutTimestampReps 1.3.6.1.2.1.5.24icmpOutAddrMasks 1.3.6.1.2.1.5.25icmpOutAddrMaskReps 1.3.6.1.2.1.5.26TCP GrouptcpRtoAlgorithm 1.3.6.1.2.1.6.1tcpRtoMin 1.3.6.1.2.1.6.2tcpRtoMax 1.3.6.1.2.1.6.3tcpMaxConn 1.3.6.1.2.1.6.4tcpActiveOpens 1.3.6.1.2.1.6.5tcpPassiveOpens 1.3.6.1.2.1.6.6tcpAttemptFails 1.3.6.1.2.1.6.7tcpEstabResets 1.3.6.1.2.1.6.8tcpCurrEstab 1.3.6.1.2.1.6.9tcpInSegs 1.3.6.1.2.1.6.10tcpOutSegs 1.3.6.1.2.1.6.11tcpRetransSegs 1.3.6.1.2.1.6.12tcpConnTable 1.3.6.1.2.1.6.13tcpConnEntry 1.3.6.1.2.1.6.13.1tcpConnState 1.3.6.1.2.1.6.13.1.1tcpConnLocalAddress 1.3.6.1.2.1.6.13.1.2tcpConnLocalPort 1.3.6.1.2.1.6.13.1.3tcpConnRemAddress 1.3.6.1.2.1.6.13.1.4tcpConnRemPort 1.3.6.1.2.1.6.13.1.5tcpInErrs 1.3.6.1.2.1.6.14tcpOutRsts 1.3.6.1.2.1.6.15UDP GroupudpInDatagrams 1.3.6.1.2.1.7.1udpNoPorts 1.3.6.1.2.1.7.2udpInErrors 1.3.6.1.2.1.7.3udpOutDatagrams 1.3.6.1.2.1.7.4udpTable 1.3.6.1.2.1.7.5udpEntry 1.3.6.1.2.1.7.5.1udpLocalAddress 1.3.6.1.2.1.7.5.1.1udpLocalPort 1.3.6.1.2.1.7.5.1.2SNMP GroupsnmpInPkts 1.3.6.1.2.1.11.1snmpOutPkts 1.3.6.1.2.1.11.2snmpInBadVersions 1.3.6.1.2.1.11.3snmpInBadCommunityNames 1.3.6.1.2.1.11.4snmpInBadCommunityUses 1.3.6.1.2.1.11.5snmpInASNParseErrs 1.3.6.1.2.1.11.6NOT USED 1.3.6.1.2.1.11.7snmpInTooBigs 1.3.6.1.2.1.11.8snmpInNoSuchNames 1.3.6.1.2.1.11.9snmpInBadValues 1.3.6.1.2.1.11.10snmpInReadOnlys 1.3.6.1.2.1.11.11snmpInGenErrs 1.3.6.1.2.1.11.12snmpInTotalReqVars 1.3.6.1.2.1.11.13snmpInTotalSetVars 1.3.6.1.2.1.11.14snmpInGetRequests 1.3.6.1.2.1.11.15snmpInGetNexts 1.3.6.1.2.1.11.16snmpInSetRequests 1.3.6.1.2.1.11.17snmpInGetResponses 1.3.6.1.2.1.11.18snmpInTraps 1.3.6.1.2.1.11.19snmpOutTooBigs 1.3.6.1.2.1.11.20snmpOutNoSuchNames 1.3.6.1.2.1.11.21snmpOutBadValues 1.3.6.1.2.1.11.22NOT USED 1.3.6.1.2.1.11.23snmpOutGenErrs 1.3.6.1.2.1.11.24snmpOutGetRequests 1.3.6.1.2.1.11.25snmpOutGetNexts 1.3.6.1.2.1.11.26snmpOutSetRequests 1.3.6.1.2.1.11.27snmpOutGetResponses 1.3.6.1.2.1.11.28snmpOutTraps 1.3.6.1.2.1.11.29snmpEnableAuthenTraps 1.3.6.1.2.1.11.30
對照上面的OID,我們知道了STG軟件打開后默認的OID是端口接受和發送端口的字節數。那么是那個端口的接受和發送字節數呢?我們發現是數字1,那么數字1是哪個端口?

對于cisco交換機我們可以cli進入交換機查詢mib
show snmp mib ifmib ifindex
對于華為交換機我們可以借助snmpwalk這個linux下的小軟件
snmpwalk -v 2c -c public 你的交換機ip ifDescr (community snmp ver 依據交換機的設定)
當然所有品牌的交換機可以去官方網站查詢OID或者撥打400電話
通過查詢mib獲取ifindex就可以監測具體端口的接受發送的字節
例如:查詢cisco Fa0/1 的ifindex 是 10001
Gi0/1 的ifindex 是 10101
那么
1.3.6.1.2.1.2.2.1.10.10001 就是交換機的Fa0/1端口接受的字節數
1.3.6.1.2.1.2.2.1.16.10101 就是交換機的Gi0/1端口發送的字節數
查詢華為 E0/1 的ifindex 是 6
那么 1.3.6.1.2.1.2.2.1.10.6 就是交換機的E0/1端口接受的字節數
1.3.6.1.2.1.2.2.1.16.6 就是交換機的E 0/1端口發送的字節數
如果只是監視交換機的端口接受和發送的字節數,打開STG設置參數OID部分我們只需要修改后面的端口的ifindex。然而同一品牌同一序列的交換機的ifindex很有規律。
找到規律后我們監視交換機端口的流量就是一件很簡單的事情了。
我們看到STG walk snmp的OID,所以STG還能監測交換機、路由器、防火墻、windows、linux等的cpu、內存、硬盤、網口等多個數據,同時STG設置的參數可以保存成.stg的文件。Cmd 腳本下 start xxx.stg 可以開啟多個窗口同時監視。