Augusto C. Campos - brain@matrix.com.br
O MRTG (www.mrtg.org) é um software livre que facilita enormemente a tarefa de acompanhar o funcionamento do seus sistema. Embora o seu foco seja o acompanhamento de componentes de rede através do protocolo SNMP, você pode muito bem utilizar este software para verificar o funcionamento do seu computador doméstico ou estação de trabalho.
O site do MRTG tem muitos exemplos de como monitorar roteadores e outros equipamentos de rede, mas muita gente procura informações sobre a interface do MRTG com programas externos.
Nesta dica demonstrarei como utilizar o MRTG para gerar um gráfico do uso de sua CPU, ocupação da memória e tráfego de dados em uma conexão PPP. As explicações sobre o funcionamento do software ficam para outra ocasião (aguardem ;-), ou para o site oficial do MRTG (www.mrtg.org). Se você tem alguma noção de programação shell, não terá dificuldade em extrapolar os exemplos e monitorar o que quiser e puder.
Para completar, montaremos uma página HTML bastante interessante para deixar como abertura do seu Netscape.
Em primeiro lugar, é preciso ter o pacote MRTG instalado (todas as diostribuições comerciais de Linux o incluem), e o seu kernel deve ter suporte ao pseudo-filesystem /proc habilitado e em operação, pois iremos coletar dados diretamente de seus componentes.
Nossos arquivos de exemplo serão instalados no diretório /home/brain/mrtg, mude de acordo com a sua conveniência.
Os scripts para interface com o MRTG se caracterizam por sempre retornarem dois valores, um em cada linha, na saída padrão a cada vez que são executados. Estes valores correspondem às variáveis (sempre duas) monitoradas pelo script.
O script abaixo, bastante simples, extrai dados sobre o tráfego na sua interface ppp0. Grave-o com o nome de pppstats, e torne-o executável com o comando "chmod 755 /home/brain/mrtg/pppstats"). Se quiser que ele grave os dados de sua placa de rede, ao invés do modem, substitua o ppp0 por eth0:
#!/bin/awk -f /ppp0:/ { $0=substr($0,index($0,":")+1); print $1;print $9}
Este segundo script extrai informações sobre o uso da CPU e da memória, transforma em percentual e repassa ao MRTG. Grave-o com o nome de cpustats, e torne-o executável com o comando "chmod 755 /home/brain/mrtg/cpustats")
#!/bin/sh mem=$(/usr/bin/free|grep ^-) cpu=$(grep '^cpu ' /proc/stat) /bin/awk -v cpu="$cpu" -v mem="$mem" ' BEGIN { split(cpu,cpustats) print 100-int(100*cpustats[4]/(cpustats[1]+\ cpustats[2]+cpustats[3]+cpustats[4])) split(mem,memstats); print int(100*memstats[3]/(memstats[3]+\ memstats[4])); }'
Agora, trate de criar um arquivo de configuração para o MRTG, e grave-o com o nome de mrtg.conf:
WorkDir: /home/brain/mrtg Target[ppp0]: `/home/brain/mrtg/pppstats /proc/net/dev` Title[ppp0]:"Tráfego na interface PPP0" PageTop[ppp0]: <h1>Tráfego de dados no modem local</h1> MaxBytes[ppp0]:7168 Options[ppp0]: growright,bits,noinfo #Unscaled[ppp0]:ymwdTarget[perf]:`/home/brain/mrtg/cpustats` Title[perf]:"CPU e memória" PageTop[perf]:"<h1>Uso de CPU e memória</h1>" MaxBytes[perf]:100 Unscaled[perf]:ymwd Options[perf]: growright,noinfo,gauge YLegend[perf]: Percentual ShortLegend[perf]: % Legend1[perf]: Uso de tempo da CPU Legend2[perf]: Uso da memória real LegendI[perf]: CPU LegendO[perf]: Mem
Tudo está pronto! Agora inclua na sua crontab a linha para executar o mrtg a cada 5 minutos, passando como parâmetro o nome do arquivo de configuração que você criou, conforme o exemplo:
*/5 * * * * /usr/bin/mrtg /home/brain/mrtg/mrtg.conf
Após 5 minutos você poderá ver o início dos seus gráficos se formando nos arquivos em formato html que serão criados no diretório /home/brain/mrtg. Antes de 5 minutos, os dados aparecerão zerados, mesmo que você execute várias vezes o mrtg manualmente - isto é uma consequência do modo como ele calcula suas estatísticas.
Minha página de abertura do Netscape (configurada através do menu Edit | Preferences) é o arquivo HTML copiado abaixo (com o nome de abertura.html), contendo um formulário para pesquisa rápida no google.com, link para os sites que visito com mais frequência, e inclusão de duas imagens geradas automaticamente pelo MRTG. Para usar o meu arquivo, tudo o que você tem que fazer é colá-lo em um arquivo abertura.html no seu diretório do mrtg, e depois editá-lo até ficar a seu gosto.
Veja a listagem do abertura.html:
<head> <title>Augusto C. Campos</title> </head> <body bgcolor=black text=yellow link=white vlink=white>
<h1 align=center>Augusto César Campos</h1> <table border=0 width=100%> <tr><td>
<form action=http://www.google.com/search method=get name=f> <table><tr><td> <input type=text value="" framewidth=4 name=q size=55 maxlength=256> <font size=-1 face=arial,sans-serif> <br><center><input type=radio name=lr value="" checked>Pesquisar na Web <input type=radio name=lr value=lang_pt >Pesquisar páginas em Português</center> </font> </td><td> <input name=btnG type=submit value="Pesquisa Google"> <br><input name=btnI type=submit value="Busca Direta"><input name=hl type=hidden value=pt> </td></tr></table> </form>
</td><td> <a href=http://www.linux.trix.net/>Linux in Brazil</a> <br><a href=http://www.linux.trix.net/forum/geral>Fórum</a> <br><a href=file:///home/brain/.netscape/bookmarks.html>Bookm$<br><a href=http://slashdot.org/>Slashdot</a> <br><a href=http://pontobr.org/>PontoBR</a> <br><a href=http://linuxtoday.com/>LinuxToday</a> <br><a href=http://freshmeat.net/>Freshmeat</a> </td></tr>
<tr><td colspan=2><center> <p><h1>Uso da CPU e memória nas últimas 24 horas</h1> <img src=perf-day.png> <br>(em verde: CPU ocupada. Em azul: memória ocupada) <h1>Uso do modem nas últimas 24 horas</h1> <img src=ppp0-day.png> <br>(em verde: tráfego recebido. Em azul: tráfego enviado) </center></td></tr> </table>
</body>
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.