Newsletter
Nome:
E-mail:

Artigos

| TI24x7 Cursos Online

NagiosVision: Tem humanos perto do seu servidor

06/04/2011

NagiosVision 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.

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 pesquisar na internet sobre a tecnoloiga NSCA e seu respectivo funcionamento, 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.
logonagiosvision

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:

face
nagios

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@opensuse.org
opensuse
Sobre o autor: http://pt.opensuse.org/Utilizador:Cabelo


Colunista

Alessandro de Oliveira Faria

Sócio-fundador da empresa NETi TECNOLOGIA fundada em Junho de 1996 (http://www.netitec.com.br), empresa especializada em desenvolvimento de software e soluções biométricas, Consultor Biométrico na tecnologia de reconhecimento facial, atuando na área de tecnologia desde 1986 assim proporcionando ao mercado soluções em software nas mais diversas linguagens e plataforma, levando o Linux a sério desde 1998 com desenvolvimento de soluções open-source, diversos documentos técnicos disponibilizado na internet, membro colaborador da comunidade Viva O Linux, mantenedor da biblioteca open-source de vídeo captura entre outros projetos e openSUSE Member.
© Copyright 2011 - Todos os direitos reservados. Proibida a reprodução parcial ou total do conteúdo deste site.
Como Funciona Formas de Pagamento Logo Ebit Compra Segura

TI 24x7 - O Maior portal de cursos online especializado em TI do Brasil