Blz Ricardo...
O Gilberto me enviou o plugin que ele fez para o PF + CACTI... estarei fazendo testes e retorno. Obrigado pela atenção. -- Welkson Renny de Medeiros Focus Automação Comercial Desenvolvimento / Gerência de Redes [EMAIL PROTECTED] ----- Original Message ----- From: "Ricardo Campos Passanezi" <[EMAIL PROTECTED]> To: "Lista Brasileira de Discussão sobre FreeBSD (FUG-BR)" <freebsd@fug.com.br> Sent: Wednesday, January 24, 2007 3:44 PM Subject: Re: [FUG-BR] Tráfego de banda (CACTI + PFCTL) On Wed, Jan 24, 2007 at 10:52:48AM -0300, Welkson Renny de Medeiros wrote: > Olá Ricardo, > > > Essa parte de pegar os dados via SNMP no CACTI é tranquilo, já pego > informação de alguns roteadores PR1000 Cyclades... mas essa do script não > ficou bem claro, pode mandar um exemplo mais detalhado? No meu servidor de emails tenho o script abaixo: ------ conta_mails.sh ------ #!/bin/sh cat /var/tmp/mailstats.txt ---------------------------- Esse script é chamado via snmp: exec .1.3.6.1.4.1.2021.54 shelltest /bin/sh /root/bin/conta_mails.sh O mailstats.txt é gerado por um outro script (claro que dá para melhorar o script - fui escrevendo e adicionando variáveis e aí funcionou e ficou como ficou.... :-)), que rodo a cada 5 minutos via crontab: ------ atualiza_contagem.pl ------ #!/usr/bin/perl -w $sent = 0; $received = 0; $rejected = 0; $bounced = 0; $spam_mark = 0; $spam_block = 0; $virus = 0; $badh = 0; open (LAST, "</var/tmp/mailstats.log") or die "Unable to open\n"; while (<LAST>) { if ($_ =~ /^0:/) { ($hash,$sentold) = split(/:/,$_); } elsif ($_ =~ /^1:/) { ($hash,$receivedold) = split(/:/,$_); } elsif ($_ =~ /^2:/) { ($hash,$rejectedold) = split(/:/,$_); } elsif ($_ =~ /^3:/) { ($hash,$bouncedold) = split(/:/,$_); } elsif ($_ =~ /^4:/) { ($hash,$spam_markold) = split(/:/,$_); } elsif ($_ =~ /^5:/) { ($hash,$spam_blockold) = split(/:/,$_); } elsif ($_ =~ /^6:/) { ($hash,$virusold) = split(/:/,$_); } elsif ($_ =~ /^7:/) { ($hash,$badhold) = split(/:/,$_); } } close (LAST); system "/bin/mv /var/tmp/mailstats.log /var/tmp/mailstats.log.old"; open(LOG, "< /var/log/maillog") or die "Unable to open\n"; while (<LOG>) { if ($_ =~ /\bsaturno postfix\/smtp\[.*status=sent\b/ && $_ !~ /\brelay=[^\s\[]*\[127\.0\.0\.1\]/) { $sent++; } elsif ($_ =~ /\bsaturno postfix\/smtp\[.*status=bounced\b/) { $bounced++; } elsif ($_ =~ /\bsaturno postfix\/(local|error).*status=bounced\b/) { $bounced++; } elsif ($_ =~ /\bsaturno postfix\/smtpd.*client=(\S+)/ && $_ !~ /client=localhost/ && $_ !~ /reject:/) { $received++; } elsif ($_ =~ /\bsaturno postfix\/smtpd.* reject:/) { $rejected++; } elsif ($_ =~ /\bsaturno postfix\/cleanup.* (reject|discard):/) { $rejected++; } elsif ($_ =~ /saturno amavis.*Passed SPAM/) { $spam_mark++; } elsif ($_ =~ /saturno amavis.*Blocked SPAM/) { $spam_block++; } elsif ($_ =~ /saturno amavis.*(Passed |Blocked )?INFECTED/) { $virus++; } elsif ($_ =~ /saturno amavis.*(Passed|Not-Delivered) BAD-HEADER/) { $badh++; } } close (LOG); open (LAST, ">/var/tmp/mailstats.log") or die "Unable to open\n"; #print "0:$sent\n"; #print "1:$received\n"; #print "2:$rejected\n"; #print "3:$bounced\n"; #print "4:$spam_mark\n"; #print "5:$spam_block\n"; #print "6:$virus\n"; #print "7:$badh\n"; printf LAST "0:$sent\n"; printf LAST "1:$received\n"; printf LAST "2:$rejected\n"; printf LAST "3:$bounced\n"; printf LAST "4:$spam_mark\n"; printf LAST "5:$spam_block\n"; printf LAST "6:$virus\n"; printf LAST "7:$badh"; close (LAST); $sent = $sent - $sentold; $received = $received - $receivedold; $rejected = $rejected - $rejectedold; $bounced = $bounced - $bouncedold; $spam_mark = $spam_mark - $spam_markold; $spam_block = $spam_block - $spam_blockold; $virus = $virus - $virusold; $badh = $badh - $badhold; open (LASTOUT, ">/var/tmp/mailstats.txt") or die "Unable to open\n"; printf LASTOUT "$sent\n"; printf LASTOUT "$received\n"; printf LASTOUT "$rejected\n"; printf LASTOUT "$bounced\n"; printf LASTOUT "$spam_mark\n"; printf LASTOUT "$spam_block\n"; printf LASTOUT "$virus\n"; printf LASTOUT "$badh"; close(LASTOUT); ---------------------------------- Depois que fiz isso, criei um "Data Template" e depois dele um "Graph Template" que gera o gráfico para as estatísticas de email. Tudo bem que olhando nos fóruns do cacti já tem umas coisas prontas pro postfix, mas isso acima já me basta... -- Ricardo Campos Passanezi ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd ------------------------- Histórico: http://www.fug.com.br/historico/html/freebsd/ Sair da lista: https://www.fug.com.br/mailman/listinfo/freebsd