Platzhalter

 
Platzhalter PlatzhalterPlatzhalter

Logfile-Analyse selbst gemacht - ein Perl-Beispiel

Platzhalter
 
  Startseite
  eBook-Projekt
  Web-Lexikon
  Bücher bestellen
   
  Design-Theorie
  Design-Praxis
  Promotion
  HTML/XML-Praxis
  Projekt-Management
  Webmaster-Praxis
  Fragen & Antworten
  Technik-Ecke
   
  Portal/Links
  Buch-Rezensionen
  Software
  Impressum
PlatzhalterPlatzhalter







 

Platzhalter Um mögliche Konfusion im Ansatz zu ersticken: in diesem Artikel soll es darum gehen, ein kleines, nicht allzu komplexes Perl-Skript vorzustellen, das Logfiles unter Windows analysiert und die Ergebnisse dann über eine einfache grafische Oberfläche präsentiert.

Es geht dagegen nicht etwa um: das beste Logfile-Auswertungsprogramm der Welt, ein unheimlich ausgereiftes Programm, ein sehr anpassbares Programm, aufwändige grafische Auswertungen. Kommerzielle, aber wohl auch kostenlose Programme sind dem hier vorgestellten Programm weit voraus, was Benutzerfreundlichkeit und Auswertungsmöglichkeiten angeht.

Wieso stellen wir es dann hier überhaupt vor? Es ist kostenlos, schnell und hat eine Funktion, die wir bisher bei anderen Programmen dieser Art vermisst haben: es unterscheidet zwischen bereits angesehenen Referrer-Seiten und noch unbekannten. Tatsächlich war es mir persönlich immer ein großes Ärgernis, nie auf den ersten Blick sehen zu können, ob ein neuer Link, womöglich von einer bedeutenden Institution, zu AboutWebDesign erstellt wurde.

Zudem stellt es einen einfachen Ansatz vor, sowohl Logfiles als auch Textdateien im Allgemeinen auszuwerten. Wer gerade in die Materie einsteigt, mag hier Inspiration finden. Wer sich dagegen in dem Bereich auskennt, kann seine Fähigkeiten testen, indem er verbesserungswürdige Punkte sucht - und findet. Verstehen Sie es als Fingerübung, als Studie, als Experiment - als Beispiel.

Download


Wenn Sie nun Lust haben, das Programm auszuprobieren, können Sie es unter der Adresse http://www.aboutwebdesign.de/awd/ext/analyze.pl herunterladen.

Funktionen


Aus unserer Motivation heraus wird auch verständlich, warum das Programm auf die Logfiles von Strato (unserem Host) abgestimmt ist. Es kennt drei Funktionen: Anzeige der Abrufe nach Tagen, getrennt in Pageimpressions und Visits. Anzeige der Domains, von denen diese Abrufe kamen (Referrer) als Übersicht und im Detail. Anzeige der Dokumente, die am häufigsten abgerufen wurden.

Bugs und Einschränkungen


Bisher gibt es nur einen bekannten Fehler: wenn zu viele zu lange URLs zu einem Referrer-Eintrag gehören, dann wird die Detail-Ansicht nicht angezeigt.

Installation und Einsatz


Das Programm wurde getestet unter der neuesten Version von ActiveState Perl. Es setzt u.a. das Tk-Modul voraus, das aber inzwischen zur Standarddistribution gehören sollte.

Kopieren Sie die Programmdatei in ein Verzeichnis Ihrer Wahl. Legen Sie in diesem Verzeichnis ein Unterverzeichnis an, das die Logfiles beinhalten soll. Standard-Dateiendung für Logs ist .txt - andere Dateien in diesem Verzeichnis werden einfach ignoriert. Legen Sie im Programm-Hauptverzeichnis mit Notepad eine Datei namens urls.txt an, die Sie einfach leer speichern.

Nun öffnen Sie die Programmdatei, die analyze.pl, und editieren die Funktion config. Tragen Sie dort die Pfade aller gerade angelegten Verzeichnisse ein. Die Array-Referenz $main::selfurls sollte die Domains enthalten, unter denen Ihre Site erreichbar ist.

Weitere spezifische Anpassungen


Wir erwähnten bereits, dass unser Programm zum Parsen von Strato-Logfiles geschrieben wurde. Eine Anpassung an eigene Formate ist aber kein Problem und sollte in der Prozedur linetohash erfolgen. Wesentliches Prinzip: die Funktion erhält eine Zeile aus dem gerade geparsten Logfile, verarbeitet die enthaltenen Informationen und speichert sie in einer Hash-Referenz, die anschließend zurückgegeben wird. Für das Funktionieren des Programms ist essenziell, dass der zurückgegebene Hash die in der Funktion definierten Felder enthält - wie das passiert, ist egal. In der Praxis läuft eine Anpassung an eigene Logfile-Formate also meist darauf hinaus, den verwendeten regulären Ausdruck oder die Feld-Reihenfolge zu ändern.

