+ Responder ao Tópico



  1. #1

    Padrão Probleminha com MRTG + Iptables

    Olá Pessoal!

    Passando aqui para pedir uma ajuda pois eu não tinha tido esse problema com o
    MRTG até hoje pois sempre utilizei SNMP para gerar as estatísticas que precisava!
    Outro dia encontrei uma dica interessante aqui no wiki da under e resolvi fazer uma
    pequena modificação para monitorar o trafego dos serviços basicos utilizados em minha rede como http/https, e-mail, ftp etc...

    Tomei por base essa dica aqui "mrtg-por-ip-sem-snmp"!

    Instalei o MRTG em uma máquina virtual com Ubuntu 7.0.4 utilizando o apt mesmo, fiz as configurações para um teste básico e começou a rodar sem problemas porém no log do mrtg me aparece esse erro:

    ----------------------------------
    WARNING: Problem with External get '/etc/mrtg/http-traffic': Expected a Number for 'in' but got ''
    WARNING: Problem with External get '/etc/mrtg/http-traffic': Expected a Number for 'out' but got ''

    ERROR: Target[web][_IN_] ' $target->[0]{$mode} ' did not eval into defined data
    ERROR: Target[web][_OUT_] ' $target->[0]{$mode} ' did not eval into defined data
    ----------------------------------

    E no arquivo de base de dados dele aparece isso na primeira linha sempre:

    1187554201 -1 -1

    O script que uso é esse aqui, é o mesmo que utilizado no tutorial que comentei,
    com uma pequena modificação para o meu teste funcionar:

    #!/bin/bash
    # Servico: web

    down=`iptables -t filter -L INPUT -nvx | awk '/HTTP/{print $2}'`
    up=`iptables -t filter -L OUTPUT -nvx | awk '/HTTP/{print $2}'`
    echo $down
    echo $up

    Eu executo o script na mao e ele me retorna corretamente os valores do iptables.
    Se alguém tem alguma idéia do que pode ser isso eu agradeceria a ajuda!

    Abraço,

    André

  2. #2

    Padrão

    Olá Pessoal...

    Eu estive até agora fazendo testes e uma das tentativas que eu fiz foi uma mudança básica no script externo que o mrtg chama na hora de coletar os dados, eu o deixei assim:

    -----------------------------------
    #!/bin/bash

    down=`/sbin/iptables -t filter -L INPUT -vnx | awk '/192.168.1.101/{print $2}'`
    up=`/sbin/iptables -t filter -L OUTPUT -vnx | awk '/192.168.1.101/{print $2}'`

    echo "$down";
    echo "$up";
    echo "nome";
    echo "nome";
    -----------------------------------

    Agora ele esta fazendo os gráficos de consumo web de um determinado host por exemplo que era o que eu queria!

    Bom, se alguém tem idéia do porque esse erro ocorreu com o script configurado
    da forma anterior seria de grande ajuda pois eu gostaria muito de saber e até interessante para a comunidade entender melhor o funcionamento interno do mrtg! Pois antes parecia que ele não estava recebendo os valores do script!

    Abraço

    André