You are on page 1of 6

Visualização de desempenho com o MRTG

REDES

Imagem é tudo
O MRTG gera gráficos simples para visualização rápida do desempenho da rede. por Matthew D. Sacks

A

dministradores Linux freqüentemente se beneficiam da captura de métricas do desempenho do sistema, como uso de disco, da CPU e da memória. Um gráfico de desempenho útil ajuda a diagnosticar problemas e a analisar questões de tráfego. O Multi-Router Traffic Grapher (MRTG [1]) permite a coleta e a criação de gráficos de rede e dados de desempenho de máquinas Linux. O MRTG é uma ferramenta de código aberto que coleta e exibe estatísticas a partir
60

de dispositivos de rede com base no protocolo SNMP. Ferramentas comerciais como o HP OpenView ou o IBM Tivoli, assim como utilitários de código aberto como Cacti [2] e Zenoss (uma versão mais polpuda do MRTG), têm usos semelhantes, mas é difícil ultrapassar o nível do MRTG.

pilar todos os pacotes necessários a partir dos fontes. É importante verificar se há pacotes do MRTG disponíveis nos repositórios da sua distribuição e, em caso negativo, o código-fonte está disponível no site do criador do programa, Tobi Oetiker[1].

SNMP

Instalação

Instalar o MRTG e o SNMP não é para os fracos de coração, principalmente quando se opta por com-

O SNMP é o protocolo por trás das imagens mágicas criadas pelo MRTG. Este artigo presume que o leitor tenha algum conhecimento básico do SNMP. Porém se não

http://www.linuxmagazine.com.br

005 é a menor possível para usar o MRTG com sucesso. ) A criação de um link simbólico também é interessante para facilitar o uso da versão mais recente após uma atualização: ln -s /usr/local/mrtg-2. há muitas informações disponíveis na Internet sobre esse protocolo um tanto antigo. Thomas enfrentou problemas em razão do uso do formato GIF. libgd. Get it from http://www. ➧ Libpng: A biblioteca GD exige essa biblioteca para conseguir produzir imagens PNG[6]. [3] é um bom ponto de partida.6 and higher. but you also have a shared GD library in the same directory.0.so and libgd. Se houver alguma dependência de biblioteca compilada a partir do código-fonte. This is especially likely if you’re using a recent (post 1.8. libgd.2 Instalação Exemplo 1: Problemas de configuração 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.MRTG | REDES Quadro 1: Pré-requisitos do MRTG Para instalar o MRTG a partir de seu código-fonte. Se for usado o SNMPv3 e outros novos recursos. O comando . Por exemplo.g..4) version of GD and didn’t configure it with --disable-shared. d) You have the GD library installed and also its headers./configure --prefix=/usr/local/ ➥mrtg-2.2. Check config. mas incrivelmente poderoso.. é preciso ao menos a versão 5. Download the source (see above) and use --with-gd-inc=DIR to specify where the file can be found. but if your copy of GD isprecompiled against it.15. --with-z-lib and --with-png-inc. ➧ GD: A biblioteca GD para gerar desenhos foi criada por Thomas Boutell[5]. que utiliza uma tecnologia de compressão patenteada pela Unisys. Para mais informações sobre como configurar o SNMP em máquinas Linux.. ➧ Perl: Além de C. Remove the shared library files and/or links (e.3 criam somente imagens PNG. b) You have the GD library installed. será necessário modificar os parâmetros do script de configuração para incluí-las. You might also have to use --with-z-inc.0. you have to install it . but not the gd. grandes partes do MRTG são escritas em Perl. É importante ter instalada no seu sistema uma versão recente do Perl (perl -v mostra a versão instalada).h header file. Nesse caso.15.boutell. Todas as versões após a 1. ➧ Zlib: A biblioteca Zlib é necessária para que a Libpng consiga comprimir os arquivos de imagens gerados[7]. butyou are missing libpng (and headers) or freetype (and headers) (MRTG does not use freetype. compile it.so. ele pode emitir uma mensagem de erro semelhante àquela do exemplo 1. Uma vez que estes estejam instalados./configure.com.log for more information on the problem. se for o caso da biblioteca gráfica GD. --with-png-lib for gd versions 1. one of many bad things happened: a) You don’t have the GD library installed.8. primeiramente é necessário fornecer os softwares dos quais ele depende: ➧ GCC: Como o programa é feito primariamente em C. deve-se modificar o script de configuração da seguinte forma: 61 Configuração Linux Magazine #45 | Agosto de 2008 . basta baixar o código-fonte em [1]. c) You have the library and the header file installed. O MRTG é capaz de usar versões novas ou velhas da biblioteca GD. O quadro 1 dá mais informações sobre os componentes necessários para o MRTG.2 /usr/ ➥local/mrtg Se o script de configuração do MRTG não conseguir encontrar alguma dependência. o que garantirá uma operação sem falhas. and use either --with-gd-lib=DIR or --with-gd-inc=DIR to specify its location. for o seu caso.2). A versão 5.so. o ideal é sempre usar as versões mais recentes das bibliotecas usadas pelo MRTG. a opção --prefix pode ser usado da seguinte forma para fazer a instalação de forma a facilitar futuras atualizações do software: . o compilador[4] é necessário.

