¿Cómo analizar múltiples archivos de registro gz para Awstats?

21

Soy bastante nuevo en awstats y configuré Awstats en mi servidor web apache para analizar los registros de acceso nginx (el servidor web nginx es para mi aplicación django), puedo tomar las estadísticas, LogFile=/var/log/nginx/access.logpero ¿cómo analizo múltiples registros que tienen formato gzip? Tal como access.log.1.gz ... access.log.40.gz. Tengo muchos registros para analizar.

Rakesh
fuente

Respuestas:

29

Lo que probablemente quiera hacer aquí es analizar todos estos archivos de registro una vez, y luego seguir analizando solo los archivos de registro actuales a partir de ese momento.

Lo más simple es descomprimir todos esos archivos en un solo archivo, luego ejecutar awstats una vez, luego apuntar awstats a su archivo access.log a partir de ese momento.

awstats normalmente tiene un script llamado logresolvemerge.pl, que puede leer los archivos comprimidos y los fusionará adecuadamente para que awstats realice analsyis.

Para fusionar todos los existentes, ejecute

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

Esto probablemente tomará un tiempo.

A continuación, puede ejecutar awstats una vez sobre este archivo (configure LogFile adecuadamente).

A partir de ese momento, debe ejecutar awstats en el archivo de registro más reciente, que es lo que está haciendo su configuración actual.

Dependiendo de la frecuencia con la que esté ejecutando awstats versus rotando archivos de registro nginx, es posible que desee que lea tanto el archivo de registro actual como el anterior. (por ejemplo, si gira los archivos de registro de nginx todos los días a las 12, pero ejecuta awstats todos los días a la 1, entonces cada vez que se ejecuta awstats, el archivo de registro solo contendrá lo que se ha escrito desde la última rotación). Puede usar logresolvemerge.pl dentro de su comando LogFile de esta manera:

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

Esto le dice a awstats que ejecute el comando logresolvemerge.pl con los dos archivos de registro como parámetros, y awstats leerá en la salida de ese script (eso es lo que hace la tubería |)

Daniel Lawson
fuente
No sabía que el script awstats podía manejar tuberías en el archivo de configuración. Niza + 1.
d -_- b
De acuerdo: la logresolvemerge.plsalida de tuberías a awstats es una gran solución.
Jez
sobre tuberías, consulte stackoverflow.com/questions/13832701/…
brauliobo
7

Alternativamente, puede usar un analizador de registros en tiempo real, como GoAccess. Es realmente rápido y no necesita descomprimir ningún registro.apache & nginx

http://goaccess.prosoftcorp.com/

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

O

zcat access.log.*.gz | goaccess -a -s -b
Lijadoras12
fuente