Monitoring
使用 SNMP 的 Cisco 交換機埠吞吐量監控?
我有一台 Cisco 4500,我想在其上執行網路吞吐量監控。我應該查看哪個 OID 來獲取此資訊?否則我有什麼選擇來獲取這些資訊?我應該在哪裡查看以瀏覽此交換機上可用的 MIB?
如果您的最終目標只是擁有和查看指標,那麼像 cacti、munin、mrtg 這樣的工具可以幫助您提供比您問題中要求的更少的細節。
也就是說,思科支持標準 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 下。這是一個連結,它解釋了它的一些成員,包括我上面使用的那些以及您可能感興趣的其他成員,例如 Octet、Packets、Errors 等