terça-feira, 16 de setembro de 2008

Ativando a monitoração de discos com o SNMPD

O SNMP (do inglês Simple Network Management Protocol - Protocolo Simples de Gerenciamento de Rede) é um protocolo de gerenciamento típico de redes TCP/IP, da camada de aplicação, que facilita o intercâmbio de informação entre os dispositivos de rede, como computadores, switches e quaisquer outros equipamentos que implementem o mesmo.

Muito usado em sistemas de monitoração (como Nagios, Zabbix, Zenoss, MRTG, entre outros), o SNMP permite acesso direto e rápido as informações sobre os recursos do servidor e ativos de rede tais como uso de memória, interfaces de rede, load, discos, tráfego de dados, etc...

Nesse post irei mostrar como configurar o SNMPD (daemon SNMP do Linux) para monitorar as partições de disco de seu sistema, e como fazer para obter dados sobre status e percentual de disco usado. Esse tipo de informação pode ser utilizada pelas ferramentas citadas acima, com o objetivo de alertar possíveis problemas, como por exemplo, partições que estão lotando.

Configurando o SNMPD

Para iniciar, estou supondo que o serviço snmpd está ativo e funcional. Não é objetivo desse post explicar como colocar o mesmo em funcionamento, mas caso você tenha dúvidas, pode colocar um comentário nesse post ou me enviar um e-mail.

Digamos que seja necessário monitorar as partições /, /home , /usr e /var.



Vamos imaginar que queiramos ativar o flag de erro assim que cada partição tiver no mínimo 500Mb livres. Para isso devemos colocar as seguintes linhas no arquivo /etc/snmp/snmpd.conf.

disk / 512000
disk /home 512000
disk /usr 512000
disk /var 512000

É importante prestar atenção a essa ordem de inserção das linhas, pois elas irão influenciar o OID. O OID é a porção da MIB que armazena um dado específico. É como se a MIB fosse uma tabela do Banco de Dados e o OID fosse a chave para encontrar um determinado registro na tabela. Através dele podemos obter o resultado específico do recurso monitorado no momento exato da consulta.

Com a configuração efetuada poderemos então obter duas informações de cada partição: o percentual de disco em uso e o flag de erro. O flag de erro será sempre 0 enquanto a partição tiver mais espaço do que foi configurado no arquivo snmpd.conf (no exemplo foi colocado 512Mb para cada partição). No momento que a partição possuir menos espaço livre que o configurado (512Mb no caso), a flag de erro passará a retornar 1 indicando que existe um problema a ser verificado (pouco espaço em disco).

Após alterar o arquivo snmpd.conf, deve-se reiniciar o serviço snmpd.

Obtendo os dados das partições

Para obter os dados das partições podemos usar a ferramenta snmpget. O snmpget é uma ferramenta que roda no console e que obtém o valor de um OID específico de um servidor.

Antes de mais nada é bom lembrarmos o seguinte:

/ - partição 1
/home - partição 2
/usr - partição 3
/var - partição 4

Para obter o retorno dos OIDs, devemos rodar o seguinte comando:

snmpget -c comunidade -v 1 servidor OID , onde:
  • comunidade é o nome da comunidade setada o snmpd. O valor default da mesma é public;
  • servidor é o IP ou nome do servidor a ser consultado;
  • OID é o OID a qual queremos obter o resultado associado;
Obtendo a flag de erro da partição

Em nosso exemplo, para obter a flag de erro da partição / no sistema local, podemos usar o comando:

snmpget -c public -v 1 localhost .1.3.6.1.4.1.2021.9.1.100.1

sendo que a OID para verificar a flag de erro é .1.3.6.1.4.1.2021.9.1.100.X, onde X é o número da partição a ser verificada (no exemplo X seria um número de 1 a 4, pois 4 partições foram configuradas no snmpd.conf). Como a partição verificada foi a /, X = 1.

O retorno do comando nesse caso foi:

UCD-SNMP-MIB::dskErrorFlag.1 = INTEGER: noError(0)

pois a partição / tem 3,3Gb livres.

Obtendo o percentual de uso da partição

Para obter o percentual de uso da partição /var no sistema local, podemos usar o comando:

snmpget -c public -v 1 localhost .1.3.6.1.4.1.2021.9.1.9.4

sendo que a OID para verificar o percentual de uso da partição é .1.3.6.1.4.1.2021.9.1.9.X, onde X é o número da partição a ser verificada (no exemplo X seria um número de 1 a 4, pois 4 partições foram configuradas no snmpd.conf). Como a partição verificada foi a /var, X = 4.

O retorno do comando nesse caso foi:

UCD-SNMP-MIB::dskPercent.4 = INTEGER: 18

ou seja, 18% da partição /var está em uso.

Finalizando...

Como podemos verificar o SNMP é um recurso muito poderoso que está disponível aos administradores de sistema em geral e deve ser analisado com muita atenção. Apesar de parecer meio complexo à primeira vista, esse protocolo se mostra bastante simples e intuitivo a medida que o admin vai se familiarizando com ele.

Em breve irei mostrar mais utilidades desse protocolo e também como fazer para integrá-lo com outras ferramentas, como Nagios e MRTG.

Leia/Visite também:


Nenhum comentário:

Postar um comentário