Tengo un montón de archivos de registro de Apache que me gustaría analizar. Estoy buscando una herramienta que no requiera mucha configuración; algo que puedo ejecutar un registro a través de la línea de comandos, sin perder el tiempo en nuestros servidores web en vivo.
¿Alguna recomendación?
apache-2.2
log-files
analytics
mmattax
fuente
fuente
Respuestas:
Si bien las herramientas anteriores son geniales, creo que sé lo que preguntaba el interrogador. A menudo me duele que no pueda extraer la información de un registro de acceso de la misma manera que puedo con otros archivos.
Se debe al formato de registro de acceso tonto:
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 qué usaron [] para la fecha y "" para otras cosas? ¿Pensaron que no sabríamos que había una cita en el campo 4? Es increíblemente frustrante.
La mejor herramienta en este momento para esto es gawk:
gawk 'BEGIN { FPAT="([^ ]+)|(\"[^\"]+\")|(\\[[^\\]]+\\])" } { print $5 }'
en los datos anteriores esto te daría:
En otras palabras, el FPAT le brinda la capacidad de extraer los campos del registro de apache como si fueran campos reales en lugar de solo entidades separadas por espacios. Esto es siempre lo que quiero. Entonces puedo analizar eso un poco más con una tubería.
El funcionamiento del FSPAT se define aquí: http://www.gnu.org/software/gawk/manual/html_node/Splitting-By-Content.html
Por lo tanto, puede configurar un alias para crear un gawk que pueda analizar registros de apache:
alias apacheawk="gawk -vFPAT='([^ ]+)|(\"[^\"]+\")|(\\\\[[^\\\\]]+\\\\])' " apacheawk '$6 ~ /200/ { print $5 } | sort | uniq
hizo esto para mí:
y, por supuesto, casi cualquier otra cosa ahora es posible.
¡Disfrutar!
fuente
awk '($9 == 200) {print $6,$7,$8}'
mostrar lo mismo que en su ejemplo. No es necesario usar FPAT allí (aunque este método puede ser útil en otros casos)Wtop es genial. También hay otras utilidades. A menudo, analizaré los registros usando bash, sed y awk.
fuente
Apachetop es muy bueno; Imprime estadísticas en vivo. Lo ejecutas con
Para instalarlo en Debian / Ubuntu:
o de la fuente: https://github.com/JeremyJones/Apachetop
fuente
¿Qué tipo de salida quieres?
Si solo está buscando contar cosas, haga grep algo logfile.txt | wc -l funciona muy bien. Si quieres gráficos bonitos ... no tanto.
fuente
si tiene una estación de trabajo de Windows que puede usar, entonces logparser es la herramienta de elección
fuente
analógico funciona bien de fábrica y no requiere mucha configuración. logwrangler es un paquete que funciona con analógico para generar una salida más agradable y también requiere poca configuración.
fuente
En lugar de usar una herramienta de línea de comandos, sugiero que pruebe Apache Logs Viewer. Es una herramienta gratuita que puede monitorear y analizar el archivo de registro de Apache. Puede generar algunos gráficos e informes geniales sobre la marcha.
Más información de http://www.apacheviewer.com
fuente