Monitorando Serviços com SNMP
O SNMP (do inglês Simple Network Management Protocol - Protocolo Simples de Gerência de Rede) é um protocolo para gerenciamento de ativos de rede. Com o SNMP é possível monitorar diversos fatores de equipamentos de rede, como portas desligadas, nível de tráfego, estado de conexões, entre outras.
O FAN Nagios possui todas as ferramentas necessárias ao bom uso dos recursos do SNMP, que serão descritos neste documento da forma mais prática possível.
Para informações mais detalhadas a respeito do SNMP, recomendo a página SNMP (inglês).
O SNMP trabalha com uma arquitetura onde temos o serviço SNMP rodando em uma máquina ou equipamento (agente) e softwares que farão a leitura das informações (gerentes).
O monitoramento de servidores Windows ou Linux é facilitado pelos plugins NSCLIENT++ e NRPE, uma vez que facilita diversas atividades. Em casos de equipamentos de rede, como impressoras, switchs ou roteadores, a instalação de um plugin é impraticável. Nesses casos o SNMP é muito útil, já que ele disponibiliza uma série de variáveis para o acompanhamento do estado geral do dispositivo.
Um dos usos propostos ao SNMP é o monitoramento de impressoras de rede. Vamos a um cenário comum em muitas empresas:
As impressoras de rede, em ambientes corporativos, possuem o que chamamos de suprimentos, que nada mais são do que os toners, cilindros e demais peças que devem ser substituídas de tempo em tempo. Em muitos casos, a empresa realiza a contratação de serviços de outras empresas especializadas em gestão de impressão, alugando equipamentos e gerenciando o parque de máquinas. Em muitos momentos, ao esgotar o toner, por exemplo, a impressora pára de imprimir e exibe um aviso de erro. O usuário precisa entrar em contato com a equipe de suporte e esta, trocar o suprimento.
Um experimento interessante pode ser feito utilizando o FAN Nagios para monitorar o estado dos suprimentos da impressora. Imagine a situação melhorada: o usuário não solicita a troca do toner, mas a troca acontece mesmo assim, antecipando o erro.
Os pré-requisitos para esta situação são:
- Um servidor com FAN Nagios configurado e funcionando
- Uma impressora de rede com suporte a SNMP
- Paciência para encontrar os dados necessários
Primeiramente, precisamos verificar se o SNMP está disponível na impressora. Para isso, acesse o site de configuração da impressora e verifique nos menus. Esta parte varia de impressora para impressora, portanto, este ponto deverá ficar por sua conta, já que esta é uma tarefa ingrata. Nem todo fabricante utiliza nomenclatura padrão para estas informações.
Após a verificação do SNMP habilitado, vamos tentar identificar quais valores pertencem aos suprimentos que desejamos monitorar. Para facilitar este processo, utilize a ferramenta de linha de comando netsnmp (http://sourceforge.net/projects/net-snmp/). Instale este utilitário no seu pc com windows e siga os passos adiante:
Observação: o FAN Nagios esta pronto para trabalhar com MIBs (arquivo com os componentes do SNMP para facilitar este processo) Neste nosso tutorial, não vamos utilizar MIBs, mas sims descobrir o valor do SNMP na raça.
Para listar os objetos do SNMP, acesse o prompt de comando e digite (após instalar o netsnmp)
snmpwalk -c public -v1 IP_DO_DISPOSITIVO
Note a quantidade de dados que são retornados pelo comando. Estes são todos os objetos SNMP disponíveis no equipamento. Precisaremos encontrar os valores referentes aos suprimentos, para isso, o comando fica inútil neste formato. Utilizaremos um redirecionador para montar um arquivo texto que contenha os objetos:
snmpwalk -c public -v1 IP_DO_DISPOSITIVO > c:\temp\snmp.txt
Abra o arquivo que foi gerado em c:\temp\snmp.txt (fica a critério a forma de abrir. Se quiser uma dica, digite: notepad c:\temp\snmp.txt).
Abra seu browser e entre na pagina de configuração da impressora (geralmente apontando para o endereço IP da mesma):
Note que o nível de toner está em 100%. É este valor que iremos procurar no arquivo gerado pelo comando SNMPWALK:
Anote o valor do objeto SNMP: mib-2.43.16.5.1.2.1.2
Uma pequena observação sobre este nosso caso:
Os valores podem não bater. A configuração do SNMP varia de máquina para máquina. O mais correto é obter o manual ou a listagem dos objetos para que este trabalho seja mais ágil e simples. Caso não seja possível, esta maneira é a mais trabalhosa, mas é valida para a grande maioria dos equipamentos.
Com esta impressora em especifico, não é simples assim de encontrar o nivel de toner. Infelizmente, sem uma tabela de conversão dos valores do SNMP, é bastante chato conseguir encontrar o valor correto. Uma técnica que eu constumo utilizar, principalmente com impressoras, é extrair um arquivo, guarda-lo e retirar novamente depois de alguns dias. Comparando os dois arquivos, eu tenho uma relação do que foi alterado nesse tempo e consigo identificar o valor correto. Não é a solução mais elegante mas pode ser aplicada em ultimo caso. Com Switchs de rede e demais equipamentos podemos fazer algo parecido: retiro o arquivo antes, desligo uma porta ou retiro um cabo e vejo o que foi alterado.
Para efeito do tutorial, deixei os prints como estão, mas o valor correto é mib-2.43.11.1.1.9.1.1
Com o objeto SNMP anotado, voltemos ao FAN Nagios, entramos no Centreon e vamos adicionar um novo serviço.
Clique em Configuration, dentro do Centreon e vá até Services e clique em Add para adicionar este novo serviço:
Complete os dados da tela conforme a imagem:
Lembrando que, na opção Check Command, escolha check_snmp (este é o comando que será utilizado pelo Nagios para monitorar este serviço). Coloque o ID do SNMP anotado anteriormente e defina os valores para os alertas de estado. Neste nosso exemplo colocamos 50 para alerta e 10 para critico:
Lembre-se de associar este Serviço a algum HOST. Este ponto é muito importante, já que um serviço não pode existir sem um host atribuido. Portanto, você precisa adicionar o host da impressora antes de executar este passo (desculpe avisar isso só agora :)
Clique na guia Relations para atribuir um host:
Clique em SAVE e seu monitoramento por SNMP está pronto.
Por fim, é preciso apenas exportar as configurações do Centreon para o Nagios: dentro de Configuration, selecione a guia Monitoring Engines. Selecione os campos Move Export Files e Restart Nagios e clique no botão Export.
Agora voce pode entrar no Nagios e verificar o status deste serviço recem cadastrado.