Juntando vários logs apache em um log geral

Postado em 17/04/2009 por Rogerio - Categoria: Dicas Linux - Tags: apache logs

Quando temos vários virtual hosts no apache cada um com seu próprio arquivo de log, não temos as estatísticas de acesso de todos os virtual hosts juntos.
Para fazer isso existe o logresolvemerge.pl que vem junto com o pacote do AWStats. (apt-get install awstats)

Por padrão, quando se instala o awstats, o logresolvmerge.pl está localizado em
/usr/share/doc/awstats/examples/. e temos que mover ele pra /usr/local/bin

# mv /usr/share/doc/awstats/examples/logresolvemerge.pl /usr/local/bin

Para usá-lo basta passar os arquivos de log como parâmetro.

# logresolvemerge.pl /var/log/apache2/*.access.log > /var/log/apache2/logs_merged/access.log

O comando acima irá juntar todos os arquivos que terminam com access.log para um único arquivo access.log.

se você receber a mensagem:
# -bash: /usr/local/bin/logresolvemerge.pl: /usr/bin/perl^M: bad interpreter: No such file or directory
quer dizer que o script contém windows line break. Para resolver isso, converta essas quebras de linha para o formado do linux.
# dos2unix /usr/localbin/logresolvmerge.pl /usr/local/bin/logresolvmerge.pl

o comando dos2unix está no pacote sysutils (apt-get install sysutils)

Após ter os logs reunidos em um único arquivo, você poderá usá-lo com o webalizer ou o próprio awstats.

 

Runtime Sistemas ® - Jaraguá do Sul - SC - 47 9196-3060