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

