Com o lançamento do encurtador eri.cx, alguns novos desafios vão surgindo como o gerenciamento do mesmo. Apesar das limitações, gosto de utilizar o MRTG para monitorar máquinas, ainda mais quando não posso demandar muito tempo administrando as mesmas.
Existem inúmeras ferramentas de monitração, como Nagios, mas nada é tão simples quanto o MRTG. Mesmo tendo sido criado pra tráfego de rede via snmp, qualquer coisa pode ser monitorada por ele, sabendo que a aquisição de dados ocorre a cada 5 minutos somente.
Se eu precisasse de algo com menor tempo ou maior granularidade, com certeza mudaria pra RRDtool. Mas isso já daria muito mais trabalho e iria de encontro ao meu princípio de manter a coisa simples.
Pois eu tenho um script bem antigo, em Python, que gera a saída formatada para uso no MRTG pra monitorar qualquer coisa. De discos à carga do sistema. Basicamente a saída é:
INPUT OUTPUT UPTIME HOSTNAME
Pra casos como o disco, pode-se usar tanto a quantidade de espaço livre quanto ocupado pra INPUT e OUTPUT. Ou deixar INPUT e OUTPUT iguais, mostrando a quantidade de disco usado, por exemplo, em porcentagem. Isso somente pra ilustrar os muitos usos do MRTG. Como exemplo, logo abaixo, como configurar o MRTG para monitorar a carga do sistema, através da saída do comando "uptime". Uma vez que MRTG não monitora números flutuantes, os valores são multiplicados por 100.
Target[load]: `/home/helio/bin/system.py load` Options[load]: gauge,noinfo, nopercent, growright, unknaszero, nobanner MaxBytes[load]: 2000 Title[load]: System load (100x) PageTop[load]: <H1>System load (100x)</H1> <TABLE> <TR><TD>System:</TD><TD>eri.cx</TD></TR> <TR><TD>Maintainer:</TD><TD>Helio Loureiro</TD></TR> <TR><TD>Interface:</TD><TD>System load (10x)</TD></TR> <TR><TD>IP:</TD><TD>none</TD></TR> <TR><TD>Max wan traffic:</TD> <TD>2 Mbps</TD></TR> </TABLE> YLegend[load]: System load (10x) ShortLegend[load]: load (10x)
Na monitoração do eri.cx, acabei com uma imagem do site parecida com essa abaixo:

A finalidade desse artigo não é entrar muito a fundo na questão de configuração do MRTG ou de scripts de monitoração, mas discutir sobre a limitação de página criada pelo MRTG. E como resolvi isso. Como é possível notar, o MRTG não se integrou ao design da página corretamente pois não existem muitas opções pra adicionar CSS ou javascript no mesmo.
Na configuração do MRTG, adicionei apenas as entradas abaixo:
Extension[_]: php AddHead[_]: <!--?php // Start YOURLS engine require_once( dirname(dirname(__FILE__)).'/includes/load-yourls.php' ); require(dirname(dirname(__FILE__)).'/user/config.php' ); yourls_html_head();
?--> <p><br> </p> <div align="center">Change already begun<br> <br> <br> <span style="font-weight: bold;" mce_style="font-weight: bold;"> PageFoot[_]: <br> </span></div> <p><br> </p> <p><br> </p> <--?php yourls_html_footer(); ?-->
Para solucionar isso, alterei a saída para:
Extension[_]: txt
removendo todo o restante. Em seguida fiz uma alteração no código da página em PHP, para incluir o conteúdo do arquivo gerado:
<?php
$target = "load.txt";
$FD = fopen($target, "r");
$DATA = fread($FD, filesize($target));
fclose($FD);
#echo $DATA;
$status = 0;
$content = explode("\n", $DATA);
foreach ($content as $line) {
if (ereg("<body>", $line)) {
$status++;
}
if (ereg("</body>", $line)) {
$status = 0;
}
if ($status) {
echo $line."\n";
}
}
?>


