você está aqui: Home  → Arquivo de Mensagens

Monitoramento do Uso da Rede em Sistemas Unix Like por meio do BandwidthD

Colaboração: José Messias Alves da Silva

Data de Publicação: 18 de Junho de 2006

O BandwidthD é um sistema de monitoramento que rastreia o uso de subredes TCP/IP e constrói arquivos HTML com gráfico para mostrar a utilização da rede. Os gráficos são construídos individualmente para cada IP e mostra sua utilização em vários períodos de tempo. Ele usa uma legenda de cores para demonstrar o tráfego em diferentes protocolos. Diferentemente do MRTG (http://people.ee.ethz.ch/~oetiker/webtools/mrtg/), ele varre cada endereço IP e subredes e não o estado dos links. Há dois modos de configuração, o modo estático e o modo em banco de dados. O modo estático é rápido e fácil de configurar e tem poucas dependências. O modo banco de dados suporta filtragem por subrede, sensores, relatórios customizados e intervalos, e pode processar milhares de IPs eficientemente. A utlização da rede pode ser guardada em formato CDF ou em um banco de dados como PostGreSQL. Nesta dica nos ateremos a configuração em modo estático. BandwidthD pode ser compilado para várias plataformas operacionais Unix Like:

ix86 Solaris 9
Debian 3.0
Fedora Core 2
OpenBSD 3.8
FreeBSD 5.6
NetBSD 3.0
AMD64 Fedora Core 3
PPC G4 MacOSX 10.2

Para instalação e uso do Sistema é necessário que um servidor web esteja instalado para exibição dos relatórios em HTML, de preferência o Apache . Caso fosse utilizado modo banco de dados utilizando PostGreSQL seria necessária a instalação também de PHP4 ou posterior. É também necessário que as seguintes bibliotecas estejam devidamente instaladas:

Instalação

Todos os passos devem ser efetuados como root e dentro do diretório desse usuário. Para esta dica foi utilizada a versão 2.0.1 baixada em:

http://ufpr.dl.sourceforge.net/sourceforge/bandwidthd/bandwidthd-2.0.1.tgz

Após baixada a versão, realiza-se os seguintes passos:

  # tar -xvzf bandwidthd-2.0.1.tgz
  # cd bandwidthd-2.0.1
  # ./configure && make install

Após a instalação, passemos para a configuração.

Configuração

O arquivo de configuração do BandwidthD é relativamente pequeno, possuindo poucas opções de configuração. Deve-se configurar basicamente a rede e subredes que serão monitoradas e por qual(is) interfaces. O arquivo de configuração encontra-se em /etc/bandwidthd/bandwidthd.conf . Abaixo um exemplo do arquivo:

  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>
  # Bandwidthd.conf
  # Exemplo de Configuração
  
  # Subredes que o sistema irá capturar informações.
  # O tráfego que não corresponder a nenhuma dessas redes
  # será ignorado.
  # A Sintaxe é o IP da Subrede e a máscara
  subnet 10.0.0.0 255.0.0.0
  subnet 192.168.0.0/24   # Pode ser utilizada
  # esse terminologia também
  # Interface a ser escutada
  # Bandwidthd escuta na primeira que detecta por default.
  # Pode-se rodar "bandwidthd -l" para listar os dispostivos
  # que ele detectou.
  dev "eth0"
  
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>###
  # As opções abaixo não são frequentemente modificadas
  # Mas segue algumas explicações
  < A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>< A NAME="note" HREF="#textnote">< SUP>###
  
  # Intervalo em minutos ele aguarda antes de
  # gerar um novo gráfico. Normalmente se utiliza algo
  # entre 2.5 e 5.0
  #skip_intervals 0
  
  # Aqui é quantidade de kbytes que devem ser transferidos por
  um ip antes gerar seu gráfico
  #graph_cutoff 1024
  
  # Coloca a interface em modo promíscuo, pegando até mesmo
  # pacotes que não são roteados pela máquina
  #promiscuous true
  
  # Criar o log das informações em um arquivo
  # CDF em htdocs/log.cdf
  #output_cdf false
  
  # Ler o arquivo CDF anterior ao iniciar
  #recover_cdf false
  
  # Formato da String de Filtro Libpcap usada para controlar
  # o que o bandwidthd vasculhará. Normalmente se inclui
  # a palavra "ip" dentro da string para evitar problemas
  # estranhos. Esta opção é pouco usada. Exemplo: filter
  # "ip and host 192.168.0.1"
  #filter "ip"
  
  # Desenha os gráficos. O default é true. Normalmente
  # só se utiliza false quando  se deseja apenas guardar
  # os logs cdf em um banco de dados sem gerar gráficos.  
  # Quando se põe false, o BandwidthD usa muito menos da CPU
  # e da memória RAM.  graph true
  
  # Ajusta o valor em segundos de META REFRESH, que é
  # atualização do gráficos (default 150, use 0 para
  # desabilitar).  
  #meta_refresh 150

Rodando

Após realizada a compilação com sucesso, vamos botar pra rodar.

  # ./bandwidthd

Em seguida, verificando se foi carregado corretamente.

  # ps ax

Se não ocorrer "bandwidthd <defunct>", signifca que não há nenhum erro de configuração e o sistema está rodando normalmente. Caso contrário, verifica-se novamente os detalhes da configuração e tenta-se novamente.

Ajustes

O BandwidthD gera as imagens e o código HTML no diretório /var/lib/bandwidthd/htdocs/. Para a exibição das páginas, é necessário que se crie um link simbólico /var/www/bandwidthd/.

  # ln -s  /var/lib/bandwidthd/htdocs/ /var/www/bandwidthd/

Para finalizar os logs, normalmente se reinicia o BandwidthD. Pode-se colocar para realizar isto automaticamente inserindo a seguinte a linha no crontab:

  0 0 * * * * /bin/kill -HUP `cat /var/run/bandwidthd.pid`

Posteriormente, pode-se criar um script para organizar os logs e para inicializar e parar o sistema.

Para finalizar, pode-se testar o sistema acessando o servidor web no diretório bandwidthd.

http://localhost/bandwidthd/

Considerações Finais

Alguns questionam o fato de o BandwithD consumir muito recursos da CPU. Entretanto, isso não constitui uma verdade, visto que baseado em testes realizados, o consumo assemelha-se a de qualquer outro aplicativo de monitoramento. Pode ser que em versões anteriores isto tenha acontecido, porém, atualmente, isso com certeza não ocorre. Espera-se que a instalação desse sistema seja de grande utilidade para Administradores de Redes que necessitam frequentemente estar averiguando se a rede está sendo utilizada de forma correta e eficiente.



 

 

Veja a relação completa dos artigos de José Messias Alves da Silva

Opinião dos Leitores

Seja o primeiro a comentar este artigo
*Nome:
Email:
Me notifique sobre novos comentários nessa página
Oculte meu email
*Texto:
 
  Para publicar seu comentário, digite o código contido na imagem acima
 


Powered by Scriptsmill Comments Script