[AsteriskBrasil] Duplicar queue log do Asterisk...

Daviramos Roussenq Fortunato daviramosrf em gmail.com
Sexta Janeiro 29 10:25:50 BRST 2010


Tenta adaptar de acordo com sua necessidade:

http://lists.digium.com/pipermail/asterisk-users/2005-July/109892.html

#!/usr/bin/perl -w
#
# wlloyd at slap.net <http://lists.digium.com/mailman/listinfo/asterisk-users>

# The asterisk version indpendant way to get queue stats into Mysql,
Postgres
# or whatever is supported by Perl DBI

# It's all about named pipes

# to setup this software
# stop asterisk
# rm /var/log/asterisk/queue_log
# mkfifo /var/log/asterisk/queue_log

# make sure permissions are setup
# chmod 777 /var/log/asterisk/queue_log

# run this program as root or under another user as you see fit.
# should start BEFORE asterisk.  Add to /etc/rc.d/rc.local or whatever

# restart asterisk

# requires a DB table like the following..
# CREATE TABLE csr_queue (
#  qname varchar(30) default NULL,
#  agent varchar(30) default NULL,
#  action text,
#  info1 text,
#  info2 text,
#  info3 text,
#  timestamp int(11) NOT NULL default '0',
#  id tinytext NOT NULL
#) TYPE=MyISAM;

use DBI;
use IO::File;

my $opt_debug = 0;

# if you want postgres change this to "Pg"
my $db_type = "mysql";
my $db_host = "127.0.0.1";
my $db_user_name = 'username';
my $db_password = 'password';
my $db_database = 'asteriskstat';