é necessário verificar a instalação do SNMP.34/lib make make install ➥ntrouter --global Workdir:/usr/ ➥loca/apache2/htdocs --output= ➥/usr/local/mrtg/cfg/mrtg2. Adicione os nomes de máquinas ou os IPs dos servidores a serem monitorados no fim do script cfgmaker separados por espaços. deve-se começar pela criação dos seguintes diretórios para abrigarem as novas configurações personalizadas: mkdir /etc/mrtg ➥mkdir /etc/cron.cfg 62 http://www. . disco e uso da CPU. crie um arquivo cpu.15 --with-gd-lib=/usr/ ➥local/gd-2. Para ver tudo que está disponível.cfg para monitorar a carga da CPU usando o conteúdo mostrado no exemplo 2. Os arquivos de configuração do MRTG são complexos e trabalhosos para editar.conf com os dados necessários à geração de gráficos básicos. deve-se verificar se o snmpd na máquina monitorada está em execução e se o MIB UCD-SNMP foi compilado na instância do SNMP. Esse protocolo organiza as informações de endereçamento de dispositivos numa estrutura hierárquica conhecida como Management Information Base (MIB). Diretório onde as imagens e arquvos HTML devem ser criados.0. A primeira é o servidor que será monitorado e o segundo é a máquina que executará o MRTG. temos apenas uma máquina: Tux. que oferece várias opções. Teste do MIB Uma forma rápida de testar se o MIB UCD-SNMP está disponível consiste em usar o seguinte comando no servidor monitorado: snmpwalk -v1 -c public hostname ➥ ssCpuRawUser Agora que o arquivo mrtg2. O MIB UCD-SNMP permite o monitoramento de uma grande variedade de configurações extras de desempenho. como o cfgmaker.REDES | MRTG Tabela 1: Opções do comando cfgmaker Opção community global Workdir output Descrição Define o nome da comunidade SNMP./configure --prefix=/usr/local/ ➥mrtg-2. Se esse comando falhar. é necessário editar manualmente esse arquivo de configuração para gerar gráficos das estatísticas de recursos como memória. a definição do MIB[8] é de grande ajuda. o MRTG recebe suas informações pelo protocolo SNMP. A possibilidade de gerar gráficos do desempenho do servidor Linux depende fortemente desse MIB.34 --with-gd-inc=/ ➥usr/local/gd-2. Define os parâmetros globais de configuração para cada máquina configurada.mrtg Monitor de CPU O script cfgmaker deve ser executado da seguinte forma: /usr/local/mrtg/bin/cfgmaker ➥--community=public --global ➥ Options[_]:growright. Define onde o arquivo de configuração do MRTG será criado. motivo pelo qual o MRTG traz um script de configuração fácil de usar.com.linuxmagazine. O site do MRTG possui ótima documentação cobrindo todos os diferentes parâmetros para configuração do programa.cfg padrão já foi gerado pelo script cfgmaker.br .cfg Tux Modificação para desempenho Este artigo utilizará duas máquinas Linux como exemplos: Tux e Grapher. O exemplo a seguir presume que o MIB UCD-SNMP esteja carregado e que os dados possam ser consultados com o uso dessa definição de MIB. Antes de executar o script. Crie um arquivo de cron job para o monitoramento da CPU com o seguinte conteúdo: #!/bin/sh env LANG=C /usr/local/mrtg/bin/ mrtg /etc/mrtg/cpu. Para adicionar um parâmetro como uso da CPU à configuração do MRTG. Ele cria o arquivo mrtg.0. Para testar se o MIB UCD-SNMP está disponível e carregado.avgpeak. Depois. Em nosso caso. é importante criar um diretório para abrigar os arquivos de configuração do MRTG.pri Esse comando consulta o uso da CPU em relação ao tempo do usuário na máquina-alvo. Os argumentos mais básicos de sua linha de comando são mostrados na tabela 1. pois é possível usar inúmeras configurações diferentes numa única máquina: mkdir /usr/local/mrtg/cfg Como já explicado. Esse exemplo descreve como criar um modelo bem simples para criar gráficos do uso da CPU.

cpu]: Legend4[Tux.0:public@Tux + ssCpuRawNice. Ao final.cpu]: CPU Load PageTop[Tux.cpu]: Active CPU in % (Load) Legend2[Tux.cpu]: 100 Title[Tux.cfg o nome do arquivo que foi gerado pelos scripts do MRTG.cfg Exibindo desempenho A ferramenta indexmaker criou um arquivo de índice em /usr/local/apache2/htdocs/mrtg/cpu_index. consulte a definição do MIB UCD-SNMP[8] e simplesmente repita os passos anteriores.mrtg/cpu sh /etc/cron.cpu]: growright. Isso pode ser feito informando-se o caminho do binário do MRTG e executando-o no intervalo desejado com o cron.cpu]: Active LegendO[Tux. Linux Magazine #45 | Agosto de 2008 63 .html. modificando o OID e os parâmetros de legenda do gráfico.cpu]: ymwd ShortLegend[Tux.cfg 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 ## Gráficos da CPU da máquina Tux ## WorkDir: /usr/local/apache2/htdocs/mrtg LoadMIBs: /usr/share/snmp/mibs/UCD-SNMP-MIB.30. Conforme a configuração aplicada ao servidor web.20. mas lembre-se de que quanto menor for a freqüência de consulta.nopercent Figura 1 Gráfico de padrão normal no uso da CPU.cpu]: LegendI[Tux. Se um cron job não for configurado para executar o binário do MRTG.40.55 ➥ * * * * env LANG=C /usr/local/ ➥mrtg/bin/mrtg /usr/local/mrtg/ ➥cfg/mrtg2. Consulta Criamos um modelo para configurar gráficos personalizados específicos de recursos de sistema para dados de desempenho.50.25.cpu]: <H1>Active CPU Load %</H1> Unscaled[Tux.0:public@Tux RouterUptime[Tux.15. Nesse exemplo. o Apache foi utilizado e os arquivos foram gerados no diretório WorkDir. os dados do gráfico não serão preenchidos. execute-o aproximadamente três vezes: chmod +x /etc/cron.cpu]: CPU Utilization Legend1[Tux.10.mrtg/cpu para a coleta dos dados. adicione um super cron contendo as OIDs personalizadas: */5 * * * * /bin/run-parts /etc/ ➥cron.cpu]: Options[Tux. ➥html --title=”CPU Usage” -➥sort=name --enumerate /etc/mrtg/ ➥cpu. O próximo passo é escolher um intervalo de consulta Essa entrada executará o binário do MRTG a cada cinco minutos.0&ssCpuRawNice.0: linux-magazine@Tux + ssCpuRawSystem. número médio de usuários e uso de disco.MRTG | REDES Após tornar executável o comando para obtenção de dados da CPU.45.cpu]: public@Tux MaxBytes[Tux.mrtg 1> /dev/null Para gerar gráficos de qualquer outra métrica do sistema.cpu]: Legend3[Tux.25.txt Target[Tux.cpu]: % YLegend[Tux.0&ssCpuRawUser.0&ssCpuRawSystem. preenchendo os gráficos.5. É possível ajustar o intervalo de consulta conforme desejado. Para visualizar os resultados. crie o arquivo de índice utilizando o script indexmaker: indexmaker --output=/usr/local/ ➥apache2/htdocs/mrtg/cpu_index. pode ser necessário consultar Exemplo 2: Arquivo cpu. A linha a ser acrescentada ao crontab é: 0. menos preciso será o gráfico. como memória.cpu]:ssCpuRawUser. O gráfico está presente nesse arquivo.

gzip.um grupo de servidores sob carga O MRTG permite que o adminissa. que de gráficos e resolução de problemas indexmaker ou criar um portal para é um add-on do MRTG. ■ sempenho maior e mais opções de tarefa de becape agendada para esse customização do que os gráficos do horário. as necessidades tanto de pequenas bilidade de se agregar múltiplos Este artigo mostrou uma pequena quanto de grandes empresas.seguinte seria investigar os logs do [4] GCC: http://gcc.br .gnu. Diversas outras configuramicamente. é melhor primeiro procurar o arquivo no diretório de saída e só depois fornecer o nome do arquivo ao naFigura 2 Um pico anormal aparece no gráfico de uso da CPU. oidview. 64 http://www.2).org regularidade.boutell. org/zlib [8] Definição do MIB UCDSNMP: http://www.br/article/1154 MRTG são mais eficazes quando então é seguro afirmar que não houve [3] Net-SNMP: http:// visualizados e interpretados com um ataque aos servidores.desempenho.html [7] Zlib: http://www.REDES | MRTG Nomes de arquivos às vezes são gerados automaticamente.com/mibs/2021/ UCD-SNMP-MIB.linuxmagazine.ch/mrtg/ de tráfego de rede (figura 3). Na maioria das vezes. Outra possibilidade é que MRTG.html [9] RRDtool: http://oss. um trador do sistema rapidamente dedo MRTG para incluir métricas e padrão consistente se desenvolve ao tecte e investigue alterações em seu dados de desempenho.linuxmagazine. a figura 1 mostra criados e uma visão global resumida do sistema são uma boa recompen.libpng. suprindo longo do tempo. Depois de todo esse trabalho. da nesse horário. [2] Adriano Matos Meier. Geralmente falando.com/gd/ Exibindo banda Conclusão Interpretação de gráficos [6] Libpng: http://www. os gráficos do momento do pico no uso da CPU. uma explicação possível é alguma necessidades do administrador. vegador web. duas situações. os belos gráficos Por exemplo. Para decidir entre essas máquinas Linux.org gum tipo de gráfico basal e usá-lo servidor em busca de indicações da como comparação ao investigar e execução de alguma tarefa agenda[5] Biblioteca GD: http:// resolver problemas. É melhor gravar al.ch/rrdtool Figura 3 Uma rápida verificação do uso da rede mostra que o pico não foi causado pelo aumento do tráfego. oetiker. Use o RRDtool caso deseje tenha ocorrido algum ataque aos Mais informações monitorar um grande número de servidores. O gráfico de rede não mostra pico “Monitorar é preciso”: algum no tráfego de rede no mesmo http://www. Note que a possi. www.com. com. basta executar novamente o esse é um recurso do RRDtool. de desempenho do sistema com o exibir imagens PNG criadas dinaSe ocorrer um pico à meia-noite MRTG. Para servidores num único gráfico como fração das possibilidades de criação isso.net-snmp. no gráfico de CPU do servidor (figura ções são possíveis de acordo com as O RRDtool[9] oferece um de. org/pub/png/libpng. É possível escalar a instalação normal. pode-se comparar [1] MRTG: http://oss. os gráficos de uso da CPU com os oetiker. portanto. O passo www.

Pautado conforme o roteiro estabelecido pelo próprio Linux Professional Institute e por este recomendado. Só a LPI garante a formação que o mercado espera para lidar com os ambientes mais diversos.com. o segundo volume é voltado à preparação do exame para a LPI-2. A qualidade destes volumes é atestada pelos selos do LPI e do SENAC. . no site www. A venda nas melhores livrarias. que os utilizam como material didático em seus cursos.Coleção Linux Pro Prepare-se para a principal certificação profissional do mercado Linux Já em sua 2ª edição O primeiro volume traz informações referentes à LPI-1 e é o primeiro passo para a certificação.br. Estude para a prova de acordo com o conteúdo programático estabelecido pelo LPI. Certifique-se para entrar em um mercado de trabalho em pleno crescimento no Brasil e no mundo. ou pelo telefone (11) 4082-1300.linuxmagazine.