Monitoração via SNMP com Nagios+Check_MK

nagios+check

O protocolo SNMP é essencial para quem trabalha com redes, desde verificar informações até gerenciar os mesmos, como podemos ver neste excelente artigo sobre o protocolo SNMP do Ricardo Pinheiro aqui. Neste artigo vemos que esse protocolo pode ser usado para verificação de dados de hosts e equipamentos usando apenas permissão de leitura de informações, assim podemos fazer a monitoração fazendo uso da versão 1 do protocolo e atingimos até equipamentos mais antigos.

Primeiro acesse a interface do Check_MK e entre no menu do Wato e crie os grupos que você precisa (não é obrigatório, mas faz com que a arrumação fique melhor). Essa criação de
Eu criei os grupos: “Equipamentos de Rede” e “Impressoras de Rede”

check_mk-groups-1

Agora vá em Main Menu, depois em Hosts & Folders e crie um novo host.

Preencha com os dados do host: Nome, Alias, IP e não esqueça que a monitoração não é pelo agente do check_mk, mas por SNMP. Afinal de contas não tem como instalar o agente nas impressoras, roteadores e switchs da sua rede :-P.

check_mk-snmp1

Feito isso vá clique em Save & go to Services, aceite os serviços que deseja monitorar e salve. Não esqueça de confirmar as alterações em Activate Changes.

check_snmp-2

check_snmp-3

Vejamos o resumo do serviços deste host:
check_snmp-4

Como podemos ver esse no-break tem sensor de temperatura externa, não só temperatura da bateria, assim podemos monitorar como está a sala de servidores, se é necessário diminuir a temperatura do condicionador de ar, etc…

Agora vamos adicionar um Switch para monitoração, inclusive das portas e da velocidade do mesmo:
check_snmp-5

Vejamos o resumo do serviços deste host:
check_snmp-6

Podemos ver cada porta do Switch com a velocidade da mesmo no momento, utilização da cpu do equipamento, etc…

Vamos adicionar uma impressora de rede:
check_snmp-7

Lembrando que em alguns tipos de impressora de rede a monitoração via SNMP mostra até nível de tinta. Assim temos alertas que a tinta ou toner está acabando antes do usuários reclamar.

Vejamos o resumo do serviços deste host:
check_snmp-8

Na tela principal de Grupos do Check_MK teremos algo do tipo:
check_snmp-9

Tudo muito simples e fácil correto? Claro que é, mas saber quais hosts na rede aceitam SNMP já não é tão simples… ou é? Como estamos falando de Linux, um pouco de conhecimento de shell script e temos um modo de monitorar todos os hosts e descobrir qual deles tem SNMP.

Esse script testa os ips da rede 192.168.1.0/23 ou seja de 192.168.1.1 até 192.168.2.255, cada hosts que responder ao SNMP terá o IP, tipo de equipamento e nome gravados no arquivo /tmp/hosts-snmp para que com essas informações possamos criar as entradas no Wato.

Para funcionar instale o pacote snmp (ou snmp-utils dependendo da distribuição), vamos utilizar o comando snmpwalk para a pesquisa com a versão 1 do protocolo ( -v 1 ) e com a comunidade public ( -c public ), que é a mais comum de existir nos equipamentos ( pelo menos no modo somente leitura) .

# vi /usr/local/bin/test-snmp.sh

#!/bin/bash

if [ -f /tmp/hosts-snmp ]; then
	rm /tmp/hosts-snmp
fi
for REDE in 1 2 ; do
	for ((A=1;A<=255;A++)); do
		snmpwalk -c public -v1 192.168.$REDE.$A 
		if [ "$?" -eq "0" ]; then
			TIPO=$(snmpwalk -c public -v1 192.168.$REDE.$A | grep iso.3.6.1.2.1.1.1.0 | awk -F : '{print $2}' )
			NOME=$(snmpwalk -c public -v1 192.168.$REDE.$A | grep iso.3.6.1.2.1.1.5.0 | awk -F : '{print $2}' )
			echo "192.168.$REDE.$A $TIPO $NOME" >> /tmp/hosts-snmp
		fi
	done
