Visite também: BR-Linux ·  VivaOLinux ·  LinuxSecurity ·  Dicas-L ·  NoticiasLinux ·  SoftwareLivre.org ·  [mais]

Tutoriais/Monitoramento/mrtg-por-ip-sem-snmp

De UnderLinux Wiki

Tabela de conteúdo

Introdução

A finalidade deste tutorial é auxiliá-lo sobre a configuração do MRTG para fazer monitoramento de utilização de banda por ip, sem utilizar agentes SNMP.

Aqui abordaremos sobre: MRTG, iptables, shell script.

Preparando o Terreno

Vamos levar em consideração que você tenha devidamente instalado o MRTG, o iptables, o apache e o programa "awk".

Veja no Tutorial do Diego Vieira como instalar o MRTG

Vamos centralizar nossos arquivos de configuração no diretorio /etc/mrtg/.
Então vamos logo criá-lo: # mkdir /etc/mrtg

iptables

Neste tutorial, o ip do nosso cliente será: 192.168.0.100.
Logo, precisamos acrescentar as seguintes linha no script de firewall ou no rc.local, para que o trafego do cliente possa ser contabilizado.
Editar o rc.local: # vi /etc/rc.local

#trafego de entrada pra o cliente - download
iptables -t mangle -A POSTROUTING -d 192.168.0.100 -j ACCEPT
#trafego de saida do cliente - upload
iptables -t mangle -A PREROUTING -s 192.168.0.100 -j ACCEPT
:wq

shell script

Agora vamos preparar o shell script responsável pela coleta dos pacotes trafegados pelo cliente 192.168.0.100.
Editar o script do cliente 100: # vi /etc/mrtg/cliente100

#!/bin/bash
# circuito: 0100
# ip: 192.168.0.100
# cliente: nome do cliente
down=`iptables -t mangle -L POSTROUTING -nvx | awk '/192.168.0.100/{print $2}'`
up=`iptables -t mangle -L PREROUTING -nvx | awk '/192.168.0.100/{print $2}'`
echo "$down"
echo "$up"
:wq

Agora temos q tornar o script executável:

# chmod +x /etc/mrtg/cliente100

Configurando o MRTG

Arquivo de configuração do mrtg.

# arquivo de configuracao do mrtg
# gerar gráfico de 5 em 5 minutos
Interval: 5
# linguagem das paginas de gráficos
Language: portuguese
# se vc quiser que o mrtg fique rodando como um
# serviço mude de No para Yes. Com o MRTG rodando
# como serviço qualquer alteracao no mrtg.conf vai
# precisar matar o serviço e rodar novamente. Por isso
# aconselho deixa esta opção como No e colocá-lo no
# crontab.
RunAdDaemon: No
# pasta dos arquivos html
# se ela nao existir, vc deverá criá-la
# coloque o caminho padrão do seu apache
WorkDir: /srv/www/default/html/mrtg
# algumas configurações padrão
Options[_]: growright, bits, nobanner
WithPeak[_]: ymw
# a partir daqui entra a configuracao dos clientes
Target[cli100]: `/etc/mrtg/cliente100`
TItlet[cli100]: "Trafego do Circuito 100 - Nome do Cliente"
PageTop[cli100]: "Trafego do Circuito 100 - Nome do Cliente"
MaxBytes[cli100]: 128000 # velocidade maxima do cliente
:wq

Se você deixou a opção RunAdDaemon setada como "No". Veja como colocar o MRTG no crontab. Edite o arquivo /etc/crontab: <p class="code"> # vi /etc/crontab

Adicione no final no arquivo:

*/5 * * * * root mrtg /etc/mrtg/mrtg.conf

Reinicie o crond, assim a cada 5 minutos o cron executará o mrtg.

Vendo os Gráficos

Acesse pelo navegador: http://ip-do-seu-servidor/mrtg/cli100

Você verá os gráficos de utilização de banda de seu cliente.

Segue uma imagem meramente ilustrativa de como ficará seu gráfico: Imagem:mrtg-por-ip-sem-snmp-001.png

Conclusão

Para quem não tem nenhum tipo de conhecimento em SNMP ou saiba utilizar o CACTI, o resultado deste tutorial é bastante satisfatório. Pois permite que você tenha uma visão, mesmo que de 5 em 5 minutos, de como está o consumo de seus clientes/usuários.

Espero que este consiga ajudar bastante pessoas, quanto ao monitoramente de tráfego por IP.

O Autor

Wenderson Souza (wendersonsouza {NOSPAM} gmail.com)
Under-Linux: neon