Gerando gráficos para interfaces de rede com MRTG
Neste artigo mostrarei como configurar o software MRTG para gerar gráficos informativos sobre determinada interface de rede local definida pelo usuário.
Criando o script
Neste artigo não estarei demonstrando como instalar o software, supondo que o leitor esteja com tudo pronto, vamos prosseguir.
Primeiramente vamos criar um shell script para obter dois valores de uma determinada interface de rede plugada ao seu computador, entrada e saída de dados. Vou usar como exemplo ath0, pois é a minha interface de rede com acesso a internet, porém você poderá usar qualquer outra interface na qual queira gerar os gráficos.
Com base em outros scripts encontrados na internet, criei o meu e estarei explicando como funciona.
Primeiro vamos analisar:
# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 1109 17 0 0 0 0 0 0 1109 17 0 0 0 0 0 0
ath0: 6686671 9549 405223 0 0 405223 0 0 532591 5906 4 0 0 0 0 0
Bom, no nosso exemplo é preciso obter os valores que estão nas posições 1 e 9 após o ath0, pois eles representam a quantidade de bytes recebidos e enviados respectivamente. Então vamos automatizar esta tarefa da seguinte forma:
Crie um arquivo chamado "ath0.sh" no diretório /etc/mrtg, lugar onde ficam por padrão as configurações, irei explicar mais a frente. Dentro do arquivo ath0.sh adicione as seguintes linha:
Primeiramente vamos criar um shell script para obter dois valores de uma determinada interface de rede plugada ao seu computador, entrada e saída de dados. Vou usar como exemplo ath0, pois é a minha interface de rede com acesso a internet, porém você poderá usar qualquer outra interface na qual queira gerar os gráficos.
Com base em outros scripts encontrados na internet, criei o meu e estarei explicando como funciona.
Primeiro vamos analisar:
# cat /proc/net/dev
Inter-| Receive | Transmit
face |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed
lo: 1109 17 0 0 0 0 0 0 1109 17 0 0 0 0 0 0
ath0: 6686671 9549 405223 0 0 405223 0 0 532591 5906 4 0 0 0 0 0
Bom, no nosso exemplo é preciso obter os valores que estão nas posições 1 e 9 após o ath0, pois eles representam a quantidade de bytes recebidos e enviados respectivamente. Então vamos automatizar esta tarefa da seguinte forma:
Crie um arquivo chamado "ath0.sh" no diretório /etc/mrtg, lugar onde ficam por padrão as configurações, irei explicar mais a frente. Dentro do arquivo ath0.sh adicione as seguintes linha:
#!/bin/bash
cat /proc/net/dev | grep ath0 | cut -d : -f 2 | awk '{ print $1; print $9 }'
cat /proc/net/dev | grep ath0 | cut -d : -f 2 | awk '{ print $1; print $9 }'
Salve o arquivo e dê permissão de execução da seguinte forma:
# chmod +x ath0.sh
Para testar se ocorreu tudo de forma correta, vamos testar o script.
# ./ath0
6887836
591145
Tudo ocorreu como o esperado, caso você tenha algum problema, revise o script e faça as alterações necessárias.