Instalação e Configuração do Ntop no Debian Squeeze

O NTOP é uma ferramenta para monitorar e gerenciar redes de computadores, além de ter muitos recursos que demonstram tudo através de gráficos e informações detalhadas que permitem com que haja interação entre usuários tem suporte para rodar em vários SO e monitora e gera relatórios sobre o tráfego e suporte dos hosts por estes protocolos:TCP/UDP/ICMP, (R)ARP, IPX, DLC, DECnet, AppleTalk, Netbios, TCP/UDP.

Ntop é uma ferramenta de monitoramento e gerência de rede para sistemas UNIX/Linux e Win32, e teve seu desenvolvimento e estudo na “University of Pisa”, na Itália.

E ai galera aqui eu vou abordar a instalação e configuração do Ntop para Debian Squeeze, eu não vou utilizar o ntop dos repositórios por que ele está com alguns bugs, com isso vou obter e compilar o Ntop do repositório SVN, é simples ;)

Prepare o seu sistema com o seguinte script http://wiki.douglasqsantos.com.br/doku.php/confinicialsqueeze_en para que não falte nenhum pacote ou configuração.

Agora vamos mandar atualizar os repositório e fazer um upgrade do sistema

aptitude update && aptitude dist-upgrade -y

Agora vamos instalar as dependências do ntop

aptitude install libtool automake autoconf libpcap-dev libgdbm-dev zlibc zlib-bin zlib1g-dev librrd-dev python-dev libssl-dev  -y
aptitude install geoip-bin geoip-database libgeoip-dev rrdtool rrdcollect rrdtool-dbg rrdtool-tcl python-rrd librrd-dev -y

Após preparar o seu sistema vamos instalar o subversion para obtermos uma copia dos fontes do ntop

aptitude install subversion -y

Agora vamos acessar o diretório que vamos armazenar os fontes

cd /usr/src

Agora vamos fazer um ckeckout do repositório

svn co https://svn.ntop.org/svn/ntop/trunk/ntop/

Agora vamos acessar o diretório do ntop

cd /usr/src/ntop

Agora vamos mandar gerar a configuração do ntop

./autogen.sh

Agora vamos mandar compilar ele

make

Agora vamos mandar instalar o ntop

make install

Agora vamos criar o usuário que o daemon do ntop vai utilizar

useradd -r -d /usr/local/share/ntop ntop

Agora precisamos criar alguns diretórios para o ntop

mkdir -p /usr/local/var/ntop/rrd/{flows,graphics,interfaces}

Agora precisamos acertar as permissões dos diretórios

chown -R ntop:ntop /usr/local/share/ntop
chown -R ntop:ntop /usr/local/var/ntop/

Agora precisamos recarregar as bibliotecas

ldconfig

Agora vamos iniciar o ntop para setar uma senha para o admin

ntop --set-admin-password=senha

Agora vamos criar um script para controlar o nosso daemon do ntop no script o que precisamos alterar se necessário é a interface que vamos monitorar no caso de ter mais de uma interface, caso tenha mais de uma interface podemos inserir várias separando por , ;)

vim /etc/init.d/rc.ntop
#!/bin/bash
### HABILITAR O DEBUG ###
#set -x
#trap read DEBUG
### FIM HABILITAR DEBUG ###
### BEGIN INIT INFO
# Provides:          rc.ntop
# Required-Start:    $network $remote_fs $syslog
# Required-Stop:     $network $remote_fs $syslog
# Should-Start:      $named
# Should-Stop:       $named
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: Ntop
# Description:       Script para controle do Daemon do NTOP
### END INIT INFO
# Site: http://wiki.douglasqsantos.com.br
# Autor: Douglas Q. dos Santos <douglas@douglasqsantos.com.br>
# Manutenção: Douglas Q. dos Santos <douglas@douglasqsantos.com.br>
### CORES UTILIZADAS NO SCRIPT ###
GREY="\033[01;30m"
RED="\033[01;31m"
GREEN="\033[01;32m"
YELLOW="\033[01;33m"
BLUE="\033[01;34m"
PURPLE="\033[01;35m"
CYAN="\033[01;36m"
WHITE="\033[01;37m"
CLOSE="\033[m"

### Comandos ###
NTOP="/usr/local/bin/ntop"
KILLALL="/usr/bin/killall"
PGREP="/usr/bin/pgrep"


### SINAL ENVIADO PARA O NTOP ###
SIGNAL="-15"

## NOME DO PROCESSO ###
NTOP_PROCESS="ntop"

### NTOP USER ###
NTOP_USER="ntop"

### LOG FACILITY ###
LOG="daemon"

### INTERFACES QUE VAMOS MONITORAR PODEMOS INSERIR VARIAS INTERFACES SEPARANDO ELAS POR , ###
INT="eth0"


### FUNCAO PARA CHECAR O RESULTADO DO COMANDO ###
CHECAR() {
if [ $? -eq 0 ]; then
 if [ $1 == "inicio" ]; then
     echo -e "${GREEN} [         NTOP INICIADO          ] ${CLOSE}"
  else
     echo -e "${RED}  [         NTOP PARADO            ] ${CLOSE}"
 fi
else
 echo -e -e "${RED}   [         NTOP FALHOU            ] ${CLOSE}"
fi
}


case $1 in
  start)
  NTOP_PID=$(${PGREP} -u ${NTOP_USER} ntop)
  if [  ! -z "${NTOP_PID}" ]; then
  echo -e "${GREEN} O NTOP JA ESTA RODANDO COM O PID: ${NTOP_PID}  ${CLOSE}"
  else
        echo -e "${GREEN} [         INICIANDO NTOP         ] ${CLOSE}"
  ${NTOP} -u ${NTOP_USER} -i ${INT} -d -L --use-syslog=${LOG} >> /dev/null
  CHECAR inicio
  fi
;;

  stop)
  NTOP_PID=$(${PGREP} -u ${NTOP_USER} ntop)
  if [ -z "${NTOP_PID}" ]; then
  echo -e "${RED} O NTOP ESTA PARADO ${CLOSE}"
  else
  echo -e "${RED}  [         PARANDO NTOP          ] ${CLOSE}"
  ${KILLALL} ${SIGNAL} ${NTOP_PROCESS}
  CHECAR fim
  fi
  ;;

   status)
  NTOP_PID=$(${PGREP} -u ${NTOP_USER} ntop)
  if [ -z "${NTOP_PID}" ]; then
  echo -e "${RED} O NTOP ESTA PARADO ${CLOSE}"
  else
  echo -e "${GREEN} O NTOP ESTA RODANDO COM O PID: ${NTOP_PID}  ${CLOSE}"
  fi
   ;;

   restart)
    $0 stop
    $0 start
   ;;

   *)
   echo -e "${RED}Opcoes Validas:(start|stop|restart|status)${CLOSE}"
   ;;
esac

Agora vamos acertar as permissões do script

chmod +x /etc/init.d/rc.ntop

Agora precisamos colocar ele na inicialização

insserv -f -v rc.ntop

Agora vamos iniciar o ntop

/etc/init.d/rc.ntop start
 [         INICIANDO NTOP         ] 
 [         NTOP INICIADO          ] 

Agora vamos ver o status do ntop

/etc/init.d/rc.ntop status
 O NTOP ESTA RODANDO COM O PID: 22472 

Como pode ser notado ele está rodando agora podemos acessar ele em http://ip_servidor:3000 caso precise efetuar alguma manutenção na configuração do ntop o usuário é admin e a senha é a senha que foi setada com

ntop --set-admin-password=

Referências