Como analisar vários arquivos de log gz para o Awstats?

18

Sou muito novo no awstats e configurei o Awstats no meu servidor web apache para analisar os logs de acesso nginx (o nginx webserver é para meu aplicativo django), sou capaz de pegar as estatísticas de LogFile=/var/log/nginx/access.log , mas como faço para analisar vários logs que são o formato gzip. Tais como access.log.1.gz ... access.log.40.gz. Eu tenho muitos logs para analisar.

    
por Rakesh 03.08.2011 / 13:20

2 respostas

28

O que você provavelmente quer fazer aqui é analisar todos esses arquivos de registro uma vez, depois continuar analisando apenas os arquivos de log atuais a partir de então.

A coisa mais simples é descompactar todos os arquivos em um único arquivo, depois fazer com que o awstats o execute uma vez, depois apontar o awstats para o seu arquivo access.log a partir de então.

awstats normalmente tem um script chamado logresolvemerge.pl, que pode ler os arquivos compactados, e irá mesclá-los apropriadamente para o awstats fazer analsias.

Para mesclar todos os seus existentes, execute

perl /usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log* > /tmp/nginx.tmplog

Isso provavelmente vai demorar um pouco.

Você pode então ter o awstats sendo executado uma vez neste arquivo (configure o LogFile apropriadamente).

A partir de então, você deve ter o awstats rodando sobre o arquivo de log mais recente - que é o que sua configuração atual está fazendo.

Dependendo da freqüência com que você está executando awstats x rotando nginx logfiles, você pode querer que ele leia o arquivo de log atual e o anterior. (por exemplo, se você rotacionar arquivos de log nginx todos os dias às 12, mas os awstats rodarem todos os dias em 1, então sempre que awstats executar, o arquivo de log conterá apenas o que foi escrito desde a última rotação). Você pode usar logresolvemerge.pl dentro do seu comando LogFile assim:

LogFile="/usr/share/awstats/tools/logresolvemerge.pl /var/log/nginx/access.log /var/log/nginx/access.log.1.gz |"

Isso diz ao awstats para executar o comando logresolvemerge.pl com os dois arquivos de log como parâmetros, e o awstats lerá a saída desse script (é o que o pipe | faz)

    
por 05.08.2011 / 02:04
7

Como alternativa, você pode usar um analisador de log em tempo real, como o GoAccess. É muito rápido e você não precisa descompactar nenhum log. apache & nginx

link

zcat -f access.log* | goaccess -a -s -b

OR

zcat access.log.*.gz | goaccess -a -s -b
    
por 06.08.2011 / 05:46

Tags