Analisador de log para nginx

10

Eu tenho um aplicativo da Web em execução com o nginx e gostaria de analisar os registros para obter informações sobre quantos acessos cada arquivo recebe e quais 404 e outros erros estamos gerando (algo que o Google Analytics não pode fornecer) .

Normalmente eu deixaria cair o awstats em um servidor, mas com o nginx, devido à falta do cgi-bin, não é trivial. Existe outra solução trivial para obter essa informação? Eu não me importo de pagar um terceiro para fazer essa análise para mim.

    
por pupeno 19.06.2013 / 15:01

4 respostas

15

Você pode usar o goaccess para analisar seus registros da web e obter um resumo dos hits, IPs exclusivos, principais arquivos estáticos, principais 404s, códigos de status diferentes e muito mais. Ele exibe um primeiro resumo de informações de alto nível e, em seguida, permite detalhar cada capítulo principal de forma interativa. Você alimenta um arquivo de registro ou um pipe e é muito rápido.

Descobri isso aqui no SF e, desde então, mudei a minha maneira de ver os logs do servidor: tenho a tendência de fazer uma análise de log oportunista e baseada em problemas e fiquei insatisfeito com o analógico, o awstats e o webalizer.

    
por 19.06.2013 / 17:02
6

Se você estiver disposto a sujar a mão, eu aconselho você a usar o Logstash + ElasticSearch + Kibana .

Ele pode fazer muito mais do que você pergunta, mas pode fazer o que você pedir bem, e você terá uma verdadeira inferface para realmente procurar seus logs para entender o que está - ou tem acontecido - em andamento.

Este é o website do Kibana

Esta é uma postagem do blog que mostra como ela foi configurada para analisar o Apache Tomcat com essa plataforma, você pode simplesmente adaptá-la às suas necessidades: link

    
por 19.06.2013 / 15:30
0

Depende do nível de funcionalidade que você precisa, mas do AFAIK é possível fazer com que o AWStats gere arquivos estáticos - portanto, não há necessidade de cgi.

O contrário - deve ser possível obter o AWStats executando como um script FastCGI. Eu diria que não será muito hacker.

    
por 19.06.2013 / 15:33
0

Eu tive que usar o awstats com o Nginx esta semana e você não precisa usar o cgi-bin necessariamente. O Awstats vem com o script awstats_buildstaticpages.pl que gerará arquivos html estáticos que você pode então servir com o Nginx. Com um cron job eu atualizo os arquivos html regularmente.

/usr/share/doc/awstats/examples/awstats_updateall.pl now -awstatsprog=/usr/lib/cgi-bin/awstats.pl

/usr/share/awstats/tools/awstats_buildstaticpages.pl -update -config=domain.com -dir=/path/to/save/html/files awstatsprog=/usr/lib/cgi-bin/awstats.pl (Dependendo do seu sistema operacional, os caminhos podem diferir um pouco, mas você poderá encontrar os scripts)

Para evitar a perda de dados durante a rotação de logs, você pode adicionar esta linha ao seu arquivo awstats.domain.com.conf:

LogFile="/usr/share/awstats/tools/logresolvemerge.pl /path/to/log/access.domain.tld.log /path/to/log/access.domain.tld.log.1 |"

O script mesclará os últimos 2 logs sempre que você buscar o log para atualizar seus dados. Ou você pode adicionar um gancho pré-logrotate no Nginx como eles fazem aqui: link

    
por 19.06.2013 / 16:32

Tags