Você está na página 1de 6

Visualizao de desempenho com o MRTG

REDES

Imagem tudo
O MRTG gera grcos simples para visualizao rpida do desempenho da rede. por Matthew D. Sacks

dministradores Linux freqentemente se beneficiam da captura de mtricas do desempenho do sistema, como uso de disco, da CPU e da memria. Um grfico de desempenho til ajuda a diagnosticar problemas e a analisar questes de trfego. O Multi-Router Traffic Grapher (MRTG [1]) permite a coleta e a criao de grficos de rede e dados de desempenho de mquinas Linux. O MRTG uma ferramenta de cdigo aberto que coleta e exibe estatsticas a partir
60

de dispositivos de rede com base no protocolo SNMP. Ferramentas comerciais como o HP OpenView ou o IBM Tivoli, assim como utilitrios de cdigo aberto como Cacti [2] e Zenoss (uma verso mais polpuda do MRTG), tm usos semelhantes, mas difcil ultrapassar o nvel do MRTG.

pilar todos os pacotes necessrios a partir dos fontes. importante verificar se h pacotes do MRTG disponveis nos repositrios da sua distribuio e, em caso negativo, o cdigo-fonte est disponvel no site do criador do programa, Tobi Oetiker[1].

SNMP

Instalao

Instalar o MRTG e o SNMP no para os fracos de corao, principalmente quando se opta por com-

O SNMP o protocolo por trs das imagens mgicas criadas pelo MRTG. Este artigo presume que o leitor tenha algum conhecimento bsico do SNMP. Porm se no

http://www.linuxmagazine.com.br

MRTG | REDES

Quadro 1: Pr-requisitos do MRTG


Para instalar o MRTG a partir de seu cdigo-fonte, primeiramente necessrio fornecer os softwares dos quais ele depende: GCC: Como o programa feito primariamente em C, o compilador[4] necessrio. Perl: Alm de C, grandes partes do MRTG so escritas em Perl. importante ter instalada no seu sistema uma verso recente do Perl (perl -v mostra a verso instalada). A verso 5.005 a menor possvel para usar o MRTG com sucesso. Se for usado o SNMPv3 e outros novos recursos, preciso ao menos a verso 5.8. GD: A biblioteca GD para gerar desenhos foi criada por Thomas Boutell[5]. Todas as verses aps a 1.3 criam somente imagens PNG. Thomas enfrentou problemas em razo do uso do formato GIF, que utiliza uma tecnologia de compresso patenteada pela Unisys. O MRTG capaz de usar verses novas ou velhas da biblioteca GD. Libpng: A biblioteca GD exige essa biblioteca para conseguir produzir imagens PNG[6]. Zlib: A biblioteca Zlib necessria para que a Libpng consiga comprimir os arquivos de imagens gerados[7].

for o seu caso, h muitas informaes disponveis na Internet sobre esse protocolo um tanto antigo, mas incrivelmente poderoso. Para mais informaes sobre como congurar o SNMP em mquinas Linux, [3] um bom ponto de partida. O quadro 1 d mais informaes sobre os componentes necessrios para o MRTG. Uma vez que estes estejam instalados, basta baixar o cdigo-fonte em [1]. O comando ./configure, a opo --prefix pode ser usado da seguinte forma para fazer a instalao de forma a facilitar futuras atualizaes do software:
./configure --prefix=/usr/local/ mrtg-2.15.2

Instalao

Exemplo 1: Problemas de congurao do MRTG


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 ** Ooops, one of many bad things happened: a) You dont have the GD library installed. Get it from http://www.boutell.com, compile it, and use either --with-gd-lib=DIR or --with-gd-inc=DIR to specify its location. You might also have to use --with-z-inc, --with-z-lib and --with-png-inc, --with-png-lib for gd versions 1.6 and higher. Check config.log for more information on the problem. b) You have the GD library installed, but not the gd.h header file. Download the source (see above) and use --with-gd-inc=DIR to specify where the file can be found. c) You have the library and the header file installed, but you also have a shared GD library in the same directory. Remove the shared library files and/or links (e.g., libgd.so.2.0.0, libgd.so and libgd.so.2). This is especially likely if youre using a recent (post 1.8.4) version of GD and didnt configure it with --disable-shared. d) You have the GD library installed and also its headers, butyou are missing libpng (and headers) or freetype (and headers) (MRTG does not use freetype, but if your copy of GD isprecompiled against it, you have to install it ... )

