Com o arquivo de configuração pronto, é hora de colocar o MRTG para monitorar o equipamento. Isso é relativamente fácil. No prompt, basta entrar com o comando:
# mrtg /etc/mrtg/switch.cfg
Essa linha de comando iniciará o MRTG como root. Aí você tem duas opções: ou configura o parâmetro RunAsDaemon no arquivo .cfg, e não é necessário fazer mais nada (O MRTG irá coletar as estatísticas no equipamento a cada cinco minutos, ou conforme o parâmetro Interval); ou, ainda, você pode criar um agendamento via cron para rodar a mesma linha de comando acima.
Porém, se você optou pelo parâmetro RunAsDaemon, 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 equipamento). 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.
No artigo anterior, utilizei o script abaixo, simples e eficiente:
#!/bin/sh
/usr/bin/mrtg --user=mrtg-user /etc/mrtg/switch.cfg
Lembrando que deve ser adicionada uma linha para cada arquivo CFG, se forem arquivos separados por equipamentos.
Mas, como minha capacidade de criar scripts desenvolveu-se muito (graças a apostila de Shell do Aurélio - dêem uma olhada em
http://www.aurelio.net/shell), desta vez, vamos utilizar um script bem mais elaborado.
#!/bin/sh
# mrtgd - Script para iniciar e parar monitoração via MRTG
# 26/03/2005 - Júlio Henrique
# Email: julio.henrique@gmail.com
#
# Divulgo este script NO ESTADO, sem nenhuma garantia, implícita
# ou explícita; e o mesmo pode ser utilizado, copiado, distribuído
# e modificado, conforme a licença GPL.
# Sugestões e/ou melhorias são muito bem-vindas.
#
#
# Variáveis
MRTG=/usr/bin/mrtg # Caminho do executável do MRTG
CFG=/etc/mrtg # Caminho dos arquivos de configuração do MRTG
MRTGUSER=mrtg # Usuário do MRTG
#################################
# Declaração das Funções #
#################################
# Mostra a sintaxe do comando
Uso(){
echo -e "\nUtilize $0 {start|stop|restart|status}\n"
return 0
}
# Inicia o MRTG
Iniciar(){
echo -e "\nIniciando MRTG..."
for cfg in `ls $CFG/*.cfg`; do
$MRTG --user=$MRTGUSER $cfg &> /dev/null
done
echo -e "\nMRTG iniciado!"
return 0
}
# Encerra o MRTG
Parar(){
echo -e "\nParando MRTG..."
for dotpid in `ls $CFG/*.pid 2> /dev/null`; do
kill -9 `cat $dotpid` &> /dev/null # -9 para que o MRTG não exiba mensagem de erro
echo "Finalizado processo `cat $dotpid`"
rm -f $dotpid
done
if [ "$dotpid" = "" ]; then
echo -e "\nErro! MRTG não está em execução\n"
else
echo -e "\nMRTG Finalizado!\n"
fi
return 0
}
# Verifica se o MRTG está rodando e devolve o PID
Status(){
for cfg in `ls $CFG/*.cfg`; do
mrtgpid=$(ps ax | grep -v "grep" | grep "$cfg" | tr -s " " | cut -f2 -d" ")
if [ "$mrtgpid" = "" ]; then
echo -e "\nO MRTG não está em execução no momento."
return 0
fi
echo -e "\nMRTG em execução\tCFG: $cfg\tProcesso: $mrtgpid"
done
echo ""
return 0
}
####################################
# Término da declaração de Funções #
####################################
# Verifica se recebeu argumento na linha de comando
if [ "$#" = "0" ]; then
Uso
exit
fi
# Teste das opções recebidas via linha de comando
while [ "$1" ]; do
case $1 in
status) Status;;
start) Iniciar;;
stop) Parar;;
restart) Parar && Iniciar;;
*) echo ""
echo "ERRO! Opção inválida: $1"; Uso;;
esac
shift
done
Uma vez criado o script em /etc/init.d (que chamaremos de mrtgd) e atribuída permissão de execução (chmod +x /etc/init.d/mrtgd), também será necessário criar os links para os runlevels apropriados. Isso pode ser feito de duas maneiras.
A primeira, com a dica dada pelo
Fábio, no artigo anterior. Mais uma vez, agradeço o Gigabyte de contribuição.
# /usr/sbin/update-rc.d mrtgd defaults
Já a segunda maneira, mais visual, foi contribuição do
Aldefax G. Kuhn (AGK) ao artigo anterior, que também agradeço. Uma vez criado o script em /etc/init.d, basta executar o comando
rcconf (que deve estar instalado na máquina - caso não esteja, APT-GET nele!!), e será exibida a lista de serviços do sistema. Basta selecionar o script recém-criado, e os links simbólicos serão criados nos respectivos Runlevels.
Para iniciar o MRTG, considerando que estamos utilizando o script acima, basta digitar:
# /etc/init.d/mrtgd start
Se não ocorreu nenhum erro, o MRTG está no ar.
Se forem exibidas mensagens de erro na criação de alguns arquivos, verifique as permissões nas pastas /etc/mrtg (caso tenha sido criada) e /var/lock/mrtg. Recomendo que seja atribuída a propriedade destas pastas ao usuário do mrtg.
Para testar, vamos supor que o servidor do MRTG possua o endereço 192.168.1.100 (e que o apache esteja configurado com a porta 80 padrão); então, aponte o seu navegador para:
http://192.168.1.100/cgi-bin/mrtg-rrd.cgi
Serão exibidas, em uma única página, todas as interfaces de todos os equipamentos que estão sendo monitorados. Pode-se criar páginas personalizadas, que apontam para os respectivos links HTTP de cada interface.