Nagios e Raspberry Pi: Monitore a rede local - MakerHero

Monitore a rede local com Nagios e Raspberry Pi 5

O advento da Internet das coisas (IoT) e seus dispositivos, contribuíram para que o monitoramento da rede e seus componentes, antes exclusividade de grandes empresas e universidades, pudesse ser útil também em residências e pequenas empresas. Afinal, como saber se os dispositivos IoT estão funcionando corretamente? A resposta é simples: se são IoT, eles têm endereço IP, e se têm endereço IP podem ser monitorados. Dito isso, a proposta desse post é tornar a Raspberry Pi em um servidor de monitoramento da rede local e seus componentes, buscando garantir o funcionamento dos dispositivos e seus serviços, além de notificar via e-mail em caso de falha. Para isso usaremos o software Nagios na Raspberry Pi, considerado padrão da indústria em software de monitoramento.

Material necessário

Para realizar este projeto, vamos precisar de :

Nos cartões SD é necessário estar gravado o sistema operacional Raspbian, de preferência o Lite. Qualquer dúvida de como isso deve ser feito, você pode consultar este post.

Configurando o Nagios na Raspberry Pi

Para começar precisamos de algum tipo de acesso ao terminal, seja remoto via ssh ou local via teclado. Tudo certo? Então vamos lá!

Vamos começar pelos pré-requisitos.

É uma boa prática instalar pacotes pelo gerenciador de pacotes da distribuição, no caso do Raspbian o apt. Entretanto, em alguns casos esses pacotes podem estar obsoletos, caso do Nagios. Por esse motivo, abriremos uma execeção e instalaremos o Nagios na Raspberry Pi a partir do código fonte. O Nagios possui duas versões: Nagios XI (enterprise e paga) e o Nagios Core (código aberto e grátis), usaremos o Nagios Core.

Baixar o Nagios.

Compilar.

Criar o usuário e grupo nagios e adicionar o usuário www-data ao grupo nagios.

Instalar os arquivos binários, CGIs e HTML.

Instalar o serviço e configurar para inicializar no boot do sistema.

Instalar o modo de comando.

Instalar exemplos de arquivos de configuração.

Instalar arquivos de configuração e ativar módulos do Apache.

Criar um usuário (nagiosadmin) e senha para efetuar login na página do Nagios.

Reinicar o Apache.

Iniciar o Nagios.

O Nagios agora está funcionando, para confirmar abra um navegador e digite o endereço IP ou nome do servidor – caso tenha um Servidor DNS autoritativo. Por exemplo.

http://192.168.0.5/nagios

http://rasp5/nagios

Serão solicitados o nome de usuário (nagiosadmin) e a senha criados anteriormente.

Imagem 1 - Autenticação

Então será apresentada a página do Nagios.

Imagem 2 - Nagios

Parabéns! você instalou o Nagios com sucesso.

Entretanto, ao clicar em Hosts ou Services (lado esquerdo) é possível observar mensagens de erro. Não se assuste, elas serão corrigidas assim que o Nagios Plugins for instalado, nosso próximo passo.

Imagem 3 - Nagios

Vamos começar pelos pré-requisitos.

Baixar o Nagios Plugins.

Compilar e instalar.

Caso tenha fechado, abra novamente um navegador e digite o endereço IP ou nome do servidor – caso tenha um Servidor DNS autoritativo. Por exemplo.

http://192.168.0.5/nagios

http://rasp5/nagios

Após alguns minutos, ao clicar em Hosts você verá que a mensagem de erro desapareceu.

Imagem 4 - Nagios na Raspberry Pi

O mesmo acontece ao clicar em Services.

Imagem 5 - Nagios na Raspberry Pi

Como é possível notar, o comportamento padrão do Nagios é monitorar a si mesmo (localhost).

Agora precisamos adicionar novos dispositivos e serviços a serem monitorados pelo Nagios. Para começar, vamos informar ao Nagios o diretório onde armazenaremos os arquivos de configuração dos dispositivos a serem monitorados.

É sempre uma boa prática fazer uma cópia do arquivo de configuração antes de editá-lo.

Vamos editar o arquivo.

Descomentar a linha 51.

E criar o diretório.

É aqui que começa a diversão, vamos criar os arquivos de configuração para os dispositivos.

Como exemplo de dispositivos a serem monitorados, usaremos duas Raspberry Pi’s chamadas de rasp1 e rasp2, e monitoraremos apenas o serviço Ping – que checa a conectividade.

Para rasp1, edite o arquivo.

E inclua o conteúdo (fique atento aos comentários!).

Para rasp2, edite o arquivo.

E inclua o conteúdo (fique atento aos comentários!).

Agora é só reiniciar o Nagios.

Caso tenha fechado, abra novamente um navegador e digite o endereço IP ou nome do servidor – caso tenha um Servidor DNS autoritativo. Por exemplo.

http://192.168.0.5/nagios

http://rasp5/nagios

