Die Analyse von mehrere Logfiles in einer Statistik

Alles, was den Apache betrifft, kann hier besprochen werden.

Die Analyse von mehrere Logfiles in einer Statistik

Postby Bernd Glasstetter » 13. March 2005 21:27

Wir haben auf unserem Server mehrere virtuelle Hosts eingerichtet, die alle zu einem größeren privat betriebenen Multimedia-Netzwerk (www.splashpages.de) gehören. Jeder Host hat seine eigenen Logfiles, seine eigene Statistikauswertung. Soweit gut und schön und das funktioniert alles perfekt.

Jetzt würden wir aber sehr gerne eine gemeinsame Statistik aller Sites führen. Also eine Statistik, bei der alle Logfiles ausgewertet werden. Bis jetzt bin ich nur Webalizer fündig geworden:
http://www.webalizer.net/faq.html
Frage 16

16. How can I process multiple logs from a server farm?

Q: I have multiple load-balanced servers (or I'm using DNS round-robin to accoplish the same thing) and I want to generate one webalizer report for the whole farm, but each server generates its own log file. When I run webalizer on each of the logfiles in turn, it ignores a lot of the records because it thinks they're out of order!

A: You need to merge all of the logfiles together so that webalizer sees the records in chronological order. One good way to do that on the fly is with mergelog ( http://mergelog.sourceforge.net/) , a quick common logfile sorter. An example:

mergelog .log .log .log | webalizer

Another method is to simply combine your logs and then sort them into chronological order. Here is a simple shell script that uses the GNU sort utility to sort an already combined log file:

#!/bin/sh
if [ ! -f $1 ]; then
echo "Usage: $0 "
exit
fi
echo "Sorting $1"
sort -t ' ' -k 4.9,4.12n -k 4.5,4.7M -k 4.2,4.3n -k 4.14,4.15n -k 4.17,4.18n -k 4.20,4.21n $1 > $1.sorted


mergelog geht aber nur beim Common Log Format, wir benutzen das Combined Log format. Und die zweite Methode erscheint mir eigentlich zu kompliziert.

Gibt es irgendwo eine einfachere Lösung?

Der Gedanke war uns auch schon gekommen, eine gemeinsame Logdatei anzulegen - neben den getrennten Logdateien - aber da eine unserer Sites bereits ca. 1 GB Daten in zwei Wochen ansammelt, erscheint mir das zu aufwendig. Zumal der Apache dann nahezu doppelt so viel zu tun hätte.

Für jede Antwort wäre ich dankbar :-)
Bernd Glasstetter
 
Posts: 3
Joined: 13. March 2005 21:05
Location: Waldshut-Tiengen

Postby Obiator » 14. March 2005 11:24

Es gibt noch ein Statistik-Tool namens AWStats. Schau mal bei google danach. Ich weiss aber nicht, ob dir das in deinem Fall weiterhilft!
Obiator
 
Posts: 22
Joined: 03. March 2005 11:57

Postby Bernd Glasstetter » 14. March 2005 11:52

Das kannte ich bisher noch nicht und habs gefunden:
http://awstats.sourceforge.net/
Das hat ein paar sehr interessante Feature, zum Beispiel FTP- und Maillogauswertungen. Sowas hatten wir bisher noch nicht. Und das hier kann vielleicht weiter helfen:
Unlimited log file size, support split log files (load balancing system)
Support 'not correctly sorted' log files even for entry and exit pages

ich werds mal installieren und mir anschauen - und dann hier darüber berichten. Ich kann mir vorstellen, daß wir da nicht die Einzigen sind, die so etwas gebrauchen können :)

Auf jeden Fall erst einmal tausend Dank!
Bernd Glasstetter
 
Posts: 3
Joined: 13. March 2005 21:05
Location: Waldshut-Tiengen

Postby Bernd Glasstetter » 15. March 2005 00:49

So, es läuft - und wie es läuft!

Mit Hilfe von logresolvemerge.pl werden on the fly die Logs zusammengeführt und ausgewertet. Dabei können Logs mithilfe von Wildcards und mit genauen Pfadangaben zusammen verwertet werden.

Am Anfang hat uns aber genau das noch geärgert. Denn hat man einmal die History angelegt, setzt das Merging an dem Punkt an, an dem die History aufhört. Deswegen dachten wir nach der ersten Erprobung mit nur einem Logfile, das würde nicht gehen. Erst als wir die History löschten, machte er das dann. Das war aber nirgendwo beschrieben - also zur Dokumentation hier in diesem Thread, damit es jeder nachlesen kann :)

Einziger Nachteil: Das Ganze ist saulangsam. Wir lassen hier ca. 10 Logs mergen. Und da läuft der Cronjob schonmal 20 Minuten, bis alles durch ist. Man sollte das also möglichst zu Zeiten laufen lassen, wo die Serverlast niedrig ist, sonst macht der Server dicht. Wir hatten zwar meistens noch 20 bis 30 % CPU-Power übrig, während der Job lief. aber die sind halt auch mal schnell dicht. Am Besten dürfte eine getrennte Maschine dafür geeignet sein.

Ansonsten ein geiles Tool das AWstats. Sehr viel ausführlicher als Webmin und es filtert auch gekonnt alle Spider-Aktivitäten heraus. Ich kanns nur empfehlen - so als Vergleichsmöglichkeit, um zu sehen, wieviel Traffic real und wieviel von Robots verursacht wurde.

@Obiator: Nochmals vielen Dank für die Hilfe :D
Bernd Glasstetter
 
Posts: 3
Joined: 13. March 2005 21:05
Location: Waldshut-Tiengen


Return to Apache

Who is online

Users browsing this forum: No registered users and 21 guests