交换机的某个端口的实时速率?占了端口总速率的百分比?是否拥塞了?这些都是网络管理工作中经常碰到的问题。
大型企业通常是搭建基于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 可以开启多个窗口同时监视。