Unterseiten im Browser anschauen


Die Anzeige der meistabgerufenen Unterseiten funktioniert so, dass ein Klick auf die entsprechende Unterseiten-URL die Seite im Browser anzeigt. Dafür muss das Programm aber wissen, auf welcher Domain die Unterseite liegt. Der entsprechende Code findet sich in Zeile 74:

my $url = ($text =~ /^\/awd\/content/) ? 'http://www.aboutwebdesign.de' : 'http://www.webdesign-referenz.de';

Was hat es hiermit auf sich? Wie manchem Leser vielleicht schon aufgefallen ist, liegen AboutWebDesign und die Webdesign-Referenz auf demselben Server, letztere in einem Unterverzeichnis unseres Haupt-Servers. Das führt leider dazu, dass die Logfiles selbst keinen Hinweis darauf enthalten, über welche Domain ein Zugriff gestartet wurde. Wir wissen aber, dass alle AboutWebDesign-Seiten mit relevanten Inhalten mit einem /awd/content beginnen. Die Seiten der Webdesign-Referenz liegen im Gegensatz dazu alle direkt im Hauptverzeichnis. Kurzum, indem wir auf den Beginn des abgerufenen Pfades prüfen, können wir herausfinden, welche Domain dem Unterseiten-Pfad vorangestellt werden muss, um eine komplette, gültige URL zu erzeugen.

Wenn Sie keine ähnlichen Probleme haben, können Sie $url einfach auf einen statischen Wert setzen.

Pfad zur browser.exe


Weil uns das Win32-API bei der Programmierung gewisse Schwierigkeiten bereitete, haben wir uns entschieden, die Prozedur zur Anzeige einer Seite im Browser selbst sehr einfach zu realisieren. In Zeile 350ff findet sich der Code, der manuell den Browser aufruft und ihm als Argument die zu öffnende URL übergibt. Gegebenenfalls müssen Sie den Pfad oder auch die Syntax des direkten Aufrufs anpassen, je nachdem, welchen Browser Sie verwenden und wo dieser installiert ist.

Verwendete Dateitypen


Unser Programm verwendet einen einfachen regulären Ausdruck, um ein "Dokument" in Abgrenzung zu z.B. einer Bilddatei zu erkennen:

/(\.shtml )|(\.html )|(\.htm )|(\.pl )|(\.cgi )/

Wenn Ihre Dokumente andere Dateiendungen tragen, z.B. .php4, muss dieser Ausdruck - er kommt an zwei Stellen im Code vor - ergänzt werden.

Analyse starten


Sind alle Anpassungen komplett, kann die erste Analyse gestartet werden. Kopieren Sie Ihr Logfile in den von Ihnen erstellten Unterordner und geben Sie ihm die .txt-Endung. Wechseln Sie nun ins Hauptverzeichnis und starten Sie dort die analyze.pl - wenn die ActiveState Perl-Installation erfolgreich war, reicht ein einfacher Doppelklick.

Im Fall, dass alles funktioniert, öffnet sich nun ein Fenster mit drei Buttons.

Wenn sich dagegen kein Fenster öffnet, haben Sie entweder einen neuen Bug gefunden oder aber bei den Anpassungen einen Fehler gemacht. Öffnen Sie die Eingabeaufforderung, wechseln Sie ins Programm-Hauptverzeichnis und versuchen Sie dort, das Programm durch die Eingabe von perl analyze.pl manuell zu starten. Die nun erscheinenden Fehlermeldungen sollten Ihnen weiteren Aufschluss über die Art des Problems geben.

Autor: Alexander Dilthey | Erstmalig veröffentlicht: 22.02.2005 | Einen Artikel schreiben?

 

Neue Artikel

Rezension: Entwurfsmuster von Kopf bis Fuß
Rezension: Webdesign mit CSS
AJAX - XML und JavaScript in Schönheit vereint?
Rich Email - Flash im Newsletter
Screen Reader Usability
Comment Spam und CAPTCHAs
Logfile-Analyse selbst gemacht - ein Perl-Beispiel

Partnerprogramm




Kommentar

Ist die Freiheit der Informationsgesellschaft in Gefahr?
Derzeit leben wir in einer relativ freien Welt. Doch sind derzeit Tendenzen erkennbar, die Freiheit des Individuums den Interessen der Großindustrie zu opfern. Ein Kommentar.

Druckversion
Sie wollen diese Seite ausdrucken? Dafür haben wir eine spezielle Druckversion ohne grafische Elemente entwickelt!



Einführung in CSS bei HTMLWorld.