Monitoramento de Throughput do Cisco Switchport com SNMP?

1

Eu tenho um Cisco 4500 no qual gostaria de realizar o monitoramento de taxa de transferência de rede. Qual OID devo estar olhando para obter essa informação? Que opções tenho para obter essa informação? Onde devo olhar para procurar os MIBs disponíveis neste switch?

    
por MattUebel 26.08.2010 / 17:04

2 respostas

2

Se o seu objetivo final é apenas ter e visualizar as métricas, uma ferramenta como cacti, munin, mrtg poderia ajudá-lo com menos detalhes do que o solicitado em sua pergunta.

Dito isto, a Cisco suporta os MIBs padrão para interfaces.

Cada interface receberá um índice. Todas as informações para as interfaces serão armazenadas em tabelas. Cada tabela é referenciada por um OID específico, e as informações para a interface específica nessa tabela serão referenciadas ao anexar o índice da interface ao OID da tabela.

Como exemplo, aqui está um script que pesquisa o ifIndex, ifDescr, ifAdminStatus e ifOperStatus para cada interface em um dispositivo. Este exemplo mostra os recursos usados e o ato de procurar valores de tabela com base em seu índice. (Eu tirei este exemplo de um pedaço de código muito maior para simplificá-lo, então provavelmente há alguns pequenos bugs):

#!/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";
}    

Todas as coisas interessantes estão em 1.3.6.1.2.1.2.2.1 , o ifEntry OID. Aqui está um link que explica alguns dos membros dele, incluindo os que eu usado acima e outros que você possa estar interessado, como Octeto, Pacotes, Erros, etc

    
por 26.08.2010 / 17:38
0

É bem provável que você queira os IfInOctets e IfOutOctets OIDs para qualquer que seja sua interface de destino. O navegador de objetos Cisco SNMP provavelmente será de grande utilidade você está rastreando esse tipo de informação.

    
por 26.08.2010 / 17:25