Após alguns minutos, ao clicar em Hosts você verá.

Imagem 6 - Host Nagios

E ao clicar em Services.

Imagem 7 - Service Nagios

Legal, agora além de monitorar a si mesmo (localhost), o Nagios também está monitorando mais dois dispositivos (rasp1 e rasp2).

Mas ainda pode ficar melhor, vamos configurar o Nagios para enviar notificações via e-mail em caso de falha e recuperção dos dispositivos e seus serviços.

Para começar, vamos fazer uma cópia do arquivo de configuração antes de editá-lo.

Editar o arquivo.

E comentar a linha 76.

O comentário na linha 76 é autoexplicativo.

Ou seja, ao comentar a linha 76, o valor da variável notification_period será herdado do template generic-host (linha 58), nesse caso 24×7. Pois embora o comentário sobre os administradores de Linux seja verdade :). É interessante que as notificações sejam enviadas a qualquer hora.

Agora vamos fazer duas pequenas alterações no arquivo de comando do Nagios, corrigindo o comandos que enviam as notificações.

Vamos novamente fazer uma cópia do arquivo de configuração antes de editá-lo.

Editar o arquivo.

E modificar as linhas 29 e 37, substituindo /bin/mail por /usr/bin/mail.

Finalmente, vamos informar ao Nagios para qual email as notificações serão enviadas.

Sempre fazer uma cópia do arquivo de configuração.

Editar o arquivo.

E modificar a linha 32, substituindo nagios@localhost por seu email.

Agora é só reiniciar o Nagios.

Muito bem, definimos basicamente quando (notification_period) e para qual email ([email protected]) as notificações serão enviadas.

É preciso agora definir quem vai enviar essas notificações. Para isso, usaremos o Postfix, um servidor de email, também conhecido como agente de transferência de emails (MTA – Mail Transfer Agent). O Postfix é uma solução completa, fazendo analogia, seria o mesmo que ter uma agência dos Correios em casa, um exagero não?. Ele também é flexível, e pode trabalhar como retransmissor (relayhost), nosso motoboy. Vai funcionar assim: você (Nagios) prepara a encomenda (notificação) e o motoboy (Postfix) leva até os Correios (Gmail) que entrega ao destinatário ([email protected]). Obviamente, que será necessário possuir uma conta de email do Gmail.

Configurando o Postfix

Vamos começar instalando os pacotes.

No processo de instalação irão aparecer duas telas de configuração, mantenha os valores padrão.

Imagem 8 - Postflix

Imagem 9 - Postflix

Agora vamos criar um arquivo.

E adicionar as informações relacionadas a conta do Gmail.

Gerar um arquivo de hash para o Postfix.

E ajustar as permissões dos arquivos.

Fazer uma cópia do arquivo de configuração do Postfix.

Editar o arquivo.

Modificar a linha 39.

E a linha 40, substituindo 192.168.0 pelos três primeiros octetos da sua rede.

E adicionar o conteúdo abaixo no final do arquivo.

Agora é só reiniciar o Postfix.

Para testar basta desligar um dos dispositivos monitorados pelo Nagios. Na configuração padrão do Nagios, em aproximadamente 10 minutos você receberá um email como esse.

Imagem 10 - Nagios na Raspberry Pi

E sua página do Nagios ficará assim quando clicar em Hosts.

Imagem 11 - Nagios na Raspberry Pi

E assim assim quando clicar em Services.

Imagem 12 - Nagios na Raspberry Pi

Curtiu monitorar a rede local com Nagios e Raspberry Pi? Ajude-nos a melhorar o blog, participe com a sua sugestão, dúvida ou comentário aqui embaixo.

Até a próxima!

Faça seu comentário

Acesse sua conta e participe

5 Comments

  1. Gostei muito de seu tutorial. segui e achei muito legal. fiz a instalação seguindo seus passos.

    Quero usar o Raspberry para monitorar quando meu provedor deixa de me servir, assim a cada vez que cair minha internet, o nagios me alarme e contabiliza o tempo de indisponibidade. poderia me ajudar?

  2. Boa noite, amigo. Gostaria de saber se precisa fazer alguma configuração adicional no postfix para que ele envie os email para o gmail, pois fiz igual ao que você fez e não está chegando os emails e verificando os logs do postfix vejo um erro de rede não alcançada. Você poderia me ajudar aqui, por favor?

  3. Tive o seguinte erro : no passo de compilação
    ./configure –with-httpd-conf=/etc/apache2/sites-enabled make all

    configure: WARNING: you should use –build, –host, –target
    configure: WARNING: you should use –build, –host, –target
    checking for a BSD-compatible install… /usr/bin/install -c
    checking build system type… Invalid configuration make': machine make’ not recognized
    configure: error: /bin/bash ./config.sub make failed

    Edson Junior Della Valentina Gervazio
    1. Corrigindo:

      ./configure –with-httpd-conf=/etc/apache2/sites-enabled

      make all