AWStats - Auswertung von großen Logfiles

Hallo zusammen,

kann mir jemand von euch verraten, wieso mein AWS nicht so funktioniert, wie ich es gern hätte?

Ich habe eine bzw. mehrere Logfiles mit jeweils 250-300MB, diese zieh ich mir einzeln von meinem Server, benenne Sie um und versuche eine Auswertung hinzubekommen, allerdings passiert nichts, wenn ich „/usr/lib/cgi-bin/awstats.pl -config=CONFNAME -update“ ausführe…

Stundenlang bleibt folgende Meldung zu sehen:

Create/Update database for config „/etc/awstats/awstats.CONFNAME.de.conf“ by AWStats version 6.7 (build 1.892)
From data in log file „/var/www/web1/awstats/access.log“…
Phase 1 : First bypass old records, searching new record…
Searching new records from beginning of log file…
Phase 2 : Now process new records (Flush history on disk after 20000 hosts)…

Was mache ich hier falsch?

Vielen Dank schon mal im Voraus.

Hallo kugelmaus,

obwohl die Phase 2 schon ein wenig dauert, so sollte es doch keine Stunden dauern.

Einige diesbezügliche Fragen findest du hier:

http://awstats.sourceforge.net/docs/awstats_setup.html

http://www.rootforum.org/forum/viewtopic.php?f=67&t=…

Was mir so spontan einfällt:

Überprüfe noch einmal, ob der LogFile-Eintrag korrekt ist.

Rechte überprüfen.

DNS-Look-Up ausschalten.

Wie ziehst du dir die Logfile vom Server? Manchmal kommt es zu Übertragungsfehlern, die durchaus lustige Ergebnisse haben können.

Weiterhin wäre es sinnvoll, wenn du konkrete Angaben zum verwendeten System/Distribution usw. machen würdest.

mfg

tf

Hallo „tf“,

nach ganzen 2 Stunden hat es endlich funktioniert. Nur was sehr schade ist, dass es die Herkunft der User mir nicht in der Auswertung anzeigt…
(also zum Beispiel User kommt von google.de)

Die Datei an sich ziehe ich mir via rsync.
Die notwendigen Rechte sind auch vergeben.

Wie stelle ich das mit den DNS-Look-Up aus?
Vllt auch GeoIP?

Was mir aufgefallen ist, dass dieser Prozess nur 2-3% CPU Auslastung verbraucht…dabei habe ich extra einen eigenen Server dafür.

Auf dem Server befindet sich ein Debian Lenny.

Gruß Kugelmaus

Hallo Kugelmaus,

Wie stelle ich das mit den DNS-Look-Up aus?

Über den AWStats config file

DNSLookup=0

http://awstats.sourceforge.net/docs/awstats_config.html

Vllt auch GeoIP?

„If you need a ‚Country‘ report, you should prefer using the ‚geoip‘ plugin using Maxmind database instead of a DNS lookup.“
http://awstats.sourceforge.net/docs/awstats_benchmar…
Dort auch noch ein paar andere Tipps zur Beschleunigung (ganz am Ende der Seite). Aber generell gilt natürlich, je öfter Du das machen lässt, um so schneller geht es auch. Ich kenne ja deinen Traffic nicht, aber dort auf der Seite wird die Auswertung zwischen 6-stündlich bis täglich empfohlen. Mittels cronjob sollte das ja kein Problem sein.

Viele Grüße
Marvin

1 Like

Hey MArvin,

vielen Dank. Habe DNSLookup ausgestellt und nun läuft es in 1ner Min. durch.

Hey,

wo wir gerade dabei sind, hätte ich noch eine Frage. Vielleicht habt ihr sogar eine Antwort :wink:

Ich habe 2 Webserver, was bedeutet, dass ich auch 2 Logfiles für einen Tag habe.

Derzeit habe ich nacheinander die Logfiles eingespielt bei AWS mit dem Befehl „/usr/lib/cgi-bin/awstats.pl -config=CONFNAME.de -update“, aber anstatt die 2 Logfiles zu addieren, hat es mir immer nur die Log ausgewertet, welche von beiden mehr beinhaltete.

Ich bräuchte eine Lösung wie ich die X Besucher von Log1 und die Y Besucher von Log2 zusammen in AWS bekomme.

Hallo kugelmaus,

Ich habe 2 Webserver, was bedeutet, dass ich auch 2 Logfiles
für einen Tag habe.

Ich bräuchte eine Lösung wie ich die X Besucher von Log1 und
die Y Besucher von Log2 zusammen in AWS bekomme.

Ich weiss nicht, ob ich dich richtig verstehe, die zwei Server sollen dann in einer Auswertungsdatei stehen?
Soviel ich weiss, kannst Du in der awstats.XYZ.conf in der Option Logfile auch mehrere Pfadnamen, durch Leerzeichen getrennt, angeben. Also z.B.

LOGFILE="/var/log/apache/access.log" ""/var/www/localhost/htdocs/log/www.meineDomain-Acces.log"

Auch der Einsatz von Wildcards ist möglich
LOGFILE="/pathtotools/logresolvemerge.pl *.log |"
wenn Du logresolvemerge benutzt, was sich ja bei mehreren Logfiles anbieten würde
http://awstats.sourceforge.net/docs/awstats_tools.html

Wildcards für Zeitangaben sind auch möglich, z.B.
LOGFILE="/var/log/access_log.%YYYY-0%MM-0%DD-0.log"
http://awstats.sourceforge.net/docs/awstats_config.h…

Keine Ahnung, ob dir das weiterhilft.

Viele Grüße
Marvin

Hey,

danke für die Antwort, aber ich habe selber weitergeholfen mit logresolvemerge.pl… nun kann ich einfach 2Logs von gleichen Tag auswerten… in AWS habe ich eingach folgendes angegeben:

LogFile=„perl /usr/share/doc/awstats/examples/logresolvemerge.pl /var/logs/auswertung/v3xgz.* |“

und schon funktionierte alles :wink: