MRTG
O MRTG ( Multi Router Traffic Grapher) é uma ferramenta para monitorar a carga de tráfego em links de redes de computadores. Este tráfego inicialmente se detinha apenas em links físicos.
Hoje o MRTG tomou nova forma, com mais recursos que permitem monitorar links VPNs (Virtual Private Network), assim como utilização de banda de aplicações específicas, como servidores proxy, além de poder monitorar outros objetos, como referentes a utilização de CPU e memória de cada um dos processos que está rodando em determinada estação.
Uma das características principais do MRTG é a sua praticidade, ressaltada pela portabilidade e relativa facilidade de instalação e configuração (para as aplicações mais básicas). O endereço http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/reference.html é um guia de refencia para configuração com o MRTG. Informações específicas sobre instalação em UNIX podem ser conseguidas em http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/unix-guide.html, e informações sobre Windows NT podem ser conseguidas em http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/nt-guide.html.
cfgmaker
Após a sua instalação percebe-se que o MRTG é composto por algumas ferramentas que visam faciliar a sua configuração e manutenção. Um destes programas, que é bastante útil para uma configuração inicial, é o cfgmaker (http://ee-staff.ethz.ch/~oetiker/webtools/mrtg/cfgmaker.html). Este programa gera, a partir de consultas a um agente SNMP, uma proposta de configuração inicial para este determinado host.
A sintaxe básica dele é a seguinte:
cfgmaker [opções] comunidade@roteador [comunidade@roteador]
As listas das opções pode ser encontrada no link acima. Um exemplo de utilização do cfgmaker:
cfgmaker global Workdir: /usr/local/apache/htdocs/mrtg global Options[_]: growright,bits ifref=ip public@router1.empresa1.com > mrtg.cfg
Este exemplo trata de buscar informações sobre todas as interfaces físicas (incluindo a de loopback) do roteador router1.empresa1.com, usando a comunidade public, e colocando as informações no arquivo de configuração mrtg.cfg. Esta linha também indica o diretório onde ficarão os dados coletados e os gráficos como sendo o diretório /usr/local/apache/htdocs/mrtg. A opção global Options[_]: growright,bits indica que os gráficos serão mostrados em bits por segundo e a cada coleta correrão para a direita.
mrtg.cfg
Iremos tratar, a partir de agora, o arquivo mrtg.cfg como sendo o arquivo referente a configuração do MRTG. Vamos analizar o seguinte arquivo:
Workdir: /usr/local/apache/htdocs/mrtg
Options: growright,bits
######################################################################
# System: localhost.localdomain
# Description: Linux localhost.localdomain 2.2.16-22 #1 Tue Aug 22 16:49:06 EDT 2000 i686
# Contact: Root <root@localhost> (configure /etc/snmp/snmp.local.conf)
# Location: Unknown (edit /etc/snmp/snmpd.conf)
######################################################################
### Interface 1 >> Descr: 'lo0' | Name: '' | Ip: '127.0.0.1' | Eth: '' ###
### The following interface is commented out because:
### * it is a Software Loopback interface
#
# Target[localhost_1]: 1:teste@localhost
# SetEnv[localhost_1]: MRTG_INT_IP="127.0.0.1" MRTG_INT_DESCR="lo0"
# MaxBytes[localhost_1]: 1250000
# Title[localhost_1]: Traffic Analysis for 1 -- localhost.localdomain
# PageTop[localhost_1]: <H1>Traffic Analysis for 1 -- localhost.localdomain</H1>
# <TABLE>
# <TR><TD>System:</TD> <TD>localhost.localdomain in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR>
# <TR><TD>Maintainer:</TD> <TD>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</TD></TR>
# <TR><TD>Description:</TD><TD>lo0 </TD></TR>
# <TR><TD>ifType:</TD> <TD>softwareLoopback (24)</TD></TR>
# <TR><TD>ifName:</TD> <TD></TD></TR>
# <TR><TD>Max Speed:</TD> <TD>1250.0 kBytes/s</TD></TR>
# <TR><TD>Ip:</TD> <TD>127.0.0.1 ()</TD></TR>
# </TABLE>
### Interface 2 >> Descr: 'eth0' | Name: '' | Ip: '10.0.0.1' | Eth: '00-c0-df-e9-2b-26' ###
Target[localhost_2]: 2:teste@localhost
SetEnv[localhost_2]: MRTG_INT_IP="10.0.0.1" MRTG_INT_DESCR="eth0"
MaxBytes[localhost_2]: 1250000
Title[localhost_2]: Traffic Analysis for 2 -- localhost.localdomain
PageTop[localhost_2]: <H1>Traffic Analysis for 2 -- localhost.localdomain</H1>
<TABLE>
<TR><TD>System:</TD> <TD>localhost.localdomain in Unknown (edit /etc/snmp/snmpd.conf)</TD></TR>
<TR><TD>Maintainer:</TD> <TD>Root <root@localhost> (configure /etc/snmp/snmp.local.conf)</TD></TR>
<TR><TD>Description:</TD><TD>eth0 </TD></TR>
<TR><TD>ifType:</TD> <TD>ethernetCsmacd (6)</TD></TR>
<TR><TD>ifName:</TD> <TD></TD></TR>
<TR><TD>Max Speed:</TD> <TD>10000 kbis/s</TD></TR>
<TR><TD>Ip:</TD> <TD>10.0.0.1 ()</TD></TR>
</TABLE>
A primeira interface que aparece é a interface de loopback, que está como observação. A segunda interface que é mostrada é a interface 2 (ethernet).
O MRTG, neste exemplo gerado com o cfgmaker, descobriu a quantidade de interfaces através do objeto interfaces.ifNumber.0. A descrição da interface 1 foi buscada de interfaces.ifTable.ifEntry.ifDescr.1, e da interface 2 de interfaces.ifTable.ifEntry.ifDescr.2. Os valores captados de entrada para esta interface ficam sendo buscados de interfaces.ifTable.ifEntry.ifInOctets.2, e os de saída são buscados de interfaces.ifTable.ifEntry.ifOutOctets.2, para fins de geração de gráficos.
Todas as opções que tiverem [localhost_2] se referirão a mesma interface (2). O campo target indica de qual interface e host serão buscados os valores de entrada e saída. Neste caso serão buscados os valores da interface 2, do host localhost, usando a comunidade teste.
O campo SetEnv possui a descrição e ip da interface. O campo MaxBytes possui o total de bytes que pode passar na interface por segundo (em bytes).
O campo pagetop mostra o cabeçalho que ficará na parte superior da página gerada pelo MRTG.
O MRTG deverá ser colocado na cron do sistema e executado a cada 5 minutos. Um exemplo de linha que deve ser colocado na cron é este:
0,5,10,15,20,25,30,35,40,45,50,55 * * * * /usr/local/mrtg/mrtg /usr/local/mrtg/mrtg.cfg
Links com exemplos de utilização do MRTG
Exemplo de interface física: http://pampa.tche.br/Stat/rede-pop/bb2-fast/index.html
Exemplo de interface lógica (VPN): http://www.co.rnp.br/estatisticas/bb3/sp/bb3.pop-sp.rnp.br.7.html
Exemplo de monitoramento de CPU (utilizando interface para programa externo) :http://www.linux-es.com/Estadisticas/loadlinux-es.html
Links para aplicações avançadas usando MRTG
Página pricipal do MRTG: http://www.mrtg.org
Exemplo de aplicação externa (tutorial): http://faq.mrtg.org/linux/proc-load.html
Lista de MIBS por fabricante: http://config.mrtg.org/vendor_mibs.htm