done


# chmod -v 755 /usr/local/bin/test-snmp.sh

# ./usr/local/bin/test-snmp.sh

Agora sabendo quais são os equipamentos podemos monitorar os que nos interessam ou todos 😉

Não esqueçam de comentar e recomendar nosso Portal.

  • Marcio Rodrigues

    Perfeito, já apliquei aqui nos 2 switches da empresa, valeu por postar.

  • cnascimento

    Vagner,

    Boa a série de posts sobre o nagios + check_mk.

    Abraços

  • Grande Vagner mais um ótimo artigo cara, instalei o ambiente de testes e agora só falto configurar para envio de e-mails mesmo, pois nunca instalei o postfix, mais esse fim de semana vou brincar um pouco com isso.

    Abração.

  • Pedro Gustavo Dias Diogenes

    Fenomenal. Eu fiz tudo, desde o coemço e ficou muito bom.

    Parabens Vagner.

  • Perfeito,

    Mas onde vc configurou a comunidade do switich no check_mk?

    • Oliveira,

      Não preciso configurar comunidade no check_mk, apenas apontar para o host.

  • Em servidor linux o check_mk tem um bug, ele diz que a interface esta up mesmo estando Down! isso é um problema sério! em switchs e routers deve acontecer a mesma coisa!

    • Oliveira,

      No Linux e no Switch eu não tenho nenhum erro com SNMP, mostra apenas as interfaces ativa e quando elas caem ele mostra DOWN.

      Uso Ubuntu 12.04 como servidor e clientes Debian, switch 3com, dLink, planet…

  • Vagner,

    Realmente fiz os testes aqui, e você esta certo! Agora onde configurar os threshold? Ex: o link estara warning quando atingir 60% e critical 70%?

    • Oliveira,

      Quando faço pelo WATO fica nas configurações de cada serviço.

  • Mais uma pergunta! se o ativo usar a versão 2c ou 3 do protocolo SNMP, não funciona com ela? ela consulta apenas na versão 1?

    • Funciona sim, eu usei versão 1 pois os aparelhos que testei aqui, a maioria é antigo e tem apenas suporte a versão 1. Funciona com 2 e 3 além de poder autenticar a checagem.

  • Danilo Lemos

    Vagner, meus parabéns!

    Por gentileza, quando possível, mostre-nos como adicionar dispositivos com arquivos MIB.

    Obrigado.

  • Reinaldo Junior

    Wagner Bom dia,

    Testei em alguns switchs aqui na empresa e monitorou belezinha. Mas tem um modelo de switch novo da HP que não monitora de jeito nenhum. É um HP A5500-24G-PoE, ele por padrão vem com o SNMP desabilitado. Já habilitei, criei usuário, comunidade, fiz várias alterações e nada, nem a V1.

    Tem alguma idéia o que pode ser?

    Muito obrigado pelo artigo

    • Reinaldo,

      Por acaso você tentou monitorar manualmente com o comando snmpwalk?

      Se apareceu manualmente algum dado do switch o snmp está funcionando e talvez seja problema com o snmp client do check_mk, mas se não aparece nada deve ser alguma configuração do switch que tem que ser feita a mais do que você está fazendo.
      Tive esse mesmo problema com alguns switchs cisco aqui, tive que mexer em outros lugares para tudo funcionar.

      Abraço.
      PS: é Vagner com V 🙂

      • Reinaldo Junior

        Vagner, desculpas pelo erro no nome.. 🙂

        Utilizando snmpwalk não responde, deve ser alguma configuração no próprio switch mesmo. Vou dar uma olhada na documentação do equipamento, e tentar acertar isso. Assim que tiver algum progresso postarei para compartilhar o caso.

        Obrigado novamente pelo artigo e pela resposta.

      • Reinaldo Junior

        Bom, tive uma “evolução”…rs

        Estou fazendo o teste na linha de comando utilizando snmpwalk, e utilizando o comando com o parâmetro -c Monitoramento , então criei essa “Community” Monitoramento no console de adm do switch SNMP.

        Minha dúvida é como o nagios trata essa requisição com o switch. coloquei já “root”, “nagiosadmin”, só consigo resposta manualmente. Quando acrescento via CHECK_MK sem chance.

        Estou na batalha, mas alguma “evolução” postarei.

        Grato.

        • Reinaldo,

          Se já houve uma resposta com essa comunidade, tenta criar uma com o nome public que é o usado por padrão no Check_MK.

          Abraço.

        • jonas

          Reinaldo por padroa check_mk verifica a community public, caso queira atribuir outros nomes proceda
          edit ao arquivo main.mk
          cd /etc/check_mk
          vi main.mk
          ### caso seja uma comunidade padrao proceda

          snmp_default_community = “NOME DA COMNUNITY”

          ou se quiser nome diferentes

          snmp_communities = [
          ( “NOME DA COMUNIDADE”, [“NOME DISP/MAQUINA”] ),
          ( “NOME DA COMUNIDADE2”, [“NOME DISP/MAQUINA”],
          ( “NOME PADRAO”, ALL_HOSTS ),
          ]

          Salve depois tente realizar um teste :
          check_mk -c main.mk -D NOME DA MAQUINA
          repare no cabeçalho que tera o nome da sua comunidade, e logo abaixo depois de um certo tempo a coleta, caso ja tenha configurado no wato..

          Valeu

      • Reinaldo Junior

        Opa, consegui…rs

        Adicionei a “Community” public no switch.

        SECESSO.

        • Reinaldo,

          Parabéns, as vezes as simples soluções são as melhores.

          Abraço.

  • Reinaldo Junior

    Vagner,

    Sei que estou parecendo chato, mas acredito que algumas dúvidas mesmo que básicas minhas podem ser de outros também. então vamos lá.

    É o seguinte: Consegui adicionar meus Switchs, e coloquei apenas a porta que está no meu LINK. Show de bola. Mas o meu objetivo é ter um monitoramento de velocidade, e consumo.

    Está gerando alguns gráficos, mas já procurei na documentação do próprio CHECK_MK e não tem tipo uma legenda. acredito que “IN” é entrada de dados na porta e “OUT” é a saida, blz pq esse eu já “mato a questão da velocidade. mas e o consumo como vou medir isso no caso de querer um relatório de consumo de 7 dias.

    Obrigado.

  • Olá, muito bom os seus posts, parabéns!!!
    Olá, estou iniciando meus estudos a respeito do Nagios, e tenho a seguinte duvida:
    Imagine que em um endereço tenho uma conexão com IP dinâmico (velox), onde o próprio modem é o servidor DHCP/DNS da rede, que só tem uma impressora e um terminal (PC); Pergunto, como eu faço para monitorar esses três dispositivos, sendo que só consigo instalar o cliente Nagios no PC, já o modem ADSL e a Impressora, mesmo tendo ambos o protocolo SNMP, não tem como instalar o cliente e também o IP do modem muda constantemente?
    Obs. Habilitei o dyndns no modem e acesso os dispositivos da rede via internet.
    Agradeço a ajuda!!!

    • Wanderton,

      No seu caso não daria para monitorar o adsl e a impressora por causa de não ter agente. Eu recomendo usar o Multisite do Check_MK para ter uma ligação de um server instalado na filial (coletando na filial) o da sede (principal).

  • Junior Cesar

    Bom dia! Muito bom os posts. Hoje utilizo Icinga e Cacti, mas através dos posts estou com uma VM rodando o Check_Mk, mas estou com uma dúvida, tenho um equipamento da APC Netbotz 320, monitoramento temperatura e humidade Data Center, onde já adicionei no check_mk via wato e snmp. Ele faz a leitura mas não está pegando a de temperatura e humidade. Se dou um comando snmpwalk com o OID específico ele me retorna o valor. Não sei como adiciono no Check_Mk, alguém teria alguma informação. Agradeço desde já.

  • Luiz Felipe

    Vagner,

    Primeiramente excelente seus posts sobre check_mk, extremamente didáticos. Tenho uma dúvida, há a possibilidade de alterar a porta de monitoramento do servidor check_mk com os hosts monitorados, no caso a porta 6556 para uma porta porta ex: 6525?