Come analizzare più file di registro gz per Awstats?


21

Sono abbastanza nuovo per Awstats e ho configurato Awstats sul mio server web apache per analizzare i log di accesso nginx (il server web nginx è per la mia app django), sono in grado di prendere le statistiche da LogFile=/var/log/nginx/access.logma come posso analizzare più log in formato gzip. Come access.log.1.gz ... access.log.40.gz. Ho molti log da analizzare.

Risposte:


29

Quello che probabilmente vuoi fare qui è analizzare tutti questi file di registro una volta, quindi continuare ad analizzare solo i file di registro correnti da quel momento in poi.

La cosa più semplice da fare è decomprimere tutti quei file in un singolo file, quindi far scorrere awstats su di esso una volta, quindi puntare awstats sul file access.log da quel momento in poi.

awstats normalmente ha uno script chiamato logresolvemerge.pl, che può leggere i file compressi e li unirà in modo appropriato affinché awstats esegua l'analisi.

Per unire tutti quelli esistenti, esegui

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

Questo probabilmente richiederà del tempo.

È quindi possibile eseguire awstats una volta su questo file (impostare LogFile in modo appropriato).

Da quel momento in poi, dovresti far eseguire awstats al file di registro più recente, che è quello che sta facendo la tua configurazione attuale.

A seconda della frequenza con cui stai eseguendo awstats rispetto alla rotazione dei file di registro nginx, potresti voler leggere sia il file di registro corrente sia quello precedente. (ad esempio, se ruoti i file di registro nginx ogni giorno alle 12, ma fai eseguire awstats ogni giorno a 1, ogni volta che awstats esegue il file di registro conterrà solo ciò che è stato scritto dall'ultima rotazione). È possibile utilizzare logresolvemerge.pl all'interno del comando LogFile in questo modo:

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

Questo dice a awstats di eseguire il comando logresolvemerge.pl con i due file di log come parametri, e awstats leggerà nell'output di quello script (ecco cosa fa la pipe |)


Non sapevo che lo script awstats potesse gestire le pipe nel file di configurazione. Nizza + 1.
d -_- b

D'accordo - l' logresolvemerge.ploutput delle tubazioni su awstats è un'ottima soluzione.
Jez,


7

In alternativa, è possibile utilizzare un analizzatore di log in tempo reale, come GoAccess. È molto veloce e non è necessario decomprimere alcun registro.apache & nginx

http://goaccess.prosoftcorp.com/

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

O

zcat access.log.*.gz | goaccess -a -s -b
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.