Monitorando por SNMP

Objetivo

Descrever como monitorar máquinas utilizando SNMP

Público-alvo

Destinado aos administradores do OpMon e as equipes de TI que necessitam realizar monitoramento por SNMP.

1) Introdução

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

Pode-se utilizar um simples teste: Exemplo:

[opuser@localhost ~]$ snmpwalk -v 2c -c public 192.168.10.2 sysdescr

Onde retorna a descrição do equipamento.

2) Adicionando MIB’s no OpMon

Para adicionar MIB’s no OpMon, basta copiá-las  para o diretório  /usr/share/snmp/mibs

Exemplo:

[opuser@localhost ~]$ sudo mv Downloads/*.mib /usr/share/snmp/mibs/

3) Consultando uma MIB específica

Nem sempre o nome da MIB é o nome do arquivo “.mib“, exemplo:

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

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

[opuser@localhost ~]$ snmpwalk -v 2c -c public 192.168.10.2 -m COMETMS-MIB enterprise

O item enterprises vai mostrar toda a árvore proprietária da MIB. Terá um retorno mais ou menos assim: (O exemplo é de um nobreak)

[opuser@localhost ~]$ snmpwalk -v 2c -c public 192.168.10.2 -m PowerNet-MIB
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

4) Consultando em todas as MIB’s

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

[opuser@localhost ~]$ snmpwalk -v 2c -c public 192.168.10.2 -m ALL

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

[opuser@localhost ~]$ snmpwalk -v 2c -c public 192.168.10.2 -m ALL enterprises

5) 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

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 192.168.10.2 -P 2c -p 161 -o upsAdvBatteryTemperature.0 -l "Temperatura da bateria" -u Celsius -m ALL
Temperatura da bateria OK - 23 Celsius | PowerNet-MIB::upsAdvBatteryTemperature.0=23
Updated on dezembro 23, 2016

Was this article helpful?