Ferramentas de linha de comando para analisar arquivos de log do Apache [closed]

13

Eu tenho um monte de arquivos de log do Apache que gostaria de analisar. Estou procurando uma ferramenta que não requer muita configuração; algo que eu posso executar um log através da linha de comando, sem mexer em nossos servidores web ao vivo.

Alguma recomendação?

    
por mmattax 06.05.2010 / 21:49

7 respostas

6

Embora as ferramentas acima sejam legais, acho que sei o que o questionador estava fazendo. Muitas vezes me incomoda não conseguir extrair as informações de um log de acesso como posso com outros arquivos.

É por causa do formato de log de acesso estúpido:

127.0.0.1 - - [16/Aug/2014:20:47:29 +0100] "GET /manual/elisp/index.html HTTP/1.1" 200 37230 "http://testlocalhost/" "Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:31.0) Gecko/20100101 Firefox/31.0"

Por que eles usaram [] para a data e "" para outras coisas? eles achavam que não saberíamos que uma data estava no campo 4? É incrivelmente frustrante.

A melhor ferramenta para isso agora é o gawk:

gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\[[^\]]+\])" } { print $5 }'

nos dados acima, isso daria a você:

"GET /manual/elisp/index.html HTTP/1.1"

Em outras palavras, o FPAT dá a você a capacidade de extrair os campos do log do apache como se fossem campos reais em vez de apenas entidades separadas por espaços. Isso é sempre o que eu quero. Eu posso então analisar isso um pouco mais com um pipeline.

Fazer o trabalho do FSPAT é definido aqui: link

Você pode, portanto, configurar um alias para fazer um gawk que possa analisar os logs do apache:

alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])' " apacheawk '$6 ~ /200/ { print $5 } | sort | uniq

fez isso para mim:

"GET / HTTP/1.1"
"GET /manual/elisp/index.html HTTP/1.1"
"GET /manual/elisp/Index.html HTTP/1.1"
"GET /scripts/app.js HTTP/1.1"
"GET /style.css HTTP/1.1"

e, claro, quase tudo é possível agora.

Aproveite!

    
por 25.08.2014 / 21:43
5

apachetop é bem legal; imprime estatísticas ao vivo. Você corre com

apachetop -f /var/log/apache2/www.mysite.com.access.log

Para instalá-lo no Debian / Ubuntu:

apt-get install apachetop

ou da fonte: link

Há também um script interessante no link

    
por 19.02.2012 / 18:57
4

wtop é legal. Há outros utilitários também. Muitas vezes, vou analisar os logs usando bash, sed e awk.

    
por 06.05.2010 / 22:59
1

Que tipo de saída você quer?

Se você está apenas procurando contar as coisas, então grep something logfile.txt | wc -l funciona muito bem. Se você quiser gráficos bonitos ... não muito.

    
por 06.05.2010 / 22:07
0

se você tem uma estação de trabalho do Windows que você pode usar, então logparser é a ferramenta de escolha!

    
por 06.05.2010 / 23:20
0
O

analógico funciona bem e não requer muita configuração. O logwrangler é um pacote que funciona com o analógico para gerar uma saída mais agradável e também requer pouca configuração.

    
por 07.05.2010 / 02:05
0

Em vez de usar uma ferramenta de linha de comando, sugiro tentar o Apache Logs Viewer. É uma ferramenta gratuita que pode monitorar e analisar o arquivo de log do Apache. Ele pode gerar gráficos e relatórios bem legais na hora.

Mais informações no link

    
por 14.07.2010 / 23:27