my $dbh = DBI->connect("DBI:$db_type:dbname=$db_database;host=
$db_host;", $db_user_name, $db_password);

open(FIFO, "< /var/log/asterisk/queue_log")        or die "Can't open
queue_log : $!\n";

while (1) {

     $message = <FIFO>;
     next unless defined $message;   # interrupted or nothing logged
     chomp $message;

     # remove chars that will cause DB problems
     $message =~ s/\"\'//g;

     @data = split(/\|/,$message);

     # these messages are almost useless for my purposes
     next if ($data[4] eq "QUEUESTART" );
     next if ($data[4] eq "CONFIGRELOAD" );

     if (!defined($data[5])) {
       $data[5] = '';
     }
     if (!defined($data[6])) {
       $data[6] = '';
     }
     if (!defined($data[7])) {
       $data[7] = '';
     }

     my $sql = "INSERT INTO csr_queue (timestamp, id, qname, agent,
action, info1, info2, info3) VALUES ('$data[0]', '$data[1]', '$data
[2]', '$data[3]', '$data[4]', '$data[5]', '$data[6]', '$data[7]')";

     print "$sql \n\n" if ($opt_debug);

     $dbh->do($sql);

# if you want an actual logfile you might want to uncomment this
#        if ( open(LOG, ">> /var/log/asterisk/queue_log_real") ) {
#            print LOG "$message\n";
#            close(LOG);
#        } else {
#            warn "Couldn't log to /var/log/asterisk_queue_log: $!\n";
#        }
#
}

$dbh->disconnect();

exit 0;





2010/1/29 Cesar A. Gaspar <cesargasp em ig.com.br>

>  Valeu Italo!
>
> Vi que o QueueMetrics gera relatórios bem legais, e que o script
> desenvolvido por eles lê o arquivo verificando pela data. Mas como aqui na
> empresa eles já tem um desenvolvimento próprio para administração do
> Asterisk (ramais, rotas...), no nosso caso só precisamos jogar as
> informações do log no banco de dados e depois eles trabalham em cima delas
> (relatórios).
>
> Depois, quando tiver mais tempo, vou verificar melhor todas as
> funcionalidades do QueueMetrics!!!
>
> Muito obrigado.
>
> Att.
>
> Cesar A. Gaspar
>
>
>
> Italo Rossi escreveu:
>
> Cesar,
>
> O pessoal que desenvolve e comercializa o QueueMetrics desenvolveu o
> qloaderd que faz este serviço. Eu não sei te dizer se é liberada a
> utilização, mas vale a pena dar uma conferida. Eu sei que ele funciona
> muito bem, tenho a solução (QueueMetrics) rodando aqui na empresa e
> estou muito satisfeito.
>
> On Jan 28, 2010, at 2:30 PM, Cesar A. Gaspar wrote:
>
>
>
>  Opa! É uma alternativa....
>
> Mas, ao reiniciar o sistema ele irá duplicar os últimos registros.
>
> Talvez com:
>
> tail -f -n 0 /var/log/asterisk/queue_log
>
> funcione legal!!!
>
>
> Valeu pessoal pelas dicas!!!
>
> Att.
>
> Cesar Gaspar
>
>
> Junior Polegato - Asterisk escreveu:
>
>
>  Cesar A. Gaspar escreveu:
>
>
>
>  Infelizmente não! Tem que ser arquivos independentes.
> A minha intenção é jogar os registros, no momento que vão sendo
> adicionados a fila, num banco de dados. Para isso eu transformaria o
> /var/log/asterisk/queue_log em um named pipe:
> mkfifo /var/log/asterisk/queue_log
> e um scripts (perl, php...) rodando com um serviço fazia o
> trabalho de
> pegar do queue_log e jogar no banco, quando isso acontece o registro
> não estará mais em queue_log.
> Isto já está fazendo, o problema ocorre quando por algum motivo o
> serviço não está rodando. Todas as chamadas que entrarem na fila
> neste
> período são perdidas. A minha intenção era ter uma copia destes
> registros caso o serviço esteja parado, para não perder estas
> informações.
> Imaginei que existiria uma opção parecida em /etc/asterisk/
> logger.conf.
> Att.
> Cesar Gaspar
>
>
>
>  Olá,
>
>        Pode far isso com "tail -f /var/log/asterisk/queue_log |
> <programa>", onde tudo que for adicionado ao queue_log é jogado na
> entrada padrão do programa, assim dá para "simular" um pipe. Neste
> programa, em Python, para capturar cada linha e campos separados
> por ','
> (vírgula), seria:
>
> import sys
> campos = sys.stdin.readline().split(',')
> print campos
>
> []'s
>             Junior Polegato
>
> _______________________________________________
> KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk.
> - Hardware com alta disponibilidade de recursos e qualidade KHOMP
> - Suporte técnico local qualificado e gratuito
> Conheça a linha completa de produtos KHOMP em www.khomp.com.br
> _______________________________________________
> Lista de discussões AsteriskBrasil.orgAsteriskBrasil em listas.asteriskbrasil.orghttp://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
>
>        _______________________________________________
> KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk.
> - Hardware com alta disponibilidade de recursos e qualidade KHOMP
> - Suporte técnico local qualificado e gratuito
> Conheça a linha completa de produtos KHOMP em www.khomp.com.br
> _______________________________________________
> Lista de discussões AsteriskBrasil.orgAsteriskBrasil em listas.asteriskbrasil.orghttp://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
>  _______________________________________________
> KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk.
> - Hardware com alta disponibilidade de recursos e qualidade KHOMP
> - Suporte técnico local qualificado e gratuito
> Conheça a linha completa de produtos KHOMP em www.khomp.com.br
> _______________________________________________
> Lista de discussões AsteriskBrasil.orgAsteriskBrasil em listas.asteriskbrasil.orghttp://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
>
> _______________________________________________
> KHOMP: qualidade em placas de E1, GSM, FXS e FXO para Asterisk.
> - Hardware com alta disponibilidade de recursos e qualidade KHOMP
> - Suporte técnico local qualificado e gratuito
> Conheça a linha completa de produtos KHOMP em www.khomp.com.br
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>



-- 
Atenciosamente
Daviramos Roussenq Fortunato
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20100129/5a24a983/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil