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: 
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


