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