O documento descreve como configurar e usar o MRTG (Multi Router Traffic Grapher) para monitorar tráfego de rede e recursos de sistemas através do protocolo SNMP. O MRTG gera gráficos que mostram o uso de banda nas interfaces de rede, CPU, memória e disco de roteadores, servidores e outros dispositivos de rede. Ele pode ser usado para monitorar qualquer equipamento que suporte SNMP.
1. Gerência de Redes
MRTG: SNMP na
Prática
Frederico Madeira
LPIC1, LPIC2, CCNA
fred@madeira.eng.br
www.madeira.eng.br
2. MRTG
➔
The Multi Router Traffic Grapher (MRTG)
➔
Ele monitora um dispositivo de rede via SNMP, e mostra
a quantidade de tráfego que passa por cada interface
➔
O projeto começou com a monitoração de roteadores,
mas é totalmente extensível a qualquer dispositivo de
rede que utilize SNMP.
➔
Escrito em perl e roda em Unix/Linux/Windows
3. MRTG - Características
➔
Uso de gráficos para monitorar os dispositivos
➔
Monitoramento através de SNMP ou scripts
externos
➔
Pode ser utilizado para monitorar diversos outros
sistemas, como servidores de e-mail, squid,
servidor web, entre outros
➔
Ferramenta para geração do arquivo de
configurações (CFGMAKER) e ferramenta para
geração da página index (INDEXMAKER)
4. MRTG – Install/Config
➔
Instalação:
* o mrtg utiliza o apache, para tanto, vamos
instalar o apache junto com o mrtg
yum install mrtg httpd
➔
Configuração
➔
Criando o diretório onde serão armazenados
os gráficos:
mkdir /var/www/html/mrtg
5. MRTG – Install/Config
➔
Configurando Apache :
Edite o arquivo:
vim /etc/httpd/conf.d/mrtg.conf
Altere a linha abaixo:
Alias /mrtg /var/www/mrtg
Por
Alias /mrtg1 /var/www/mrtg
➔
Inicie o apache:
/etc/init.d/httpd start
➔
Acessando:
Para acessa, abra o browser e digite:
localhost/mrtg
6. Configurando o MRTG para
monitorar um host Linux
➔
Ativando o SNMP no Linux:
yum install net-snmp net-snmp-libs net-snmp-utils
cd /etc/snmp
cp snmpd.conf snmp.conf.orig
vi /etc/snmp/snmpd.conf
Inserir as linhas abaixo:
rocommunity public
syslocation Recife-PE
syscontact fred@madeira.eng.br
disk / 1000000
disk /boot 100000
Reiniciar o serviço:
/etc/init.d/snmpd start
7. Configurando o MRTG para
monitorar um host Linux
➔
Testando o SNMP no Linux:
snmpwalk -v 2c -c public ip_do_servidor
8. Configurando o MRTG para
monitorar um host Linux
➔
Interfaces de rede:
cfgmaker --global "WorkDir: /var/www/html/mrtg"
-output /etc/mrtg/mrtg_linux.cfg
public@192.168.15.158
➔
Adicione o novo gráfico a tela principal do
MRTG
indexmaker
--output=/var/www/html/mrtg/index.html
/etc/mrtg/mrtg_linux.cfg
➔
Execute o primeiro pooling no host
env LANG=C /usr/bin/mrtg linux.cfg
9. Configurando o MRTG para
monitorar um host Linux
➔
Agende o pooling deste host no crontab
crontab -e
# insira a seguinte linha:
*/5 * * * * env LANG=C /usr/bin/mrtg
/etc/mrtg/mrtg_linux.cfg --logging /var/log/mrtg.log
➔
Acessando:
Para acessa, abra o browser e digite: localhost/mrtg
10. MRTG – Exemplo de Config
Interface de Rede ETH0:
WorkDir: /var/www/html/mrtg
LoadMIBs: /usr/local/share/snmp/mibs/UCD-SNMP-MIB.txt
Target[192.168.0.105_2]: 2:public@192.168.0.105:
SetEnv[192.168.0.105_2]:
MRTG_INT_IP="192.168.0.105" MRTG_INT_DESCR="eth0"
MaxBytes[192.168.0.105_2]: 125000000
Title[192.168.0.105_2]: Traffic Analysis for 2 –
snmphost
Options[192.168.0.105_2]: bits
PageTop[192.168.0.105_2]: <h1>Traffic on eth0 --
snmphost</h1>
11. MRTG – Exemplo de Config
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-
MIB.txt,/usr/share/snmp/mibs/TCP-MIB.txt,/usr/share/snmp/mibs/HOST-
RESOURCES-MIB.txt
workdir: /var/www/html/mrtg/
#Memória do Servidor:
Target[mem]:
memAvailReal.0&memTotalReal.0:public@192.168.0.105
Title[mem]: Memória Livre
PageTop[mem]: <h1>Memória Livre</h1>
MaxBytes[mem]: 100000000000
ShortLegend[mem]: B
YLegend[mem]: Bytes
LegendI[mem]: Livre
LegendO[mem]: Total
Legend1[mem]: Memória Livre, em bytes
Legend2[mem]: Memória Total
Options[mem]: gauge,growright,nopercent
kMG[mem]: k,M,G,T,P,X
12. MRTG – Exemplo de Config
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-
MIB.txt,/usr/share/snmp/mibs/TCP-MIB.txt,/usr/share/snmp/mibs/HOST-
RESOURCES-MIB.txt
workdir: /var/www/html/mrtg/
#Memória do Servidor:
Target[mem]:
memAvailReal.0&memTotalReal.0:public@192.168.0.105
Title[mem]: Memória Livre
PageTop[mem]: <h1>Memória Livre</h1>
MaxBytes[mem]: 100000000000
ShortLegend[mem]: B
YLegend[mem]: Bytes
LegendI[mem]: Livre
LegendO[mem]: Total
Legend1[mem]: Memória Livre, em bytes
Legend2[mem]: Memória Total
Options[mem]: gauge,growright,nopercent
kMG[mem]: k,M,G,T,P,X
13. MRTG – Exemplo de Config
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-
MIB.txt,/usr/share/snmp/mibs/TCP-MIB.txt,/usr/share/snmp/mibs/HOST-
RESOURCES-MIB.txt
workdir: /var/www/html/mrtg/
#CPU do Servidor:
Target[server.cpu]:ssCpuRawUser.0&ssCpuRawUser.0:public@192.168.1
5.156 + ssCpuRawSystem.0&ssCpuRawSystem.0:public@192.168.15.156
+ ssCpuRawNice.0&ssCpuRawNice.0:public@192.168.15.156
Title[server.cpu]: Server CPU Load
PageTop[server.cpu]: <h1>CPU Load - System, User and Nice
Processes</h1>
MaxBytes[server.cpu]: 100
ShortLegend[server.cpu]: %
YLegend[server.cpu]: CPU Utilization
Legend1[server.cpu]: Current CPU percentage load
LegendI[server.cpu]: Used
LegendO[server.cpu]:
Options[server.cpu]: growright,nopercent
Unscaled[server.cpu]: ymwd
14. MRTG – Exemplo de Config
LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-
MIB.txt,/usr/share/snmp/mibs/TCP-MIB.txt,/usr/share/snmp/mibs/HOST-
RESOURCES-MIB.txt
workdir: /var/www/html/mrtg/
#Discos do Servidor:
Target[linux.root]:dskPercent.1&dskPercent.2:public@192.168.15.156
RouterUptime[linux.root]: public@192.168.15.156
MaxBytes[linux.root]: 100
Title[linux.root]: Utilizacao do Disco
PageTop[linux.root]: <h1>Utilizacao do disco / e /boot %</h1>
Unscaled[linux.root]: ymwd
ShortLegend[linux.root]: %
YLegend[linux.root]: Utilizacao do HD
Legend1[linux.root]: /
Legend2[linux.root]: /boot
Legend3[linux.root]:
Legend4[linux.root]:
LegendI[linux.root]: /
LegendO[linux.root]: /boot
Options[linux.root]: growright,gauge,nopercent
15. MRTG – Exemplo de Config
Diretiva OPTIONS:
Growright: Gráfico inicia pela direita, tempo atual está
na direita
Bits: Exibe o valor multiplicado por 8 (bits ao invés de
bytes)
Nopercent: Não exibe os percentuais
19. Configurando o Windows
para SNMP
➔
Passo 5: Clique no iniciar e digite services.msc,
em seguida clique no ícone abaixo
20. Configurando o Windows
para SNMP
➔
Passo 6: Na lista de serviços, localize o SNMP e
garanta que ele esteja inicializado.
21. Configurando o Windows
para SNMP
➔
Passo 7: Ainda na lista de serviços, clique com o
botão direito sobre o serviço SNMP, em seguida
selecione propriedades e clique na aba
segurança.
22. Configurando o Windows
para SNMP
➔
Passo 8: Altere conforme sua necessidade. Pelo
menos, insira a community public e libere a
consulta para o host gerente de sua rede, ou libere
para todos os hosts (não recomendado)
23. Configurando o Windows
para SNMP
➔
Passo 9: certifique-se que o SNMP foi habilitado,
através do comando snmpwalk executado no
gerente da rede
24. Configurando o MRTG para
monitorar um host Windows
➔
Interfaces de rede:
cfgmaker --global "WorkDir: /var/www/html/mrtg"
-output /etc/mrtg/mrtg_windows.cfg
public@192.168.15.159
➔
Adicione o novo gráfico a tela principal do
MRTG
indexmaker
--output=/var/www/html/mrtg/index.html
/etc/mrtg/mrtg.cfg
/etc/mrtg/mrtg_192.168.0.105-sys.cfg
/etc/mrtg/mrtg_windows.cfg
➔
Execute o primeiro pooling no host
env LANG=C /usr/bin/mrtg mrtg_windows.cfg
25. Configurando o MRTG para
monitorar um host Windows
➔
Agende o pooling deste host no crontab
crontab -e
# insira a seguinte linha:
*/5 * * * * env LANG=C /usr/bin/mrtg
/etc/mrtg/mrtg_windows.cfg --logging /var/log/mrtg.log
26. Configurando o MRTG para
monitorar um host Windows
➔
Monitorando CPU, Memória e Disco do host
Windows
Crie um novo arquivo de configuração chamado
/etc/mrtg/mrtg_windows_sys.cfg e insira as
configuração abaixo:
27. Gerência de Redes
MRTG: SNMP na
Prática
Frederico Madeira
LPIC1, LPIC2, CCNA
fred@madeira.eng.br
www.madeira.eng.br