Configuração Básica do SNMP

O Simple Network Management Protocol (SNMP) é um protocolo padrão da Internet usado inicialmente nos sistemas de gerenciamento de redes para monitorar os dispositivos de rede para condições que garantem a atenção administrativa. Os dispositivos que tipicamente suportam o SNMP incluem roteadores, comutadores, servidores, estações de trabalho e impressoras. Essa seção apresenta a configuração básica do SNMP e fornece uma visão geral de MIBs do Cast Iron.

No léxico do SNMP, um Cast Iron Integration Appliance é referenciado como um "elemento de rede" ou "dispositivo gerenciado" que indica que ele é um cidadão em uma rede e está disponível para ser gerenciado. Os elementos de rede incluem um agente que fornece informações sobre o elemento. Os agentes executam duas funções de chave. Primeiro, eles respondem às solicitações do sistema de gerenciamento e, em segundo lugar, enviam notificações sobre os eventos no elemento de rede. As notificações assíncronas do agente para o gerenciador são referenciadas como traps.

Os traps do SNMP ativam um agente para notificar a estação de gerenciamento de eventos significantes por meio de uma mensagem de SNMP não solicitada. As informações fornecidas através de pesquisa ou de traps são definidas nos Management Information Bases (MIBs). Um MIB é um banco de dados virtual usado para gerenciar as entidades em uma rede de comunicações. Os MIBs definem uma hierarquia de objetos, com cada objeto que possui seu próprio Object Identifier (OID). Um OID é especificado por números separados por pontos, por exemplo: ".1.3.6.1.2.1.1". Um OID é, algumas vezes, referenciado por um nome comum. Por exemplo, o OID específico .1.3.6.1.2.1.1 pode ser referenciado como "sistema". O protocolo SNMP define muitos MIBs públicos e também permite que as organizações definam os MIBs específicos ao aplicativo e customizados.

Entendendo os MIBs do Cast Iron

Os arquivos transferidos por download do Cast Iron WMC possuem diversas seções MIB DEFINITIONS = BEGIN - END. Cada seção compreende um MIB com sua própria hierarquia. Para pesquisar informações específicas ao Cast Iron, use CASTIRON-IA-MIB. Cada MIB possui uma MODULE-IDENTITY que descreve a função do MIB. Uma seção de comentário que segue a MODULE-IDENTITY fornece uma visão geral do conteúdo do MIB e contém um Resumo do Objeto que lista o nome e o OID de cada objeto MIB.

Nota: Algumas ferramentas, como por exemplo, aquelas fornecidas pelo NET-SNMP, requerem que cada MIB seja dividido em um único arquivo. Para obter informações adicionais sobre os MIBs de divisão, consulte Configurar um Receptor SNMP.
Uma seção do Resumo do Objeto de um CASTIRON-IA-MIB a seguir:
--   ciIaProjectSummary                             ciia.1.1.1
--    ciIaNbrProjects                               ciia.1.1.1.1
--    ciIaNbrRunningOrchs                           ciia.1.1.1.2
--    ciIaNbrStoppedOrchs                           ciia.1.1.1.3
--    ciIaNbrRunningJobs                            ciia.1.1.1.4
--    ciIaNbrCompletedJobs                          ciia.1.1.1.5
--    ciIaNbrErroredJobs                            ciia.1.1.1.6
Como mostrado, um nó organizacional (neste caso, OBJECT-IDENTITY, o qual é semelhante a um diretório) chamado ciIaProjectSummary contém informações gerais sobre projetos. Dentro desse "diretório" estão os itens específicos (OBJECT-TYPEs) que contém o número de projetos, o número de execuções e orquestrações interrompidas, etc. Para obter informações adicionais sobre o significado desses itens, procure o arquivo para o nome do item. Por exemplo, para obter informações sobre ciIaNbrRunningJobs, ao procurar o arquivo para essa sequência verifique o seguinte:
ciIaNbrRunningJobs OBJECT-TYPE                      -- ciia.1.1.1.4
    SYNTAX Unsigned32
    MAX-ACCESS read-only
    STATUS current
    DESCRIPTION
        "Total number of currently running jobs.
        "
::= { ciIaProjectSummary 4 }
As áreas chave são:
  • ciIaNbrRunningJobs OBJECT-TYPE - Define o nome do objeto. Observe que há um comentário no término que fornece uma forma abreviada do OID.
  • SYNTAX Unsigned32 - Este é um número inteiro não assinado cujo valor poderá aumentar ou diminuir.
  • MAX-ACCESS somente leitura - Um valor somente leitura. O gerenciador pode solicitá-lo, mas não alterá-lo.
  • DESCRIPTION - Descreve o objeto.
