Monitoring by SNMP

Contents

Introdução

Antes de continuar é necessário ter em mãos o endereço IP, comunidade e a versão que o equipamento teoricamente responde por SNMP.

Pode utilizar um simples teste: Exemplo:

[otto@rocket ~]$ snmpwalk -v<Versão> -c <Comunidade> <Endereço IP> sysdescr

Onde retorna a descrição do equipamento.

Adicionando MIB's no OpMon

Para adicionar as Mibs no OpMon, basta copia-las para o diretório /usr/share/snmp/mibs Exemplo:

[otto@rocket ~]$ sudo mv Downloads/<NOME DA MIB>.mib /usr/share/snmp/mibs/

Consultando uma MIB específica

Nem sempre o nome da MIB é o nome do arquivo ".mib". Exemplo:

[otto@rocket ~]$ grep DEFINITIONS /usr/share/snmp/mibs/ms.mib
COMETMS-MIB DEFINITIONS ::= BEGIN

O arquivo se chama ms.mib, mas o nome da mib é COMETMS-MIB Agora que sabe o nome da MIB, pode fazer a consulta: Exemplo:

[otto@rocket ~]$ snmpwalk -v<Versão> -c <Comunidade> <Endereço IP> -m <Nome da MIB> enterprises

O item enterprises vai mostrar toda a arvore proprietária da MIB.

Terá um retorno mais ou menos assim: (O exemplo é de um nobreak)

[otto@rocket ~]$ snmpwalk -v<Versão> -c <Comunidade> <Endereço IP> -m PowerNet-MIB enterprises
PowerNet-MIB::upsBasicIdentModel.0 = STRING: "MGE Galaxy 3500 20 kVA"
PowerNet-MIB::upsBasicIdentName.0 = STRING: "APC_T3"
PowerNet-MIB::upsAdvIdentFirmwareRevision.0 = STRING: "956.0608.D"
PowerNet-MIB::upsAdvIdentDateOfManufacture.0 = STRING: "03/04/11"
PowerNet-MIB::upsAdvIdentSerialNumber.0 = STRING: "PS1110143205"
PowerNet-MIB::upsAdvIdentFirmwareRevision2.0 = ""
PowerNet-MIB::upsBasicBatteryStatus.0 = INTEGER: batteryNormal(2)
PowerNet-MIB::upsBasicBatteryTimeOnBattery.0 = Timeticks: (0) 0:00:00.00
PowerNet-MIB::upsBasicBatteryLastReplaceDate.0 = STRING: "04/01/01"
PowerNet-MIB::upsAdvBatteryCapacity.0 = Gauge32: 100
PowerNet-MIB::upsAdvBatteryTemperature.0 = Gauge32: 23
PowerNet-MIB::upsAdvBatteryRunTimeRemaining.0 = Timeticks: (198000) 0:33:00.00
PowerNet-MIB::upsAdvBatteryReplaceIndicator.0 = INTEGER: noBatteryNeedsReplacing(1)
PowerNet-MIB::upsAdvBatteryNumOfBattPacks.0 = INTEGER: 8
PowerNet-MIB::upsAdvBatteryNumOfBadBattPacks.0 = INTEGER: 0
PowerNet-MIB::upsAdvBatteryNominalVoltage.0 = INTEGER: 192
PowerNet-MIB::upsAdvBatteryActualVoltage.0 = INTEGER: 218


Consultando em todas as MIB's

Basta remover o nome da mib do comando no parâmetro -m e colocar a string ALL Segue exemplo:

[otto@rocket ~]$ snmpwalk -v<Versão> -c <Comunidade> <Endereço IP> -m ALL

Caso o equipamento seja proprietário neste comando acima talvez não retorno os resultados da(s) mib(s) do mesmo. Então utilize o comando abaixo:

[otto@rocket ~]$ snmpwalk -v<Versão> -c <Comunidade> <Endereço IP> -m ALL enterprises

Utilizando o check_snmp

Agora que já encontrou o que necessita, pode criar uma checagem para o elemento da MIB. Siga o exemplo abaixo: Digamos que o serviço a ser criado seja este da consulta feita acima: PowerNet-MIB::upsAdvBatteryTemperature.0 = Gauge32: 23

  • Obs.: Para saber como funciona o check_snmp, basta consultar o help do mesmo, pelo OpMon ou no Shell (ssh).

/usr/local/opmon/libexec/check_snmp --help

Exemplo de checagem:

/usr/local/opmon/libexec/check_snmp -H <Endereço IP> -P <Versão> -p <Porta (padrão é 161)> -o upsAdvBatteryTemperature.0 -l "Temperatura da bateria" -u Celsius -m ALL
Temperatura da bateria OK - 23 Celsius | PowerNet-MIB::upsAdvBatteryTemperature.0=23