У меня есть Cisco 4500, на котором я хотел бы выполнять мониторинг пропускной способности сети. На какой OID я должен смотреть, чтобы получить эту информацию? Какие у меня есть варианты получения этой информации в противном случае? Где мне искать для просмотра MIB, доступных на этом коммутаторе?
Если ваша конечная цель - просто иметь и просматривать метрики, такой инструмент, как cacti, munin, mrtg, может помочь вам с меньшими деталями, чем требуется в вашем вопросе.
Тем не менее, Cisco поддерживает стандартные MIB для интерфейсов.
Каждому интерфейсу будет присвоен индекс. Вся информация об интерфейсах будет храниться в таблицах. На каждую таблицу ссылается определенный OID, и информация для конкретного интерфейса в этой таблице будет ссылаться путем присоединения индекса интерфейса к OID таблицы.
В качестве примера, вот сценарий, который ищет ifIndex, ifDescr, ifAdminStatus и ifOperStatus для каждого интерфейса на устройстве. В этом примере показаны используемые идентификаторы и процесс поиска значений таблицы на основе их индекса. (Я вытащил этот пример из гораздо большего фрагмента кода, чтобы упростить его, поэтому, вероятно, есть некоторые незначительные ошибки):
#!/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. Вот ссылка на сайт это объясняет некоторые из его членов, включая те, которые я использовал выше, и другие, которые могут вас заинтересовать, такие как октет, пакеты, ошибки и т. д.
Вы, скорее всего, хотите IfInOctets
и IfOutOctets
OID для любого вашего целевого интерфейса. В Обозреватель объектов Cisco SNMP вероятно, будет очень полезен при отслеживании такого рода информации.