Thread Serverstatistik: Auslesen von Serverlogs (12 answers)
Opened by root at 2003-10-20 12:29

jan
 2003-10-20 13:36
#30476 #30476
User since
2003-08-04
2536 Artikel
ModeratorIn
[Homepage] [default_avatar]
also ich würde, um den aufwand vertretbar zu halten, einfach irgendwo lokal einen cron aufsetzen, der montags morgens per ftp in deinen acc geht und sich die letzte log als gz runterlädt und lokal speichert. ich würde keine riesendateien bauen, sondern sie im wochenformat lassen, dann kannst du wunderbare monatsvergleiche machen, ohne jedes mal gleich ein paar gb durchwühlen zu müssen.
gleichzeitig, denke ich, kann es nicht schaden, jeweils am monatsende eine deinen wünschen entsprechende statistik für den letzten monat zu machen und die irgendwo in raw-form abzulegen, d.h. nicht als html oder so, damit du darauf zugreifen und sie ggf mit anderen monaten vergleichen kannst.

puretec löscht die logdateien, die älter als 7 (oder so) wochen sind, damit dein speicherplatz nicht so zugemüllt wird (oder ihrer, kA, ob sie das von deinem abziehen, aber denke nicht), daher musst du sie vorher lokal sichern. sollte ja nicht das problem sein.

generell würde ich also wocheneinheiten lassen, machen meiner ansicht nach am meisten sinn.
wie du die dann parst, ist eine andere frage. ein array ist da wohl nicht ganz so genial, da der nur jeweils die ganze logzeile beinhalten würde, was nicht so optimal ist. ich würde die daten eigentlich gar nicht im speicher halten, sondern nur die auswertung, will sagen, du gehst die logdateien zeile für zeile durch und wertest on the fly aus. zum beispiel eben hast du einen hash, der alle angefragten seiten als key enthält und wo du dann jeweils hochzählst im value, sodass du nachher genau sagen kannst, welche seite wie oft angefragt wurde. dann das selbe für den useragent etc pp. und dann kannst du das natürlich noch mit dem status kombinieren (à la "Status 200: so viele insgesamt, top 100 angefragte dateien. Status: 404....."). und natürlich, wenn du da einen modus vivendi findest, für sessions, d.h. zum beispiel du sagst "ok, ich mach das ip-basiert und scheiß auf die proxy-leute und solche, die zufällig bei jedem request über ein anderes gateway rausgehen", dann schaust du, ob du für die ip, die den momentanen request stellte, schon eine session hast und ob der letzte zugriff in der session nicht länger als xyz minuten her ist. wenn ja: hinzufügen zu der session, wenn nein, neue session mit dem aufruf starten. so kannst du dir nachher eine statistik über die pageimpressions (seitenaufrufe pro besucher/besuch) ausgeben lassen. vielleicht kannst du daraus auch noch einigermaßen sinnvolle aussagen schließen wie "in 90% der sessions wurden folgende dateien aufgerufen, in 70% in dieser reihenfolge:", um dein besucherverhalten besser verstehen zu können.

um's kurz zu sagen: es gibt jede menge möglichkeiten, ich schlage vor: back to the drawing board und erst mal herausfinden, was genau du für statistiken brauchst und willst - dann einen weg überlegen, wie du an die stats herankommst.
nebenbei: es gibt, auch in perl, schon recht nette loganalyzer, die du vielleicht anpassen oder zumindest als vorlage verwenden kannst.

View full thread Serverstatistik: Auslesen von Serverlogs