Julio Henrique (julio.mcp@uol.com.br) nos enviou este tutorial ensinando a configurar o MRTG para monitoração de equipamentos que usem o protocolo SNMP, com enfoque em equipamentos de redes como switches e roteadores.
Monitoração de equipamentos com suporte ao SNMP
Introdução
O MRTG é um pacote escrito em PERL e faz a coleta de dados via SNMP. Por isso, o equipamento a ser monitorado precisa oferecer suporte a este protocolo.
Apesar de ser possÃvel utilizar-se do MRTG para monitoração de qualquer equipamento que suporte o protocolo SNMP, este artigo visa a monitoração de equipamentos de rede, ou seja, basicamente switches e roteadores.
Este artigo cobre a instalação e configuração do MRTG na distribuição Debian do Linux.
Instalação
Para instalar e utilizar o MRTG no Debian GNU/Linux, você precisa de um compilador C e uma versão do Perl instalada no equipamento. Na maioria das instalações padrão, ambos estão disponÃveis. Caso não estejam, o utilitário de obtenção de pacotes da distribuição Debian, o apt-get, irá encarregar-se de instalá-los, uma vez que este analisa as dependências do pacote do MRTG.
Da mesma maneira, são necessárias algumas bibliotecas para que o MRTG possa gerar gráficos de estatÃsticas de tráfego: libgd, libpng, zlib, as quais o apt-get também se encarrega de instalar, caso estas não estejam pré-instaladas.
Uma vez instalado o sistema operacional (Debian GNU/Linux), obtém-se acesso de root à máquina, logando-se como tal, ou através do comando "su". Em seguida é recomendável atualizar a lista de pacotes disponÃveis ao apt-get, conforme abaixo:
# apt-get update
O apt-get irá atualizar as informações dos pacotes disponÃveis nos repositórios configurados (CDROMs, servidores HTTP, servidores FTP, sistema de arquivos, etc).
Como iremos utilizar os gráficos em HTML gerados pelo MRTG, vamos também fazer a instalação de um webserver nesta máquina. Por ser o mais utilizado, vamos cobrir o Apache (http://httpd.apache.org) neste artigo. Caso o mesmo não esteja instalado, pode ser através do comando:
# apt-get install apache
Isso irá instalar o Apache e suas dependências. Em seguida, podemos realizar a atualização do pacote do MRTG (e, conseqüentemente, de suas dependências):
# apt-get install mrtg
O apt-get irá instalar o pacote e questionar se o arquivo /etc/mrtg.cfg deve estar acessÃvel somente ao usuário do MRTG. Pode-se responder que sim; porém, eu particularmente prefiro criar um arquivo de configuração do MRTG para cada host a ser monitorado. Por isso, eu crio um diretório chamado /etc/mrtg, contendo os arquivos de configuração, os quais veremos em detalhes mais adiante.
Configuração
Após a instalação dos pacotes, é hora de partir para a criação dos arquivos de configuração dos hosts que o MRTG irá monitorar.
O MRTG possui um utilitário que auxilia na criação dos arquivos configuração. Trata-se do cfgmaker, que possui a seguinte sintaxe:
# cfgmaker --output /etc/mrtg/router_abc_xyz.cfg community@router.abc.xyz
Onde:
* o parâmetro --output define o arquivo de configuração que será gerado pelo cfgmaker;
* community é a comunidade SNMP do host, que é router.abc.xyz.
Atenção: para que o nome do host seja resolvido, o equipamento com o MRTG deve estar configurado com o(s) nome(s) do(s) servidor(es) DNS (arquivo /etc/resolv.conf); além disso, é necessário registro no servidor DNS para o host, associando-o com o respectivo endereço IP. Também pode ser utilizada uma entrada para o mesmo no arquivo /etc/hosts ou, ainda, o endereço IP no lugar do nome.
Exemplo: vamos supor que temos um roteador Cisco 2500 com endereço IP 192.168.1.10 e comunidade SNMP public. A sintaxe do comando cfgmaker seria:
# cfgmaker --output /etc/mrtg/router_2500.cfg public@192.168.1.10
Será gerado o arquivo router_2500.cfg como saÃda (em /etc/mrtg). Este arquivo contém as informações necessárias para que sejam gerados os gráficos. Porém, existem alguns parâmetros que podem ser configurados no arquivo para melhor visualização. Estes parâmetros são definidos nas seções "Global Config Options" e "Global Defaults", conforme abaixo:
WorkDir: /var/www/mrtg
Define qual será a pasta de trabalho do MRTG; ou seja, a pasta onde serão salvos os arquivos gerados pelo MRTG (logs, arquivos html e png, etc). à recomendável criar uma sub-pasta para cada host.
Options[_]: growright, bits
São duas opções em uma (mas podem ser configuradas separadamente): o growright faz com que o gráfico "caminhe" da direita para a esquerda, fazendo com que o horário atual fique à direita no gráfico; já o parâmetro bits define que o gráfico trará as informações em bits (por padrão, as informações são expressas em bytes).
Refresh: 600
à o tempo, em segundos, em que o browser irá atualizar a página. Por padrão, 300 segundos (5 minutos).
Interval: 10
à o tempo, em minutos, em que o MRTG irá buscar novas informações estatÃsticas junto ao host. Por padrão, 5 minutos.
Language: brazilian
Linguagem que será utilizada nos arquivos HTML que o MRTG gera.
RunAsDaemon: Yes
Para rodar o MRTG como daemon (processo). Ou seja, o MRTG ficará carregado, e vai buscar os dados do host conforme o parâmetro Interval (ou nos 5 minutos padrão).
Colocando para funcionar
Com o arquivo (ou arquivos) de configuração pronto, é hora de colocar o MRTG para monitorar os seus hosts. Isso é relativamente fácil. No prompt, basta entrar com o comando:
# mrtg /etc/mrtg/router_2500.cfg
Essa linha de comando iniciará o MRTG como root. Se você configurou a opção RunAsDaemon, não é necessário fazer mais nada.
Porém, será necessário digitar esta linha de comando sempre que a máquina for reinicializada. Além disso, será necessário digitar uma linha de comando para cada arquivo de configuração (caso tenha optado por criar um arquivo por host, com eu faço). Para automatizar a tarefa, pode-se criar um script de inicialização, adicioná-lo ao /etc/init.d e criar os links simbólicos para os runlevels que serão utilizados. Também é recomendável a criação de um usuário para rodar o MRTG.
Utilizo o script abaixo que, apesar de simples, é eficiente:
#! /bin/sh
/usr/bin/mrtg --user=mrtg-user /etc/mrtg/teste.cfg
Lembrando que deve ser adicionada uma linha para cada arquivo CFG, se forem arquivos separados por hosts. Uma vez criado o script em /etc/init.d (que eu chamei de mrtgd), também será necessário criar os links para os runlevels apropriados (no meu caso, o 2):
# ln -s /etc/init.d/mrtgd /etc/rc2.d/S99mrtgd
Se forem exibidas mensagens de erro na criação de alguns arquivos, verifique as permissões nos diretórios /etc/mrtg (caso tenha sido criado) e /var/lock/mrtg. Recomendo que seja atribuÃda propriedade destes diretórios ao usuário mrtg-user.
Conclusão e referências
Com o MRTG é possÃvel realizar a monitoração de qualquer equipamento que ofereça suporte ao protocolo SNMP.
A documentação do MRTG está no site oficial:
Outra parada obrigatória é a lista MRTG-BR:
* http://www.yahoogrupos.com.br/group/mrtg-br
Espero ter contribuÃdo com a comunidade Linux com este pequeno artigo.
Gostaria também de agradecer ao Vicente Sloboda, que mantém a lista de discussão MRTG-BR e que contribui fortemente com os usuários desta poderosa ferramenta.
Autor: Julio Henrique
Email: julio.mcp@uol.com.br
O Arquivo Histórico do BR-Linux.org mantém no ar (sem alteração, exceto quanto à formatação) notícias, artigos e outros textos publicados originalmente no site na segunda metade da década de 1990 e na primeira década do século XXI, que contam parte considerável a história do Linux e do Open Source no Brasil. Exceto quando indicado em contrário, a autoria dos textos é de Augusto Campos, e os termos de uso podem ser consultados na capa do BR-Linux.org. Considerando seu caráter histórico, é provável que boa parte dos links estejam quebrados, e que as informações deste texto estejam desatualizadas.