8. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
É dada permissão para copiar, distribuir e/ou modificar este documento sob os termos
da Licença de Documentação Livre GNU, Versão 1.1 ou qualquer versão posterior
públicada pela Free Software Foundation; com o Capitulo Invariante SOBRE ESSA
APOSTILA. Uma cópia da licença está inclusa na seção entitulada "Licença de Docu-
mentação Livre GNU".
Os 10 mandamentos do aluno de educação online
• 1. Acesso à Internet: ter endereço eletrônico, um provedor e um equipamento adequado é
pré-requisito para a participação nos cursos a distância.
• 2. Habilidade e disposição para operar programas: ter conhecimentos básicos de Informá-
tica é necessário para poder executar as tarefas.
• 3. Vontade para aprender colaborativamente: interagir, ser participativo no ensino a distân-
cia conta muitos pontos, pois irá colaborar para o processo ensino-aprendizagem pessoal,
dos colegas e dos professores.
• 4. Comportamentos compatíveis com a etiqueta: mostrar-se interessado em conhecer seus
colegas de turma respeitando-os e fazendo ser respeitado pelo mesmo.
• 5. Organização pessoal: planejar e organizar tudo é fundamental para facilitar a sua revisão
e a sua recuperação de materiais.
• 6. Vontade para realizar as atividades no tempo correto: anotar todas as suas obrigações e
realizá-las em tempo real.
• 7. Curiosidade e abertura para inovações: aceitar novas idéias e inovar sempre.
• 8. Flexibilidade e adaptação: requisitos necessário à mudança tecnológica, aprendizagens
e descobertas.
• 9. Objetividade em sua comunicação: comunicar-se de forma clara, breve e transparente é
ponto - chave na comunicação pela Internet.
• 10. Responsabilidade: ser responsável por seu próprio aprendizado. O ambiente virtual não
controla a sua dedicação, mas reflete os resultados do seu esforço e da sua colaboração.
Como participar dos fóruns e Wikipédia
Você tem um problema e precisa de ajuda?
Podemos te ajudar de 2 formas:
A primeira é o uso dos fóruns de notícias e de dúvidas gerais que se distinguem pelo uso:
. O fórum de notícias tem por objetivo disponibilizar um meio de acesso rápido a informações
que sejam pertinentes ao curso (avisos, notícias). As mensagens postadas nele são enviadas a
7
9. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
todos participantes. Assim, se o monitor ou algum outro participante tiver uma informação que
interesse ao grupo, favor postá-la aqui.
Porém, se o que você deseja é resolver alguma dúvida ou discutir algum tópico específico do
curso. É recomendado que você faça uso do Forum de dúvidas gerais que lhe dá recursos mais
efetivos para esta prática.
. O fórum de dúvidas gerais tem por objetivo disponibilizar um meio fácil, rápido e interativo
para solucionar suas dúvidas e trocar experiências. As mensagens postadas nele são enviadas
a todos participantes do curso. Assim, fica muito mais fácil obter respostas, já que todos podem
ajudar.
Se você receber uma mensagem com algum tópico que saiba responder, não se preocupe com a
formalização ou a gramática. Responda! E não se esqueça de que antes de abrir um novo tópico
é recomendável ver se a sua pergunta já foi feita por outro participante.
A segunda forma se dá pelas Wikis:
. Uma wiki é uma página web que pode ser editada colaborativamente, ou seja, qualquer par-
ticipante pode inserir, editar, apagar textos. As versões antigas vão sendo arquivadas e podem
ser recuperadas a qualquer momento que um dos participantes o desejar. Assim, ela oferece um
ótimo suporte a processos de aprendizagem colaborativa. A maior wiki na web é o site "Wikipé-
dia", uma experiência grandiosa de construção de uma enciclopédia de forma colaborativa, por
pessoas de todas as partes do mundo. Acesse-a em português pelos links:
• Página principal da Wiki - http://pt.wikipedia.org/wiki/
Agradecemos antecipadamente a sua colaboração com a aprendizagem do grupo!
Primeiros Passos
Para uma melhor aprendizagem é recomendável que você siga os seguintes passos:
• Ler o Plano de Ensino e entender a que seu curso se dispõe a ensinar;
• Ler a Ambientação do Moodle para aprender a navegar neste ambiente e se utilizar das
ferramentas básicas do mesmo;
• Entrar nas lições seguindo a seqüência descrita no Plano de Ensino;
• Qualquer dúvida, reporte ao Fórum de Dúvidas Gerais.
Perfil do Tutor
Segue-se uma descrição do tutor ideal, baseada no feedback de alunos e de tutores.
O tutor ideal é um modelo de excelência: é consistente, justo e profissional nos respectivos
valores e atitudes, incentiva mas é honesto, imparcial, amável, positivo, respeitador, aceita as
idéias dos estudantes, é paciente, pessoal, tolerante, apreciativo, compreensivo e pronto a ajudar.
8
10. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
A classificação por um tutor desta natureza proporciona o melhor feedback possível, é crucial, e,
para a maior parte dos alunos, constitui o ponto central do processo de aprendizagem.’ Este tutor
ou instrutor:
• fornece explicações claras acerca do que ele espera, e do estilo de classificação que irá
utilizar;
• gosta que lhe façam perguntas adicionais;
• identifica as nossas falhas, mas corrige-as amavelmente’, diz um estudante, ’e explica por-
que motivo a classificação foi ou não foi atribuída’;
• tece comentários completos e construtivos, mas de forma agradável (em contraste com um
reparo de um estudante: ’os comentários deixam-nos com uma sensação de crítica, de
ameaça e de nervossismo’)
• dá uma ajuda complementar para encorajar um estudante em dificuldade;
• esclarece pontos que não foram entendidos, ou corretamente aprendidos anteriormente;
• ajuda o estudante a alcançar os seus objetivos;
• é flexível quando necessário;
• mostra um interesse genuíno em motivar os alunos (mesmo os principiantes e, por isso,
talvez numa fase menos interessante para o tutor);
• escreve todas as correções de forma legível e com um nível de pormenorização adequado;
• acima de tudo, devolve os trabalhos rapidamente;
9
12. Capítulo 1
O que é o MRTG
O Multi Router Traffic Grapher (MRTG) é uma ferramenta para monitorar o tráfego em links
de rede. O MRTG gera páginas HTML que contêm imagens PNG provendo uma representa-
ção visual do tráfego em tempo real. Sob a licensa Gnu GPL está disponível livremente em:
http://oss.oetiker.ch/mrtg/
11
13. Capítulo 2
Plano de ensino
2.1 Objetivo
Qualificar técnicos na instalação e uso do programa MRTG.
2.2 Público Alvo
2.3 Pré-requisitos
Técnicos interessados em trabalhar com monitoração de rede utilizando o MRTG.
2.4 Descrição
O curso de MRTG será realizado na modalidade EAD e utilizará a plataforma Moodle como
ferramenta de aprendizagem. Ele é composto de um módulo de aprendizado que será dado
na primeira semana e um módulo de avaliação que será dado na segunda semana. O material
didático estará disponível on-line de acordo com as datas pré-estabelecidas no calendário. A
versão utilizada para o MRTG será a 2.13.2
2.5 Metodologia
O curso está dividido da seguinte maneira:
• Semana 1 – MRTG - Multi Router Traffic Grapher
Todo o material está no formato de livro, e estará disponível ao longo do curso. O livro poderá
ser acessado quantas vezes forem necessárias. Aconselhamos a leitura de "Ambientação do
Moodle", para que você conheça o produto de Ensino a Distância, evitando dificuldades advindas
do "desconhecimento"sobre o mesmo.
Ao final de cada semana do curso será disponibilizada a prova referente ao módulo estudado
anteriormente que também conterá perguntas sobre os textos indicados. Utilize o material
de cada semana e os exemplos disponibilizados para se preparar para prova.
12
14. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Os instrutores estarão a sua disposição ao longo de todo curso. Qualquer dúvida deve ser
disponibilizada no fórum ou enviada por e-mail. Diariamente os monitores darão respostas e
esclarecimentos.
2.6 Cronograma
Semana 1
• Conhecendo o MRTG
• Instalação
• Configuração
• Rodando o MRTG automaticamente
• Scripts externos
2.7 Programa
2.8 Avaliação
Instrumentos de avaliação:
• Participação ativa nas atividades programadas.
• Avaliação ao final do curso.
• O participante fará várias avaliações referente ao conteúdo do curso. Para a aprovação e
obtenção do certificado o participante deverá obter nota final maior ou igual a 6.0 de acordo
com a fórmula abaixo:
Nota Final = ((ML × 7) + (AF × 3))/10
• ML= Média aritmética das lições
• AF = Avaliações
2.9 Bibliografia
• Site official: http://oss.oetiker.ch/mrtg/
13
15. Capítulo 3
Semana 1
3.1 Lição 1 - Conhecendo o MRTG
3.1.1 MRTG — Multi-router traffic grapher
O MRTG é uma ferramenta para monitorar o tráfego utilizado em sua rede/link. O MRTG gera
páginas HTML que contêm imagens GIF, tais imagens apresentam uma representação visual
desse tráfego através de gráficos. Veja um exemplo:
Veremos mais exemplos mais a frente.
O MRTG é desenvolvido em Perl e C e programado para funcionar sob sistemas UNIX e
Windows, e é em código livre sob a licença Gnu GPL.
O MRTG utiliza o SNMP para a coleta dos dados para a construção do gráfico, porém é
possível utilizar scripts externos para fazer tal coleta.
3.1.2 Características gerais
Portabilidade :
O MRTG funciona na maioria das plataformas UNIX e Windows NT.
Perl :
O MRTG é escrito em Perl e vem com todo o código fonte disponível.
Portabilidade SNMP :
O MRTG usa uma implementação totalmente portável de SNMP escrita toda em Perl (gra-
ças a Simon Leinen). Não há necessidade de instalar qualquer pacote externo SNMP(cliente).
Suporte SNMPv2c :
MRTG suporta contadores 64bit do SNMPv2c.
Identificação confiável de interfaces :
Interfaces de roteadores podem ser identificadas pelo endereço IP, descrição e endereço
ethernet além do número padrão de interface.
14
16. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Arquivos Log de tamanho fixo :
Os arquivos de log do MRTG NÃO crescem de tamanho graças ao uso de um algoritmo
único de consolidação de dados.
Configuração automática :
O MRTG vem com um kit de ferramentas próprias para sua configuração, tornando-a bem
simples.
Performance :
Rotinas com tempo crítico são implementadas em C, para maior performance.(Graças a
iniciativa de Dave Rand)
Gráficos em PNG :
Gráficos são gerados diretamente para o formato PNG usando a biblioteca GD de Thomas
Boutell.
Customização :
A aparência das páginas HTML produzidas pelo MRTG são altamente configuráveis.
RRDtool :
MRTG possui suporte interno para o uso da ferramenta RRDtool.
3.1.3 História
O MRTG surge após uma necessidade e curiosidade de conhecer a performance de uma linha
de 64kbit, onde Tobias Oetiker trabalhava em 1994. Oetiker, então, criou um pequeno programa
que atualizava um gráfico na internet onde era mostrado a carga no link de Internet. Eventu-
almente, o programa se desenvolveu em um script Perl razoavelmente customizável chamado
MRTG-1.0, que foi lançado em 1995. A partir daí Oetiker deixou o MRTG de lado por falta de
tempo. Em Janeiro de 1996, Oetiker recebe um email de Dave Rand, perguntando sobre o MRTG
e seu desenvolvimento demorado. Oetiker sabia que a programação do MRTG não era muito
eficiente e estava escrito toda em Perl. Depois de mais ou menos uma semana, Rand escreveu
a Oetiker novamente dizendo que havia feito uma tentativa de aprimorar a velocidade do MRTG.
Rand havia decidido reescrever partes críticas do programa na linguagem C. O código fora man-
dado a Oetiker pelo email. A nova implementação provia aumento de velocidade do MRTG em
até 40 vezes! Isto fez com que Oetiker recomeçasse a trabalhar com o MRTG nas horas vagas
para desenvolver o MRTG-2.
Após o desenvolvimento do MRTG-2, cópias beta foram distribuídas a interessados. Com
isso o projeto recebeu inúmeros patches, vários bug fixes e feedback dos usuários. O produto
disponível hoje não estaria em tal estado se não fosse a grande contribuição e suporte de sua
comunidade de usuários.
Leia mais :
Aprenda mais sobre o MRTG na página oficial: http://oss.oetiker.ch/mrtg Para mais exem-
plos de gráficos do MRTG, visite: http://www.stat.ee.ethz.ch/mrtg/
Autor :
Tobias Oetiker <oetiker@ee.ethz.ch> e vários contribuintes
15
17. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
3.2 Lição 2 - Instalação
3.2.1 Apt-get
Se você usa o sistema Debian ou um de seus derivados, pode usar a ferramenta apt-get e
provavelmente apenas terá que digitar no prompt de comando:
# apt-get install mrtg
O programa será baixado e instalado automaticamente.
O exemplo que será mostrado neste curso será a monitoração de sua própria placa de rede,
somente para entendermos o funcionamento do MRTG. Para tanto deveremos instalar um agente
SNMP que fornecerá as informações necessárias ao MRTG sobre a placa e o tráfego que passa
por ela. No caso de monitoramento do roteador, este deve ter suporte a SNMP (possuir um
agente SNMP interno), estar habilitada esta função e estar definida uma senha community para
ele.
Para instalar o agente SNMP faça:
# apt-get install snmpd
Novamente o programa é instalado automaticamente.
3.2.2 Código Fonte
Se você preferir baixar o programa e compilá-lo visite a página oficial do MRTG http://oss.oetiker.ch/mrtg/
e baixe os códigos fonte.
O MRTG requer o seguinte para compilar e funcionar no seu Linux: gcc, perl, gd, libpng, zlib.
Provavelmente sua distribuição já veio com esses pacotes, então eles não serão tratados aqui.
Vamos agora começar a instalação:
# tar zpfx mrtg-<versao>.tar.gz # cd mrtg-<versao> # ./configure - -prefix=/usr
- -sysconfdir=/etc/mrtg
[...configurando a compilação...]
# make
[...compilando...]
# make install
Se tudo correr bem, o MRTG estará instalado no sistema e você pode configurá-lo.
Lembre-se que é necessário possuir um agente SNMP e se você não possui um é necessário
instalá-lo. Não cobriremos aqui como compilar o agente SNMP, portanto apenas digite no terminal
de comando como na página anterior:
# apt-get install snmpd
16
18. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
3.3 Lição 3 - Configuração
3.3.1 Configuração do Agente SNMP
Após a instalação do MRTG e do agente SNMP, devemos configurar o agente SNMP. Se
você já possuía um Agente SNMP instalado e devidamente configurado, então não é necessário
realizar esta etapa.
Ao ser instalado o Agente SNMP (snmpd) cria o arquivo de configuração /etc/snmp/snmpd.conf.
Abra o arquivo com um editor de textos e procure pelas linhas seguintes:
# sec.name source community com2sec paranoid default public #com2sec readonly
default public #com2sec readwrite default private
Comente a segunda linha e descomente a terceira. Isto ativará o fornecimento de informações
pela senha community: public
Ficará assim:
# sec.name source community #com2sec paranoid default public com2sec readonly
default public #com2sec readwrite default private
Pronto. Agora iniciamos o agente:
# /etc/init.d/snmpd start
3.3.2 Configuração automática
Com o snmpd(o nosso agente SNMP) já configurado e rodando podemos agora criar um
arquivo de configuração para o MRTG. Vamos configurá-lo para monitorar a rede no nosso com-
putador local criando o arquivo de configuração com auxílio da ferramenta cfgmaker, que vem
com MRTG.
Digite no terminal de comando:
# cfgmaker - -global 'WorkDir: /var/www/mrtg'
- -global 'Options[_]: bits,growright'
- -output /etc/mrtg.cfg
public@127.0.0.1
Este comando gera a configuração para o ip 127.0.0.1 (localhost) com a community public e
grava esta configuração no arquivo "/etc/mrtg.cfg". Ao mesmo tempo são passados alguns parâ-
metros para a configuração: O WorkDir (que indica o diretório onde serão gravados os arquivos) e
Options (Algumas opções para a criação dos gráficos). Não se preocupe com esses parâmetros
no momento, veremos eles com mais detalhes adiante.
O arquivo criado nesta etapa é um modelo bem básico, porém funcional. Poderemos editá-lo
nas lições seguintes para obter uma maior customização de nossos gráficos.
Caso queira configurar para a monitoração de um dispositivo como o roteador, você deve ter
em mãos o IP dele e a senha community. Apenas troque o ip 127.0.0.1 pelo ip do seu roteador e
a senha community que neste caso é public pela senha community do roteador. Lembrando que
o roteador precisa ter suporte ao SNMP e esta opção deve estar habilitada. Agora que o MRTG
está devidamente configurado podemos testá-lo. Digite:
17
19. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
# mrtg /etc/mrtg.cfg
Isto irá rodar o MRTG e criará os primeiros arquivos HTML e gráficos. Estes arquivos e
gráficos serão salvos na pasta indicada por WorkDir (neste caso /var/www/mrtg).
É normal ocorrerem alguns avisos na primeira e segunda vez em que se roda o programa.
Avisos acerca de arquivos de log. Se, no entanto, isto continuar você deve verificar o problema.
O MRTG deve rodar "silenciosamente".
Para visualizar as páginas, abra-as em seu navegador web. Como o MRTG roda a cada 5
minutos você provavelmente não verá gráfico nenhum =), apenas gráficos vazios. Isto é normal,
pois a monitoração apenas começou e portanto não há dados para se criar um belo gráfico.
Obs: Se você possui um servidor web instalado, indique através do parâmetro WorkDir o
diretório home do servidor e rode o cfgmaker novamente. Assim vai ser possível visualizar as
páginas através do servidor web pelo navegador.
3.3.3 Configuração Manual
A ferramenta cfgmaker gera um arquivo de configuração genérico, é desejável que criemos o
nosso arquivo de configuração a partir deste, sendo possível customizar ao máximo o funciona-
mento do MRTG de acordo com as nossas exigências e necessidades. Vejamos então a estrutura
do arquivo de configuração mrtg.cfg criado anteriormente, que se encontra no diretório /etc.
Primeiramente devemos observar que as palavras reservadas ou keywords devem sempre
estar na primeira coluna do arquivo, ou seja, sempre na primeira posição de cada linha. Linhas
que começam por # são ignoradas pelo MRTG, são apenas comentários. Linhas que contém
espaço em branco na primeira posição são concatenadas com a linha superior.
Agora, vejamos as keywords:
Configurações globais:
WorkDir :
Especifica o diretório em que serão armazenadas as páginas HTML, gráficos e logs. Esta
keyword tem prioridade sobre a HtmlDir, ImageDir e LogDir, ou seja, se as quatro keywords
estiverem presentes no arquivo, apenas WorkDir é considerada. Ex: WorkDir: /home/user/mtrg
HtmlDir :
Especifica o diretório em que serão armazenadas as páginas HTML.
ImageDir :
Especifica o diretório em que serão armazenadas as imagens. Deve ser um subdiretório de
HtmlDir.
LogDir :
Especifica o diretório em que serão armazenados os arquivos de log. Não é necessário ser
um subdiretório de HtmlDir.
Interval :
Indica em quantos minutos o mrtg deve ser chamado. O valor padrão é de 5 minutos e não
se deve utilizar valores menores do que este.
Refresh :
Indica em quantos segundos o browser deve recarregar a página. Se não estiver definido,
o padrão de 300 segundos(5 minutos) é utilizado.
18
20. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Language :
Define o idioma a ser utilizado para o formato de saída. Os idiomas suportados atualmente
são:
big5 brazilian bulgarian
catalan chinese croatian
czech danish dutch
eucjp french galician
gb gb2312 german
greek hungarian icelandic
indonesia iso2002jp italian
korean lithuanian malay
norwegian polish portuguese
romanian russian russian 1251
serbian slovak slovenian
spanish swedish turkish
ukrainian
Ex: Language: Brazilian.
RunAsDaemon :
Define a execução do MRTG como daemon. O propósito é que ao rodar como daemon o
MRTG é chamado apenas uma vez e não repetidas vezes como acontece com cron. Ex:
RunAsDaemon: yes
Exemplo de um arquivo de configuração mínimo:
# Configurações globais
RunAsDaemon: Yes
Refresh: 300
Interval: 5
Language: Brazilian
WorkDir: /usr/tardis/pub/www/stats/mrtg
# Configurações por alvo
Target[r1]: 2:public@myrouter.somplace.edu
MaxBytes[r1]: 8000
Title[r1]: Traffic Analysis ISDN
PageTop[r1]: <H1>Stats for our ISDN Line</H1>
3.3.4 Configuração manual - Configurações por alvo
Target :
A keyword Target(alvo) diz ao MRTG o que deve ser monitorado. Cada alvo deve possuir
um nome único, declarado na seguinte forma:
Target[nome]:
19
21. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Este nome deve ser utilizado em cada parâmetro referente a este alvo. Ele é também
utilizado para criar os nomes das páginas, figuras e logs do alvo. O formato mais básico de
especificar um alvo é:
Target[nome]: porta:community@roteador
Isto gera um gráfico para o tráfego na interface ’porta’ do host ’roteador’ utilizando a senha
snmp ’community’. É possível também usar o formato de caminho para um script que re-
torne quatro valores, um em cada linha, que representam os dados para os quais se quer
criar o gráfico. O formato é:
Target[nome]: `caminho do arquivo`
Note que são usadas crases para indicar o caminho do arquivo, e não aspas simples. Vere-
mos mais a frente alguns exemplos de scripts que podem ser usados com o MRTG.
MaxBytes :
O valor máximo que as variáveis do gráfico podem atingir. Quando se monitora tráfego do
roteador, normalmente este valor é em bytes/segundo que a interface suporta.
Se um valor maior do que MaxBytes é retornado, é ignorado na construção do gráfico.
Como a maioria das conexões é medida em bits/segundo, devemos dividir o valor máximo
da largura da banda(dada em bits) por 8, assim teremos o valor correspondente em by-
tes/segundo.
T1 = 193000 B/s 56K = 7000 B/s 10 MB Ethernet = 1250000 B/s 100 MB Ethernet
= 12500000 B/s
Caso seja necessário utilizar dois valores MaxBytes diferentes para duas variáveis diferen-
tes, pode-se usar MaxBytes1 e MaxBytes2 em vez de MaxBytes. Exemplo:
MaxBytes: 1250000
Title :
Adiciona um título para a página HTML que é gerada. Exemplo:
Title[nome]: <h1>Análise do tráfego em 192.168.0.1</h1>
PageTop :
Adiciona texto no início da página HTML que é gerada. Caso seja necessário pular de linhas
deve ser usada a seqüência ’n’. Lembrando que é possível utilizar várias linhas para esta
keyword desde que as linhas abaixo possuam o primeiro espaço em branco. Exemplo:
PageTop[nome]: Análise do tráfego em 192.168.200.2n
PageFoot :
Adiciona texto no fim da página gerada. Similar ao PageTop.
Unscaled :
Por padrão todos os gráficos são redimensionados verticalmente (eixo y) para facilitar a
visualização quando os valores são muito menores do que MaxBytes. Para suprimir esta
20
22. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
propriedade usamos a keyword Unscaled. O argumento é uma string com uma letra cor-
respondendo ao gráfico que se deseja suprimir: d=gráfico de dias, w=semanas, m=meses,
y=anos. Exemplo:
Unscaled[nome]: wmy
Suppress :
Pode-se suprimir um gráfico totalmente, caso não se deseje sua presença na página HTML.
Para isso usamos a keyword Suppress. O argumento é análogo à opção acima. Exemplo:
Supress[nome]: my
Xsize, Ysize :
Altera o tamanho em pixels do gráfico. O tamanho padrão é de 100x400. O valor X deve
estar entre 20 e 600 e Y deve ser maior do que 20. Exemplo:
Xsize[nome]: 500 Ysize[nome]: 600
Xzoom, Yzoom :
Aumenta o tamanho do pixel em X e Y (Zoom). Exemplo:
Xzoom[nome]: 2.0 Yzoom[nome]: 1.5
Xscale, Yscale :
Redimensiona o gráfico em X e Y. O tamanho é multiplicado pelo argumento dado. Exemplo:
Xscale: 1.5 Yscale: 1.5
Options :
Permite a passagem de algumas chaves booleanas:
• growright: por padrão o gráfico ?anda? da esquerda para a direita. Growright inverte
este sentido.
• bits: todos os valores das variáveis são multiplicados por 8. E altera a unidade dos
valores em Y automaticamente para bits.
• perminute: todos os valores monitorados são multiplicados por 60. (O gráfico é mos-
trado em unidades/minuto em vez de unidades/segundo)
• perhour: todos os valores monitorados são multiplicados por 3600. (O gráfico é mos-
trado em unidades/hora em vez de unidades/segundo)
• noinfo: não mostra as informações de uptime e de nome de dispositivo.
• nopercent: não mostra as porcentagens usadas.
• transparent: Faz com que o plano de fundo dos gráficos seja transparente.
• integer: imprime os valores da ?linha-resumo? (abaixo dos gráficos) como inteiros.
• dorelpercent: o percentual relativo dos tráfegos de entrada e saída são calculados e
exibidos como um linha adicional.
21
23. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
• gauge: os dados colhidos são tratados como absolutos, não sendo calculada a di-
ferença entre o valor lido e a última leitura, e a média dentro do período. É útil na
monitoração de variáveis de diferente comportamento, como espaço livre em disco,
carga do processador, temperatura, etc.
• absolute: usado para fontes de dados que reiniciam seus contadores a cada leitura.
Isto significa que o MRTG deve apenas calcular a média dentro do período de amos-
tragem.
• unknaszero: armazena valores não lidos como sendo zero. Por padrão, o MRTG man-
tém o último valor lido quando, por algum motivo, as amostras não podem ser lidas.
Exemplo:
Options[nome]: growright, bits, unknaszero
kilo :
Possibilita alterar o multiplicador usado na conversão de, por exemplo, bytes em Kilobytes.
Exemplo:
Kilo[nome]: 1024
kMG :
Altera os prefixos multiplicadores (k,M,G,T,P) agregados à unidade de medida dos valores
apresentados. A opção ShortLegend define apenas a unidade básica de medida. Exemplo:
kMG[A1S2P3]: n,u,m, ,k,M,G,T,P (== nano, micro, mili, ,kilo, Mega, Giga,
Tera e Peta)
Colours :
Sobrepõe o esquema de cores padrão. Todas as 4 cores utilizadas devem ser especificadas.
O formato é Cor1#RRGGBB, Cor2#RRGGBB, Cor3#RRGGBB, Cor4#RRGGBB, onde CorN
é um label, e RRGGBB são os valores em hexadecimal do vermelho, verde e azul para a
composição das cores. As cores (cor1, cor2, etc.) representam, nesta ordem, os valores de
entrada, saída, máximo de entrada e máximo de saída. Exemplo:
Colours[nome]: VERDE#00eb0c , AZUL#1000ff , VERDE ESCURO#006600,VIOLETA#ff00ff
Importante: Se a opção dorelpercent estiver habilitada deve-se especificar uma quinta cor!
Background :
Define a cor de fundo das páginas html geradas. O formato é o mesmo usado para a
definição de cores do item anterior. Exemplo:
Background[nome]: #a0a0a0
Ylegend :
Define a legenda do eixo Y nos gráficos gerados, a despeito dos valores padrão. Se o
texto for grande demais a ponto de não poder ser escrito na figura, este será descartado.
Exemplo:
YLegend[A1S2P3]: bits por segundo
22
24. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
ShortLegend :
Define a string da unidade de medida apresentada para os valores máximo, médio e atual,
na linha-resumo abaixo dos gráficos. A string padrão é "b/s". Exemplo:
ShortLegend[A1S2P3]: bytes/s
LegendI, LegendO :
Define as strings para a legenda de cores. Exemplos:
LegendI[nome]: Tráfego de Entrada Máximo LegendO[nome]: Tráfego de Saída
Máximo
Legend :
Define as strings para a legenda de cores no roda-pé da página. Exemplos:
Legend1[nome]: Tráfego de Entrada Máximo Legend2[nome]: Tráfego de Saída
Máximo
Exemplo de arquivo de configuração:
# Created by
# /usr/bin/cfgmaker - -global 'ImageDir: /home/mrtg-user/images' - -output=/etc/mrtg.cfg
public@localhost
### Global Config Options
# for UNIX
# WorkDir: /home/http/mrtg
# for Debian
# WorkDir: /var/www/mrtg
# or for NT
# WorkDir: c:mrtgdata
### Global Defaults
# to get bits instead of bytes and graphs growing to the right
# Options[_]: growright, bits
EnableIPv6: no
HtmlDir: /var/www/mrtg
ImageDir: /var/www/mrtg/images
LogDir: /var/www/mrtg/log
IconDir: /var/www/mrtg/icons
23
25. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
RunAsDaemon: Yes
Language: Brazilian
### Target Options
Target[r1]: 2:public@myrouter.somplace.edu
MaxBytes[r1]: 8000
Title[r1]: Traffic Analysis ISDN
PageTop[r1]: <H1>Stats for our ISDN Line</H1>
Suppress[r1]: my
XSize[r1]: 600
Options[r1]: growright, bits, unknaszero, transparent
Colours: VERDE#00eb0c, AZUL#1000ff , VERDE ESCURO#006600,VIOLETA#ff00ff
YLegend[r1]: Bits/seg
3.3.5 Verificação de "thresholds"(limites)
O MRTG possui uma funcionalidade que permite a verificação de ?thresholds? (ou limites),
testando os valores lidos a fim de detectar comportamentos atípicos das variáveis sendo mo-
nitoradas. É possível configurá-lo para iniciar um script ou enviar um e-mail para a conta do
administrador.
A configuração desta funcionalidade é feita através dos parâmetros abaixo:
ThreshDir :
Parâmetro global, que especifica o diretório que o MRTG usará para armazenar arquivos
temporários usados na detecção de limites ultrapassados. Esta opção deve ser configurada,
caso se deseje que o MRTG detecte quando uma variável retorna à normalidade.
ThreshMinI :
Define o valor mínimo aceitável para o primeiro parâmetro, normalmente o tráfego de en-
trada. Se o valor lido cair abaixo do especificado através desta opção, o MRTG acionará o
programa especificado através da opção ThreshProgI.
ThreshMaxI :
Define o valor máximo aceitável para o primeiro parâmetro, normalmente o tráfego de en-
trada. Se o valor lido ultrapassar o valor especificado através desta opção, o MRTG acionará
o programa especificado através da opção ThreshProgI.
ThreshDesc :
O valor especificado com esta opção é armazenado na variável ambiental THRESH_DESC,
e é usado pelos programas acionados para tornar as mensagens mais amigáveis.
ThreshProgI :
Define o programa que será executado sempre que um threshold for quebrado.
ThreshProgOKI :
Define o programa que será executado sempre que o valor da variável sendo monitorada
retornar aos níveis normais, após ter sido registrado uma quebra do threshold.
24
26. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
ThreshMinO, ThreshMaxO, ThreshProgO, ThreshProgOKO :
São similares às opções apresentadas acima. No entanto, aplicadas ao segundo parâmetro,
que é normalmente o tráfego de saída.
3.4 Lição 4 - Rodando o MRTG automaticamente
3.4.1 Rodando automaticamente
Já rodamos o MRTG uma vez, porém é necessário rodá-lo periodicamente para que os
g?aficos estejam sempre atualizados.
Rodar o MRTG manualmente não é uma tarefa desejável. Portanto, quando suas configura-
ções estiverem como desejado, e você estiver satisfeito com os resultados você pode automatizar
a execução do MRTG em intervalos regulares (por padrão deve ser a cada 5 minutos).
Para isso podemos adicionar o MRTG em nosso arquivo /etc/crontab do sistema linux. Apenas
adicione as seguintes linhas no arquivo:
*/5 * * * * * /usr/bin/mrtg /etc/mrtg.cfg - -logging /var/log/mrtg.log
Como alternativa podemos rodar o MRTG como daemon, ou seja, em segundo plano. Para
isso devemos definir a opção RunAsDaemon como YES no arquivo de configuração, assim não
é necessário alterar o crontab.
A vantagem de rodar o MRTG como daemon é que ele é "chamado"apenas uma vez e não
repetidas vezes como acontece com o cron. Sendo necessário carregar e ler o arquivo de confi-
guração apenas uma vez. É importante definir a opção Interval para o valor apropriado quando
se roda o MRTG como daemon.
Observe também que o MRTG não deve mais ser rodado através do cron, mas sim pela
linha de comando ou através de um script de inicialização. E que alterações feitas no arquivo de
configuração acarretam uma necessidade de reinicialização do MRTG para que a configuração
seja atualizada.
Um script de inicialização bem básico está demonstrado abaixo:
#! /bin/sh
case "$1"in start) echo -n "Iniciando o MRTG:"/usr/bin/mrtg /etc/mrtg.cfg
- -logging /var/log/mrtg.log echo ".";; stop) echo -n "Parando o MRTG:"start-stop-daemon
- -stop -p /etc/mrtg.pid echo ".";; *) echo "Usage: /etc/init.d/mrtgd start|stop"exit
1 esac
exit 0
Para utilizá-lo devemos salvar em um arquivo sob o nome de ’mrtgd’ no diretório /etc/init.d/
Depois mudamos as permissões do script:
# chmod 755 /etc/init.d/mrtgd
e por fim, devemos criar um link simbólico para o nosso script no diretório /etc/rc3.d com o
nome ’S65mrtg’:
# cd /etc/rc3.d # ln -s ../init.d/mrtgd S65mrtg
Feito isso, podemos agora iniciar ou parar o daemon MRTG com os comandos:
25
27. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
# /etc/init.d/mrtgd start
ou
# /etc/init.d/mrtgd stop
respectivamente.
Agora com o daemon MRTG funcionando você poderá ver seus gráficos sendo criados. Inicie
o MRTG do modo ensinado acima e aguarde algumas dezenas de minutos =). Deixe o MRTG
fazer o seu serviço. Após alguns minutos (mais do que 5, ou mais do que você configurou nas
etapas anteriores de configuração) abra as páginas HTML no seu browser e veja os gráficos
sendo formados.
3.4.2 Indexmaker
Agora que o MRTG está funcionando e rodando, podemos criar uma página HTML de índice
para os gráficos criados. Se você possui vários dispositivos sendo monitorados, esta página
irá mostrar o primeiro gráfico de cada um deles, como um índice para cada uma das páginas
individuais.
Para criar esta página iremos utilizar a ferramenta indexmaker. Digite no terminal de comando:
indexmaker - -output '<arquivo de saída>' <arquivos de configuração>
onde <arquivo de saída> é o nome do arquivo da página html. Geralmente é usado o nome
index.html
<arquivos de configuração> os arquivos de configuração do MRTG. No nosso caso: /etc/mrtg.cfg
O comando ficaria assim:
indexmaker - -output '/var/www/mrtg/index.html' /etc/mrtg.cfg
3.5 Lição 5 - Scripts externos
3.5.1 Scripts externos
Como já foi dito, é possível utilizar scripts para coletar os dados requeridos pelo MRTG e
construir o seu gráfico a partir disso. Para isso, no entanto, é necessário conhecer e programar
scripts ou utilizar scripts já prontos.
O foco aqui não é criar scripts, portanto, iremos apenas mostrar como utilizar scripts já prontos
e quais são os requisitos para que um script possa ser "entendido"pelo MRTG.
Se você vai criar o seu próprio script a partir do zero, deve saber que o MRTG espera que
quatro parâmetros sejam passados, um em cada linha:
Linha 1 :
Valor atual da primeira variável, normalmente é o valor do ’contador de bytes de entrada’
Linha 2 :
Valor atual da segunda variável, normalmente é o valor do ’contador de bytes de saída’
Linha 3 :
String contendo o uptime do alvo(Target)
26
28. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
Linha 4 :
String contendo o nome do alvo (Target)
A partir disso, podemos observar que é possível monitorar tudo quanto é tipo de variáveis,
coletando os dados com um script e repassando para o MRTG construir o gráfico. Podemos
interagir um script com um banco de dados para monitorar certos valores no banco, podemos
monitorar a quantidade de processos em execução, número de usuários logados no sistema,
memória em uso, carga da CPU e por aí vai.
Para configurar o MRTG de forma a utilizar o script para coletar os dados, devemos editar o
arquivo de configuração mrtg.cfg. Como já vimos, isto é definido a keyword Target:
Target[nome]: `/home/usuario/meuscript.sh`
Lembrando que são usadas crases na indicação do caminho ao invés de aspas simples.
Na pagina a seguir teremos um exemplo de script já pronto para ser usado e alguns links úteis
sobre o assunto.
3.5.2 Exemplos
Vejamos aqui um exemplo bem simples de script em Perl usado para coletar dados de Carga
de Memoria:
#!/usr/bin/perl
# determina o uptime
$string = `uptime` ;
$string =∼ /up ([0-9]+ days, [0-9]+:[0-9]+), /;
$uptime = $1 ;
# determina o uso de memoria
open (ARQ, "/proc/meminfo");
while (<ARQ>)
if ( /MemTotal:s+([0-9]+)/)
$memtotal = $1 ;
elsif ( /MemFree:s+([0-9]+)/)
$memfree = $1 ;
elsif ( /Buffers:s+([0-9]+)/)
$membuff = $1 ;
elsif ( /Cached:s+([0-9]+)/)
$memcache = $1 ;
elsif ( /SwapTotal:s+([0-9]+)/)
$swaptotal = $1 ;
elsif ( /SwapFree:s+([0-9]+)/)
27
29. CDTC Centro de Difusão de Tecnologia e Conhecimento Brasil/DF
$swapfree = $1 ;
close (ARQ);
$memused = 100 * ($memtotal - $memfree - $membuff - $memcache) / $memtotal
;
$swapused = 100 * ($swaptotal - $swapfree) / $swaptotal ;
print
"$memusedn$swapusedn$uptimen$targetn";
Este script foi criado pela Pontifícia Universidade Católica do Paraná ( http://espec.ppgia.pucpr.br/
) e no link http://espec.ppgia.pucpr.br/monitor você pode encontrar mais scripts para uso não co-
mercial.
28