Eu tenho vários arquivos de log do Apache que gostaria de analisar. Estou procurando uma ferramenta que não exija muita configuração; algo que eu possa executar um log pela linha de comando, sem mexer nos nossos servidores da web ao vivo.
Alguma recomendação?
apache-2.2
log-files
analytics
mmattax
fonte
fonte
Respostas:
Enquanto as ferramentas acima são legais, acho que sei o que o interlocutor estava perguntando. Dói-me muitas vezes não conseguir extrair as informações de um log de acesso da mesma maneira que faço com outros arquivos.
É por causa do formato de log de acesso burro:
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 pensaram que não saberíamos que havia uma data no campo 4? É incrivelmente frustrante.
A melhor ferramenta agora para isso é o gawk:
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'
nos dados acima, isso forneceria a você:
Em outras palavras, o FPAT oferece a capacidade de extrair os campos do apache-log como se fossem campos reais, em vez de apenas entidades separadas por espaço. É sempre isso que eu quero. Posso então analisar isso um pouco mais com um pipeline.
O funcionamento do FSPAT é definido aqui: http://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html
Portanto, você pode configurar um alias para criar um gawk que possa analisar os logs do apache:
alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' " apacheawk '$6 ~ /200/ { print $5 } | sort | uniq
fez isso para mim:
e, claro, quase tudo o mais é agora possível.
Desfrutar!
fonte
awk '($9 == 200) {print $6,$7,$8}'
exibir a mesma coisa que no seu exemplo. Não há necessidade de usar FPAT lá (mesmo que este método pode ser útil em outros casos)wtop é legal. Existem outros utilitários também. Frequentemente, analisarei logs usando bash, sed e awk.
fonte
o apachetop é bem legal; imprime estatísticas ao vivo. Você o executa com
Para instalá-lo no Debian / Ubuntu:
ou da fonte: https://github.com/JeremyJones/Apachetop
fonte
Que tipo de saída você deseja?
Se você está apenas procurando contar coisas, então grep algo logfile.txt | wc -l funciona muito bem. Se você quer gráficos bonitos ... nem tanto.
fonte
Se você possui uma estação de trabalho Windows que pode ser usada, o logparser é a ferramenta preferida!
fonte
O analógico funciona bem e não requer muita configuração. O logwrangler é um pacote que trabalha com analógico para gerar uma saída melhor e também requer pouca configuração.
fonte
Em vez de usar uma ferramenta de linha de comando, sugeriria experimentar o Apache Logs Viewer. É uma ferramenta gratuita que pode monitorar e analisar o arquivo de log Apache. Ele pode gerar gráficos e relatórios bastante interessantes rapidamente.
Mais informações em http://www.apacheviewer.com
fonte