O exemplo a seguir ilustra os dados exibidos ao pesquisar informações de ProjectSummary:
$ snmpwalk -v 2c -c public -M "+/home/choller/mibs" -m "+CASTIRON-IA-MIB" flintstone2 ciIaProjectSummary
CASTIRON-IA-MIB::ciIaNbrProjects.0 = Gauge32: 2
CASTIRON-IA-MIB::ciIaNbrRunningOrchs.0 = Gauge32: 0
CASTIRON-IA-MIB::ciIaNbrStoppedOrchs.0 = Gauge32: 14
CASTIRON-IA-MIB::ciIaNbrRunningJobs.0 = Gauge32: 0
CASTIRON-IA-MIB::ciIaNbrCompletedJobs.0 = Gauge32: 0
CASTIRON-IA-MIB::ciIaNbrErroredJobs.0 = Gauge32: 0
Os dados a seguir são exibidos ao pesquisar lciIaProjectTable:
--   ciIaProjectTable                               ciia.1.1.2
--    ciIaProjectEntry                              ciia.1.1.2.1
--     ciIaProjEntryIndex                           ciia.1.1.2.1.1
--     ciIaProjEntryName                            ciia.1.1.2.1.2
--     ciIaProjEntryVersion                         ciia.1.1.2.1.3
--     ciIaProjEntryConfig                          ciia.1.1.2.1.4
--     ciIaProjEntryState                           ciia.1.1.2.1.5
--     ciIaProjEntryNbrRunning                      ciia.1.1.2.1.6
--     ciIaProjEntryNbrCompleted                    ciia.1.1.2.1.7
--     ciIaProjEntryNbrErrored                      ciia.1.1.2.1.8
--     ciIaProjEntryTimePublished                   ciia.1.1.2.1.9
As Tabelas do SNMP podem ser difíceis. As tabelas do SNMP indicam o nome, a versão, a configuração, o estado e outras informações sobre cada projeto no dispositivo, semelhante a um esquema do banco de dados. Cada item de entrada (por exemplo, ciIaProjEntryName e ciIaProjEntryVersion) descreve uma coluna na tabela. É possível procurar através do MIB a sequência para localizar informações adicionais sobre cada item. Nota: A tentativa de "percorrer" a tabela Projeto em um modo iterativo pode apresentar problemas. Em vez disso, use sempre um recurso de ferramenta que entende as tabelas ao visualizar as informações da tabela. O exemplo a seguir ilustra uma técnica "percorrer". Nesse caso um projeto foi publicado e, em seguida, clonado para criar uma nova configuração, resultando em duas linhas de tabela. Conforme a saída indica, é difícil entender quais itens são associados às linhas específicas. Nesse caso, é necessário visualizar o índice (a última parte do OID) para determinar a disposição correta dos itens e das linhas.
$ snmpwalk -v 2c -c public -M "+/home/choller/mibs" -m "+CASTIRON-IA-MIB" flintstone2 ciIaProjectTable
CASTIRON-IA-MIB::ciIaProjEntryName.98304 = STRING: OnlineLicensing
CASTIRON-IA-MIB::ciIaProjEntryName.98305 = STRING: OnlineLicensing
CASTIRON-IA-MIB::ciIaProjEntryVersion.98304 = STRING: 1.0
CASTIRON-IA-MIB::ciIaProjEntryVersion.98305 = STRING: 1.0
CASTIRON-IA-MIB::ciIaProjEntryConfig.98304 = STRING: Default
CASTIRON-IA-MIB::ciIaProjEntryConfig.98305 = STRING: OnlineLicensingClone
CASTIRON-IA-MIB::ciIaProjEntryState.98304 = INTEGER: undeployed(1)
CASTIRON-IA-MIB::ciIaProjEntryState.98305 = INTEGER: undeployed(1)
CASTIRON-IA-MIB::ciIaProjEntryNbrRunning.98304 = Gauge32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrRunning.98305 = Gauge32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrCompleted.98304 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrCompleted.98305 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrErrored.98304 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryNbrErrored.98305 = Counter32: 0
CASTIRON-IA-MIB::ciIaProjEntryTimePublished.98304 = STRING: 2009-6-12,16:36:20.0,+0:0
CASTIRON-IA-MIB::ciIaProjEntryTimePublished.98305 = STRING: 2009-6-12,16:36:20.0,+0:0
Quando informações são mapeadas usando o comando snmptable, elas são exibidas mais claramente, conforme mostrado no exemplo a seguir:
$ snmptable -v 2c -c public -M "+/home/choller/mibs" -m "+CASTIRON-IA-MIB" flintstone2 ciIaProjectTable
SNMP table: CASTIRON-IA-MIB::ciIaProjectTable

 PEN*                 PEV PEC                  PES          PER COM PEE		PETP
 OnlineLicensing      1.0 Default              undeployed   0   0   0    2009-6-12,16:36:20.0,
                                                                         +0:0
 OnlineLicensing      1.0 OnlineLicensingClone undeployed   0   0   0    2009-6-12,16:36:20.0,
                                                                         +0:0

*Table Key: PEN=ciIaProjEntryName, PEV=ciIaProjEntryVersion, PEC=ciIaProjEntryConfig, 
 PES=ciIaProjEntryState, PER=ciIaProjEntryNbrRunning, COM=ciIaProjEntryNbrCompleted, 
 PEE=ciIaProjEntryNbrErrored, PETP=ciIaProjEntryTimePublished

Observe que esses exemplos usam nomes textuais em vez de OIDs. Como uma função do MIB é mapear entre o OID e o nome textual, você não deverá precisar usar os OIDs em uma base regular.