思科交换机端口吞吐量监控与SNMP?

我有一个思科4500,我想执行networking吞吐量监测。 我应该看哪些OID来获取这些信息? 我有什么select,否则获得这些信息? 我应该在哪里查看这个交换机上可用的MIB?

如果您的最终目标只是查看指标,像cacti,munin,mrtg这样的工具可以帮助您获得比您的问题所需的更less的细节。

也就是说,思科支持标准的MIB接口。

每个接口将被分配一个索引。 接口的所有信息将存储在表中。 每个表都由特定的OID引用,并且通过将接口的索引附加到表的OID来引用该表中特定接口的信息。

作为一个例子,下面是一个查询设备上每个接口的ifIndex,ifDescr,ifAdminStatus和ifOperStatus的脚本。 这个例子显示了使用的oid和根据索引查找表值的行为。 (我把这个例子从一个更大的代码片断中简化出来,所以可能有一些小错误):

#!/usr/bin/perl use Net::SNMP; my %oids = ( 'ifDescr' => '1.3.6.1.2.1.2.2.1.2', 'ifType' => '1.3.6.1.2.1.2.2.1.3', 'ifAdminStatus' => '1.3.6.1.2.1.2.2.1.7', 'ifOperStatus' => '1.3.6.1.2.1.2.2.1.8', ); my $device = shift || die "Need device to poll"; my $community = shift || 'public'; my($snmp,$snmp_error) = Net::SNMP->session(-hostname => $device, -community => $community); my $info; if (!$snmp) { printf STDERR ("Couldn't create snmp object for $d: $snmp_error\n"); } else { $info = $snmp->get_entries(-columns => [ $oids{ifDescr}, $oids{ifAdminStatus}, $oids{ifOperStatus}, $oids{ifType} ]); if (!$info) { printf STDERR ("Couldn't poll $d: %s\n", $snmp->error()); } } foreach my $oid (grep /^$oids{ifDescr}\./, keys(%$info)) { my($index) = $oid =~ m|\.(\d+)$|; print join(',', $device, $index, $info->{"$oids{ifDescr}.$index"}, $info->{"$oids{ifType}.$index"}, $info->{"$oids{ifAdminStatus}.$index"}, $info->{"$oids{ifOperStatus}.$index"}), "\n"; } 

所有有趣的东西都在1.3.6.1.2.1.2.2.1下,ifEntry OID。 这里有一个链接 ,解释它的一些成员,包括我上面使用的和其他你可能感兴趣的,如八位字节,数据包,错误等

无论您的目标界面是什么,您IfOutOctets可能需要IfInOctetsIfOutOctets OID。 思科SNMP对象浏览器可能会非常有用,因为您正在追踪这类信息。