Tutorial 1 – NagiosVision

Olá Pessoal, estava acessando o VOL (VivaoLinux.com.br) e encontrei um artigo sobre o Nagios escrito pelo Alessandro de Oliveira Faria (A.K.A. CABELO). Solicitei autorização do mesmo (Obrigado Cabelo 🙂  ) para copia-lo aqui.

Para informação:  Não criei apenas o link para não correr o risco da informação se perder!

Então com este se inaugura a seção TUTORIAL que aqui ficará os post com começo, meio e fim! 😉

Att.
Luciano Maia Cirilo
——————————————————————————————————————————

NagiosVision: Tem humanos perto do seu servidor. Neste documento apresento o NagiosVision, um plugin com o recurso de visão computacional baseado na biblioteca openCV, que utiliza todo poder do Nagios para reportar a detecção de padrão de objetos e faces presentes no vídeo ao vivo.

Por: Alessandro de Oliveira Faria (A.K.A. CABELO)

Introdução

O Nagios é uma poderosa ferramenta para gerenciamento e monitoramento de redes, serviço e estado de um determinado equipamento. Juntos aos recursos de relatórios de estado, problemas e alerta este pacote atende as necessidades de acompanhamento em diversos aspectos computacionais. Do recebimento de mensagens SMS em celulares até monitoramento em tempo real em smartphones, o Nagios atende todas as expectativas no que tange ao requisito alerta.

Como hobby de finais de semana e nas horas vagas, desenvolvi o NagiosVision com o objetivo de criar alertas baseado em comportamentos processados direto do vídeo ao vivo. Contagem de pessoas, análise de fluxo, prevenção a assaltos, análise de trânsito podem serem monitorados em tempo real com uma simples webcam junto ao poder e flexibilidade do Nagios.

Este documento foi baseado no Nagios NSCA, para maiores detalhes sugiro ler aqui no portal Viva o Linux no artigo publicado pelo Ander Ribeiro, sendo assim não entrarei em detalhes sobre a configuração e instalação do mesmo. Vale a pena mencionar que o uso do recurso NSCA somente é necessário quanto utilizando alertas passivos.

Requisitos

A seguir os requisitos para o bom funcionamento do plugins NagiosVision.

  • Webcam;
  • Biblioteca OpenCV
  • Nagios
  • Nagios NSCA (opcional)

A seguir, algumas imagens para ilustrar a funcionalidade do plugin NagiosVision em ação:

Download e instalação

O download deve ser efetuado na página do projeto:

O plugin também foi incluído ao projeto oficial do Nagios:

http://exchange.nagios.org/directory/Plugins /Security/NagiosVision/details

Logo a seguir descompacte o pacote .tar.gz e compile com o tradicional comando make e make install:

$ tar -zxvf nagiosvision-0.91.targ.gz
$ cd nagiosvision/
$ make
$ gcc -Wno-write-strings `pkg-config –libs opencv` `pkg-config –cflags opencv` nagiosvision.cpp -o nagiosvision
$ sudo make install

No servidor Nagios com o NSCA server configurado, edite o arquivo do hosts que será monitorado.

$ sudo vi /etc/nagios/objects/NOME-HOST.cfg

define service {
        use                             generic-service
        host_name                       NOME-HOST
        service_description             checkNagiosVision
        active_checks_enabled           0
        passive_checks_enabled          1
        check_command                   check_ping
        }

Para o script ser executado a cada 1 minuto, insira a linha abaixo no arquivo /etc/crontab na máquina com o nsca-client instalado.
Repare que o caminho do script deve corresponder ao local onde descompactamos o código fonte.

*/1 * * * *  root /root/nagiosvision/chkNagiosVision.sh

Para finalizar, edite o arquivo chkNagiosVision.sh e altere a variável NAGIOS_SERVER e insira o seu e-mail para receber o alerta substituindo a string “yourmail@yourdomain.com”.

IMPORTANTE:

  • O parâmetro -C 0 representa o índice do dispositivo de captura.
  • Já o parâmetro -w 60 define um alerta Warning quando o tamanho da face for maior que 60 pixels.
  • Para finalizar o parâmetro -c 120 define um alerta Critical quando o tamanho da face for maior que 120 pixels.

Abaixo o conteúdo do script chkNagiosVision.sh, após os devidos ajustes, com a execução a cada minuto do crontab, o NagiosVision passa a disparar os estados de alerta.

#!/bin/bash

NAGIOS_SERVER=10.0.0.69
HOST_IN_NAGIOS=$(hostname)
cd /usr/lib/nagios/plugins/
COMAND_RESULT=`/usr/lib/nagios/plugins/nagiosvision -C 0 -w 60 -c 120 2> /dev/null`
RESULT_CODE=$?
SERVICE_NAME="checkNagiosVision"

if [ $RESULT_CODE != 0 ]; then
echo "NAGIOS Vision ALERT: Human in your server." | /bin/mail -a /tmp/face-found.jpg -s "ALERT: Human in  your server" yourmail@yourdomain.com
fi

echo "$HOST_IN_NAGIOS;$SERVICE_NAME;$RESULT_CODE;$COMAND_RESULT" | send_nsca -H $NAGIOS_SERVER -p 5667 -c  /etc/nagios/send_nsca.cfg -d ";"

Espero que este documento simples e objetivo ajude a instalação e configuração do projeto NagiosVision, que sofrerá muitas implementações baseadas na minha disponibilidade temporal. Como sempre menciono… Colaborar atrai amigos, competir atrai inimigos…

Para finalizar, críticas e sugestões: cabelo at opensuse.org
Sobre o autor: http://www.netitec.com.br/alessandro


Artigo Publicado no site: www.vivaolinux.com.br

Anúncios

  1. Deixe um comentário

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s

%d blogueiros gostam disto: