Frage Wie analysiert man mehrere GZ-Log-Dateien für Awstats?


Ich bin ziemlich neu bei awstats und habe Awstats auf meinem Apache-Webserver konfiguriert, um nginx-Zugriffsprotokolle zu analysieren (der nginx-Webserver ist für meine Django-App), ich kann die Statistiken auslesen LogFile=/var/log/nginx/access.log aber wie analysiere ich mehrere Logs, die gzip-Format sind. Wie zum Beispiel access.log.1.gz ... access.log.40.gz. Ich muss viele Protokolle analysieren.


18
2017-08-03 11:20


Ursprung




Antworten:


Wahrscheinlich möchten Sie hier alle diese Logfiles einmal analysieren und dann erst die aktuellen Logfiles analysieren.

Am einfachsten ist es, alle diese Dateien in eine einzige Datei zu entpacken, dann einmal eine awstats darüber laufen zu lassen und dann von nun an auf awstats in Ihrer access.log-Datei zu zeigen.

awstats hat normalerweise ein Skript namens logresolvemerge.pl, das die komprimierten Dateien lesen kann und sie für awstats passend zusammenführt, um eine Analyse durchzuführen.

Um all Ihre bestehenden zu verschmelzen, führen Sie

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

Dies wird wahrscheinlich eine Weile dauern.

Sie können dann awstats einmal über diese Datei ausführen lassen (LogFile entsprechend einstellen).

Von nun an sollten Sie awstats über die letzte Logdatei laufen lassen - was Ihre aktuelle Konfiguration tut.

Abhängig davon, wie oft Sie awstats vs. rotierende nginx-Logdateien ausführen, möchten Sie vielleicht, dass es sowohl die aktuelle als auch die vorherige Logdatei liest. (Wenn Sie z. B. nginx-Logdateien jeden Tag um 12 rotieren lassen, aber awstats jeden Tag um 1 laufen lassen, dann wird, wenn awstats läuft, die Logdatei nur das enthalten, was seit der letzten Rotation geschrieben wurde). Sie können logresolvemerge.pl in Ihrem LogFile-Befehl wie folgt verwenden:

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

Dies weist awstats an, den Befehl logresolvemerge.pl mit den beiden Logfiles als Parameter auszuführen, und awstats liest die Ausgabe dieses Skripts ein (das tut die Pipe |)


28
2017-08-05 00:04



Ich wusste nicht, dass das Skript awstats mit Pipes in der Konfigurationsdatei umgehen konnte. Nizza + 1. - d-_-b
Einverstanden - Rohrleitungen logresolvemerge.pl Die Ausgabe an awstats ist eine großartige Lösung. - Jez
über Rohrleitungen, sehen stackoverflow.com/questions/13832701/ ... - brauliobo


Alternativ können Sie einen Echtzeit-Log-Analysator wie GoAccess verwenden. Es ist wirklich schnell und Sie müssen kein Protokoll entpacken. apache & nginx

http://goaccess.prosoftcorp.com/

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

ODER

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

7
2017-08-06 03:46