Erro no relatório Sarg

2

Eu tenho um servidor proxy que executa o Ubuntu Server 11.10, Squid 2.7.STABLE9. Eu instalei o sarg (versão 2.3.1 Sep-18-2010) para gerar relatórios usando a instalação comum do apt-get e adicionei um cron job para gerar um relatório do dia a cada 5 minutos (que sobrescreverá os 5 minutos mais antigos um):

*/5 * * * * /root/proxy_report.sh

E o conteúdo de /root/proxy_report.sh é:

#!/bin/bash
/usr/bin/sarg -nd 'date +"%d/%m/%Y"' > /dev/null 2>&1

E adicionei outro trabalho cron para gerar um relatório completo a cada hora em: 32 (para não colidir com o trabalho de 5 minutos):

*/32 * * * * /root/proxy_report_full.sh

E o conteúdo de /root/proxy_report_full.sh é:

#!/bin/bash
/usr/bin/sarg -n > /dev/null 2>&1

E adicionei um pequeno script para remover o relatório completo de ontem (o relatório completo que termina em ontem e não será substituído pelo novo relatório completo hoje) em /etc/rc.local para ser executado na inicialização:

/usr/bin/rm_yesterday.sh &>> /var/log/rm_yesterday

Onde /usr/bin/rm_yesterday.sh :

#!/bin/bash
find /var/www/sarg/ | grep 'date -d Apr1 +"%Y%b%d"'-* | grep -v 'date +"%Y%b%d"' | xargs rm -rf

* Apr1 é a data de início do proxy ...

** Coloquei em /usr/bin para ser montado logo na inicialização ...

Esse arranjo foi OK por cerca de um mês e meio, exceto que uma vez eu notei que alguns erros e relatórios não foram gerados, e consertei isso fazendo um offset (os dois minutos em 32 do segundo cron job). No entanto, começou a não gerar mais relatórios. Ao tentar gerá-lo manualmente, apresenta o seguinte erro:

root@proxy-server:~# sarg -n
SARG: getword_atoll loop detected after 3 bytes.
SARG: Line="154 192.168.10.40 TCP_MISS/200 39 CONNECT www.google.com"
SARG: Record="154 192.168.10.40 TCP_MISS/200 39 CONNECT www.google.com"
SARG: searching for 'x2f'
SARG: getword backtrace:
SARG: 1:sarg() [0x8050a4a]
SARG: 2:sarg() [0x8050c8b]
SARG: 3:sarg() [0x804fc2e]
SARG: 4:/lib/i386-linux-gnu/libc.so.6(__libc_start_main+0xf3) [0x129113]
SARG: 5:sarg() [0x80501c9]
SARG: Maybe you have a broken date in your /var/log/squid/access.log file

Quando olhei para a pasta /var/log/squid/ , notei que ela contém alguns logs girados:

root@proxy-server:~# ls /var/log/squid/
access.log  access.log.1  cache.log  cache.log.1  store.log  store.log.1

Então talvez o sarg tenha instalado o logrotate com ele? Ou vem com o Ubuntu padrão? Não me lembro de ter instalado manualmente.

A questão é : o que poderia ter corrido mal? Tem algo a ver com a rotação do log? Como posso rastrear o erro e começar a gerar relatórios novamente?

    
por amyassin 20.06.2012 / 11:06

1 resposta

1

Primeiro de tudo eu não sei sarg mas parece que o problema é causado pelo seu arquivo de log. Isso pode ser causado por duas coisas:

  1. Caracteres aleatórios / dados binários / formato de log alterado da configuração do seu squid
  2. O sarg pode ter um problema com arquivos de log girados por logrotate

Com base no link e link eu acho que o problema pode ser causado pelo logrotate.

    
por 11.07.2012 / 11:21