A criao de um link simblico tambm interessante para facilitar o uso da verso mais recente aps uma atualizao:
ln -s /usr/local/mrtg-2.15.2 /usr/ local/mrtg

Se o script de configurao do MRTG no conseguir encontrar alguma dependncia, ele pode emitir uma mensagem de erro semelhante quela do exemplo 1. Nesse caso, o ideal sempre usar as verses mais recentes das bibliotecas usadas pelo MRTG, o que garantir uma operao sem falhas. Se houver alguma dependncia de biblioteca compilada a partir do cdigo-fonte, ser necessrio modificar os parmetros do script de configurao para inclu-las. Por exemplo, se for o caso da biblioteca grfica GD, deve-se modificar o script de configurao da seguinte forma:
61

Congurao

Linux Magazine #45 | Agosto de 2008

REDES | MRTG

Tabela 1: Opes do comando cfgmaker


Opo
community global Workdir output

Descrio
Dene o nome da comunidade SNMP. Dene os parmetros globais de congurao para cada mquina congurada. Diretrio onde as imagens e arquvos HTML devem ser criados. Dene onde o arquivo de congurao do MRTG ser criado. Adicione os nomes de mquinas ou os IPs dos servidores a serem monitorados no m do script cfgmaker separados por espaos. Em nosso caso, temos apenas uma mquina: Tux.

./configure --prefix=/usr/local/ mrtg-2.15 --with-gd-lib=/usr/ local/gd-2.0.34 --with-gd-inc=/ usr/local/gd-2.0.34/lib make make install

ntrouter --global Workdir:/usr/ loca/apache2/htdocs --output= /usr/local/mrtg/cfg/mrtg2.cfg Tux

Modicao para desempenho


Este artigo utilizar duas mquinas Linux como exemplos: Tux e Grapher. A primeira o servidor que ser monitorado e o segundo a mquina que executar o MRTG. Os arquivos de congurao do MRTG so complexos e trabalhosos para editar, motivo pelo qual o MRTG traz um script de congurao fcil de usar, como o cfgmaker, que oferece vrias opes. Ele cria o arquivo mrtg.conf com os dados necessrios gerao de grcos bsicos. Os argumentos mais bsicos de sua linha de comando so mostrados na tabela 1. Antes de executar o script, importante criar um diretrio para abrigar os arquivos de congurao do MRTG, pois possvel usar inmeras conguraes diferentes numa nica mquina:
mkdir /usr/local/mrtg/cfg

Como j explicado, o MRTG recebe suas informaes pelo protocolo SNMP. Esse protocolo organiza as informaes de endereamento de dispositivos numa estrutura hierrquica conhecida como Management Information Base (MIB). O exemplo a seguir presume que o MIB UCD-SNMP esteja carregado e que os dados possam ser consultados com o uso dessa denio de MIB. Para testar se o MIB UCD-SNMP est disponvel e carregado, necessrio vericar a instalao do SNMP.

Teste do MIB

Uma forma rpida de testar se o MIB UCD-SNMP est disponvel consiste em usar o seguinte comando no servidor monitorado:
snmpwalk -v1 -c public hostname ssCpuRawUser

Agora que o arquivo mrtg2.cfg padro j foi gerado pelo script cfgmaker, necessrio editar manualmente esse arquivo de congurao para gerar grcos das estatsticas de recursos como memria, disco e uso da CPU. O site do MRTG possui tima documentao cobrindo todos os diferentes parmetros para congurao do programa. Esse exemplo descreve como criar um modelo bem simples para criar grcos do uso da CPU. O MIB UCD-SNMP permite o monitoramento de uma grande variedade de conguraes extras de desempenho. Para ver tudo que est disponvel, a denio do MIB[8] de grande ajuda. Para adicionar um parmetro como uso da CPU congurao do MRTG, deve-se comear pela criao dos seguintes diretrios para abrigarem as novas conguraes personalizadas:
mkdir /etc/mrtg mkdir /etc/cron.mrtg

Monitor de CPU

O script cfgmaker deve ser executado da seguinte forma:


/usr/local/mrtg/bin/cfgmaker --community=public --global Options[_]:growright,avgpeak,pri

Esse comando consulta o uso da CPU em relao ao tempo do usurio na mquina-alvo. Se esse comando falhar, deve-se vericar se o snmpd na mquina monitorada est em execuo e se o MIB UCD-SNMP foi compilado na instncia do SNMP. A possibilidade de gerar grcos do desempenho do servidor Linux depende fortemente desse MIB.

Depois, crie um arquivo cpu.cfg para monitorar a carga da CPU usando o contedo mostrado no exemplo 2. Crie um arquivo de cron job para o monitoramento da CPU com o seguinte contedo:
#!/bin/sh env LANG=C /usr/local/mrtg/bin/ mrtg /etc/mrtg/cpu.cfg

62

http://www.linuxmagazine.com.br

MRTG | REDES

Aps tornar executvel o comando para obteno de dados da CPU, execute-o aproximadamente trs vezes:
chmod +x /etc/cron.mrtg/cpu sh /etc/cron.mrtg/cpu

para a coleta dos dados. Isso pode ser feito informando-se o caminho do binrio do MRTG e executando-o no intervalo desejado com o cron. A linha a ser acrescentada ao crontab :
0,5,10,15,20,25,30,25,40,45,50,55 * * * * env LANG=C /usr/local/ mrtg/bin/mrtg /usr/local/mrtg/ cfg/mrtg2.cfg

o nome do arquivo que foi gerado pelos scripts do MRTG. Nesse exemplo, o Apache foi utilizado e os arquivos foram gerados no diretrio WorkDir.

Para visualizar os resultados, crie o arquivo de ndice utilizando o script indexmaker:


indexmaker --output=/usr/local/ apache2/htdocs/mrtg/cpu_index. html --title=CPU Usage -sort=name --enumerate /etc/mrtg/ cpu.cfg

Exibindo desempenho

A ferramenta indexmaker criou um arquivo de ndice em /usr/local/apache2/htdocs/mrtg/cpu_index.html. O grco est presente nesse arquivo.

Ao nal, adicione um super cron contendo as OIDs personalizadas:


*/5 * * * * /bin/run-parts /etc/ cron.mrtg 1> /dev/null

Para gerar grcos de qualquer outra mtrica do sistema, como memria, nmero mdio de usurios e uso de disco, consulte a denio do MIB UCD-SNMP[8] e simplesmente repita os passos anteriores, modicando o OID e os parmetros de legenda do grco.

Consulta

Criamos um modelo para congurar grcos personalizados especcos de recursos de sistema para dados de desempenho. O prximo passo escolher um intervalo de consulta

Essa entrada executar o binrio do MRTG a cada cinco minutos, preenchendo os grcos. Se um cron job no for congurado para executar o binrio do MRTG, os dados do grco no sero preenchidos. possvel ajustar o intervalo de consulta conforme desejado, mas lembre-se de que quanto menor for a freqncia de consulta, menos preciso ser o grco. Conforme a congurao aplicada ao servidor web, pode ser necessrio consultar

Exemplo 2: Arquivo cpu.cfg


01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 ## Grficos da CPU da mquina Tux ## WorkDir: /usr/local/apache2/htdocs/mrtg LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.txt Target[Tux.cpu]:ssCpuRawUser.0&ssCpuRawUser.0: linux-magazine@Tux + ssCpuRawSystem.0&ssCpuRawSystem.0:public@Tux + ssCpuRawNice.0&ssCpuRawNice.0:public@Tux RouterUptime[Tux.cpu]: public@Tux MaxBytes[Tux.cpu]: 100 Title[Tux.cpu]: CPU Load PageTop[Tux.cpu]: <H1>Active CPU Load %</H1> Unscaled[Tux.cpu]: ymwd ShortLegend[Tux.cpu]: % YLegend[Tux.cpu]: CPU Utilization Legend1[Tux.cpu]: Active CPU in % (Load) Legend2[Tux.cpu]: Legend3[Tux.cpu]: Legend4[Tux.cpu]: LegendI[Tux.cpu]: Active LegendO[Tux.cpu]: Options[Tux.cpu]: growright,nopercent

Figura 1 Grco de padro normal no uso da CPU.

Linux Magazine #45 | Agosto de 2008

63

REDES | MRTG

Nomes de arquivos s vezes so gerados automaticamente, portanto, melhor primeiro procurar o arquivo no diretrio de sada e s depois fornecer o nome do arquivo ao naFigura 2 Um pico anormal aparece no grco de uso da CPU. vegador web. Depois de todo esse trabalho, os belos grcos Por exemplo, a gura 1 mostra criados e uma viso global resumida do sistema so uma boa recompen- um grupo de servidores sob carga O MRTG permite que o adminissa. possvel escalar a instalao normal. Na maioria das vezes, um trador do sistema rapidamente dedo MRTG para incluir mtricas e padro consistente se desenvolve ao tecte e investigue alteraes em seu dados de desempenho, suprindo longo do tempo. Note que a possi- desempenho. as necessidades tanto de pequenas bilidade de se agregar mltiplos Este artigo mostrou uma pequena quanto de grandes empresas. Para servidores num nico grco como frao das possibilidades de criao isso, basta executar novamente o esse um recurso do RRDtool, que de grcos e resoluo de problemas indexmaker ou criar um portal para um add-on do MRTG. de desempenho do sistema com o exibir imagens PNG criadas dinaSe ocorrer um pico meia-noite MRTG. Diversas outras conguramicamente. no grco de CPU do servidor (gura es so possveis de acordo com as O RRDtool[9] oferece um de- 2), uma explicao possvel alguma necessidades do administrador. sempenho maior e mais opes de tarefa de becape agendada para esse customizao do que os grcos do horrio. Outra possibilidade que MRTG. Use o RRDtool caso deseje tenha ocorrido algum ataque aos Mais informaes monitorar um grande nmero de servidores. Para decidir entre essas mquinas Linux. duas situaes, pode-se comparar [1] MRTG: http://oss. os grcos de uso da CPU com os oetiker.ch/mrtg/ de trfego de rede (gura 3). [2] Adriano Matos Meier, O grco de rede no mostra pico Monitorar preciso: algum no trfego de rede no mesmo http://www.linuxmagazine. Geralmente falando, os grcos do momento do pico no uso da CPU, com.br/article/1154 MRTG so mais ecazes quando ento seguro armar que no houve [3] Net-SNMP: http:// visualizados e interpretados com um ataque aos servidores. O passo www.net-snmp.org regularidade. melhor gravar al- seguinte seria investigar os logs do [4] GCC: http://gcc.gnu.org gum tipo de grco basal e us-lo servidor em busca de indicaes da como comparao ao investigar e execuo de alguma tarefa agenda[5] Biblioteca GD: http:// resolver problemas. da nesse horrio. www.boutell.com/gd/

Exibindo banda

Concluso

Interpretao de grcos

[6] Libpng: http://www.libpng. org/pub/png/libpng.html [7] Zlib: http://www.gzip. org/zlib [8] Denio do MIB UCDSNMP: http://www. oidview.com/mibs/2021/ UCD-SNMP-MIB.html [9] RRDtool: http://oss. oetiker.ch/rrdtool

Figura 3 Uma rpida vericao do uso da rede mostra que o pico no foi
causado pelo aumento do trfego.

64

http://www.linuxmagazine.com.br

Coleo Linux Pro


Prepare-se para a principal certicao prossional do mercado Linux

J em sua

2 edio

O primeiro volume traz informaes referentes LPI-1 e o primeiro passo para a certificao. Estude para a prova de acordo com o contedo programtico estabelecido pelo LPI.

Pautado conforme o roteiro estabelecido pelo prprio Linux Professional Institute e por este recomendado, o segundo volume voltado preparao do exame para a LPI-2.

Certifique-se para entrar em um mercado de trabalho em pleno crescimento no Brasil e no mundo. S a LPI garante a formao que o mercado espera para lidar com os ambientes mais diversos. A qualidade destes volumes atestada pelos selos do LPI e do SENAC, que os utilizam como material didtico em seus cursos. A venda nas melhores livrarias, no site www.linuxmagazine.com.br, ou pelo telefone (11) 4082-1300.