Titel: LU 05/2004 - Besucher im Blick
Pfad: http://www.linux-user.de/ausgabe/2004/05/068-weblogs/index.html


Auswertung von Webserver-Logdateien

Besucher im Blick

von Tim Schürmann 

Webserver sind äußerst gesprächig. Sie protokollieren penibel jede Anfrage und jeden Zugriff als graue Zahlenkolonnen. Mit der richtigen Software werden daraus aussagekräftige Grafiken.

Jeder Webserver schreibt mit, wenn seine HTML-Dateien übers Internet abgerufen werden. Er protokolliert Zeitpunkt, Filenamen und viele andere Daten im Detail. Deshalb eignen sich Logdateien kaum als angenehme Lektüre. Weblog-Programme verarbeiten solche Files und bereiten das Ergebnis grafisch auf. So erhalten Sie schnell eine Übersicht über die Zugriffe auf den eigenen Webserver. Dabei können Sie aus einer Fülle kostenloser Weblog-Analyzer wählen.


Server: Ein Programm, das dauerhaft im Hintergrund läuft. In der Regel wartet es auf Anfragen von anderen Programmen (den Clients), um Informationen zurück zu liefern.
Webserver: Ein Server, der für der Internetseiten bereitstellt. Möchte ein Browser eine Internetseite abrufen, sendet er eine Anfrage an den Webserver. Dieser schaut nach, ob die Seite auf seiner Festplatte liegt und schickt sie dann an den Browser.

Formatwirrwar

Bei den meisten Webservern können Sie einstellen, welche Daten sie protokollieren -- vorausgesetzt Sie sind Ihr eigener Provider oder dürfen zumindest die Serverkonfiguration bestimmen. Von Haus aus benutzen die meisten Server ein recht ähnliches Format für ihre Logdateien.

Die einfachste Variante ist das Common Log File Format (CLF). Es enthält zum Beispiel die IP-Adresse des anfragenden Rechners, die Anzahl übertragener Bytes und Datum und Uhrzeit des Zugriffs (vgl. Abbildung 1). Um einige Einschränkungen des CLF-Formats zu umgehen, wurden verschiedene Erweiterungen entwickelt. Beispiele hierfür sind das Combined Log File Format oder das Extended Log File Format (ELFF) des World Wide Web Consortium (W3C). Hinzugekommen sind unter anderem die Kennung des Browsers (User-Agent) und die vom Benutzer zuvor besuchte Webseite, der so genannte Referer. Unter Linux finden sich die Logdateien meist im Verzeichnis /var/log und heißen access.log.

Abb. 1: Ein Beispiel einer Logdatei des freien Webservers Apache -- eine komplette Zeile ist blau hervorgehoben.

Damit finden Sie häufig verwendete Browser und können die Webseiten anschließend für diese optimieren. Die Referer auszuwerten ist vor allem bei Werbebannern interessant, denn sie zeigen, wie der Surfer auf der eigenen Site gelandet ist. Referer-Informationen helfen bei der Analyse von Suchmaschinenanfragen: Die URLs enthalten die Suchbegriffe, über die Surfer auf die eigenen Seiten gelangt sind.


IP-Adresse:Die Adresse eines Computers im Internet besteht aus vier durch Punkte getrennte Zahlen zwischen 1 und 255.

Der Systemverwalter kann festlegen, dass der Webserver regelmäßig ein neues Logfile beginnt und das alte unter einem anderen Namen speichert. Optional komprimiert er die alte Logdatei im Gzip-Format, um Platz zu sparen. Einige Analyzer können direkt mit solchen Dateien umgehen, andere müssen Sie vorher manuell entpacken.

Mix it

Mit den Daten eines Logfiles lässt sich nun eine Statistik erstellen. Sind Sie an der Anzahl der Abrufe einer bestimmten Seite interessiert, zählen Sie einfach alle Logfile-Zeilen, die einer Anforderung dieser Seite entsprechen. Da dies schon bei kleineren Internetauftritten sehr umständlich ist, existieren zahlreiche Programme, die eine solche Sisyphusarbeit übernehmen.

Um die Fülle der verfügbaren Werkzeuge zu reduzieren, beschränken wir uns auf Analyzer, die als Eingabe die Log-Datei(en) erwarten.und auch auf einem anderen Rechner als dem eigentlichen Webserver laufen können.

Den meisten Analyzern ist gemein, dass sie nur wenig Dokumentation mitbringen. Da sie zudem über Konfigurationsdateien gesteuert werden, ist etwas Experimentierfreude angesagt. Es handelt sich durchweg um Kommandozeilenprogramme, die auf eine grafische Benutzeroberfläche verzichten.

Alle Analyzer liefern als Grunddaten die Gesamtzahl der Zugriffe und das übertragene Datenvolumen. Diese Informationen sind essentiell, da die meisten Hosting-Pakete eine obere Grenze für das Übertragungsvolumen festsetzen. Überschreiten Sie diese, kann es schnell teuer werden. Doch Vorsicht: Die hier betrachteten Logfiles halten nur das Übertragungsvolumen des Webservers fest. Weitere Datenflüsse, zum Beispiel der eingerichteten von E-Mail oder FTP-Zugriffen erfassen sie nicht.

Ebenfalls zu den Basisinformationen gehört eine Aufstellung der meistbesuchten Seiten. Daran lesen Sie die Beliebtheit einzelner Seiten oder Themen ab. Eine solche Liste sollten Sie auch im Hinblick auf die Rechnersicherheit durchsehen: Sind in ihr Dateien aufgeführt, die eigentlich nicht über das WWW lesbar sein sollten, ist dies ein Hinweis auf einen Einbruch oder Missbrauch.

Bei der Auswertung der besuchten Seiten unterscheiden die Programme zwischen Hits und Pageviews (auch Page Impressions). Ein Hit bezieht sich auf die Anforderung eines einzelnen Elementes, wie zum Beispiel einer Grafik. Besteht eine Seite aus drei Bildern und einer HTML-Datei, führt ein Abruf der Seite (ein Pageview) also zu insgesamt vier Hits. In diesem Zusammenhang spielt noch der Begriff des Visit (auch Session) eine Rolle: Bei einem Visit geht man davon aus, dass alle Anfragen von einer IP-Adresse in einem bestimmten Zeitraum (zum Beispiel 30 Minuten) von ein und demselben Benutzer stammen. Da Internet-Provider IP-Adressen oft dynamisch vergeben, ist diese Zuordnung noch die beste Näherung, will man nicht zu komplizierteren Mitteln wie Cookies greifen.

Wichtig, aber längst nicht mit allen Analyzern möglich, ist die Auflösung von IP-Adressen in deren lesbare Domain- bzw. Rechnernamen. Die dabei gleichzeitig ermittelte Top-Level-Domain lässt Rückschlüsse auf das Land zu, aus die Anfrage kam. Wer sein Angebot mehrsprachig führt, dürfte an diesen Informationen interessiert sein.

Sherlog

Die wohl kleinste und einfachste Software trägt den Namen Sherlog. Bei ihr handelt es sich um ein Perl-Skript, das als Eingabe das Log-File erwartet und eine ASCII-Datei auf dem Bildschirm ausspuckt. (vgl. Abbildung 2). Sie rufen es beispielsweise so auf:

perl sherlog.pl access.log.01 >ausgabe.txt

Die Logdatei heißt hier access.log.01, das Zeichen > leitet die Ausgabe in die Datei ausgabe.txt um. Alternativ sendet Sherlog das Ergebnis an eine E-Mail-Adresse, wenn Sie die anstelle des >ausgabe.txt hinschreiben.

Insgesamt sind Sherlogs Auswertungen etwas mager: Neben der Anzahl der Visits sowie einer Aufstellung der beliebtesten Seiten und häufigsten Fehler, listet Sherlog die angeforderten Seiten, sortiert nach IP-Adresse, auf. Letztere Statistik liefert Anhaltspunkte für die Verweildauer und den Weg eines Besuchers. Hieraus lässt sich wiederum schließen, welche Seiten besonders für Benutzer informativ sind und wo ihre Hauptinteressen liegen. Auf dieser Basis können Sie die Seiten so gestalten, dass sie den Nutzer gezielt durch das Angebot leiten. Sherlog fasst alle Besuche einer Adresse in einem Abschnitt zusammen (Abbildung 2). Damit ist die Aufbereitung nicht besonders übersichtlich, was die Auswertung gerade bei großen Websites erschwert.

Abb. 2: In seinen Auswertungen führt Sherlog alle Seiten auf, die von einer Adresse (hier 213.54.41.244) aufgerufen wurden.

AC.log

Ähnlich einfach ist auch die Bedienung des Perl-Skriptes AC.log. Ihm liegt sogar ein Handbuch im PDF-Format bei. Sie rufen AC.log mit der Angabe aller Dateien auf, die es analysieren soll, wie zum Beispiel:

perl aclog access.log.01 access.log.02 >ausgabe.txt

Das Ergebnis ist wie bei Sherlog eine Textdatei. Weitergehende Konfigurationsmöglichkeiten gibt es nicht -- alle rudimentären Einstellungen müssen Sie im Perl-Skript selbst vornehmen.

AC.log liefert genau die Informationen, die Sherlog nicht bietet -- und umgekehrt. So löst AC.log weder die IP-Adressen in lesbare Hostnamen auf, noch bietet es die Möglichkeit, den Weg eines Benutzers zu verfolgen. Dafür gibt es eine Tabelle der häufigsten Einstiegsseiten ( auch Session Entry Page genannt) aus, die Verweildauer pro Seite und die Ausstiegsseite (Session Exit Page). Mit der Einstiegsseite beginnt der Besuch einer Person, die Ausstiegsseite ist die zuletzt von ihr betrachtete. Solche Informationen beeinflussen beispielsweise in die Platzierung von Werbebannern oder die Anpassung der Benutzerführung.

Eine sehr hohe Verweildauer kann übrigens darauf hinweisen, dass die entsprechende Seite entweder zu viele Informationen enthält oder überladen wirkt. Im letzten Fall braucht der Benutzer die Zeit, um sich erst einmal zurecht zu finden. Wenn die Seite im oberen Bereich der häufigsten Ausstiegsseiten liegt, findet diese These zusätzliche Bestätigung. Ähnliches gilt für das Schlusslicht: Eine Seite mit extrem kurzer Verweildauer hat wurde von den Besuchern schnell weggeklickt. Entweder enthält sie zu wenig Informationen oder der Besucher ist schnell gelangweilt.

Des weiteren stellt AC.log die Anfragen nach Tag und Woche geordnet grafisch dar (Abbildung 3). Besitzer von eigenen Webservern werden diese Informationen im Sinne einer optimierten Lastverteilung zu schätzen wissen.

Abb. 3: AC.log zeigt die Zugriffe nach Stunden aufgeschlüsselt, die in der vierten Spalte stehen. Darunter führt es die häufigsten Einstiegseiten auf.

Ebenfalls interessant ist die von AC.log vorgenommene Aufstellung nach Dateitypen. Werden mehr Bilder (Endung .png oder .jpg) als HTML-Dokumente herunter geladen, sollten Sie überlegen, ob die Seiten nicht mit weniger Bildern auskommen -- alle Modembesitzer werden es danken. Ausnahmen wie Bildersammlungen bestätigen nur diese Regel.

AWebVisit

Ganz auf die Analyse der Besucherinformationen hat sich aWebVisit spezialisiert. Insbesondere ermittelt es die Einstiegs- und Ausstiegsseiten sowie die Verweildauer von Besuchern. Das kleine Werkzeug stellt ihre Wege sogar grafisch dar (Abbildung 4). Das Perl-Skript aWebVisit müssen Sie direkt editieren, um es auf ihren Bedarf abzustimmen. Nach dem Programmnamen folgen die zu analysierenden Logdateien, zum Beispiel:

perl awebvisit access.log.01 access.log.02

Das Ergebnis besteht aus einer Reihe von HTML-Dateien, wobei die Hauptseite den Namen awebvisitf.html trägt. Um die Grafiken zu erzeugen, benötigt es das separat erhältliche Programm fly [1]. Editieren Sie nach dessen Installation die Datei awebvisit.pl und tragen Sie in der Zeile, die mit $flyprg beginnt, zwischen den Hochkommata den vollständigen Pfad zum Programm ein. aWebVisit eignet sich dafür, die Benutzerwege nachzuvollziehen -- für mehr aber auch nicht.

Abb. 4: aWebVisit zeigt grafisch, welche Wege der Benutzer innerhalb der Website zurücklegt.

Relax

Das Perl-Skript Relax (Abbildung 5) beschränkt sich bei seinen Auswertungen vollständig auf Referer-Informationen. Im Gegensatz zu den vorher genannten Skripten legt es auf Wunsch eine Archiv-Datei an, in der es bisherige Log-Informationen komprimiert speichert. Dies ist nützlich, wenn der Webserver stets neue Logfiles für jeweils einen bestimmten Zeitraum anlegt (log rotation). Mit der Archivfunktion genügt es, das stets aktuelle Logfile einzulesen. Relax greift dann auf das Archiv zurück und hängt die frischen Daten an.

Folgender Aufruf verarbeitet alle Dateien, die mit dem Namen access.log beginnen.

perl relax.pl -crelax.cfg -oausgabe.html access.log.*

Nach -c folgt also der Name der Konfigurationsdatei, während -o den Namen der Ergebnisdatei festlegt. Alle weiteren Einstellungen nehmen Sie entweder in der Konfigurationsdatei relax.cfg vor oder per Kommandoschalter. Die beschriebene Archivdatei zur Zwischenspeicherung spezifiziert beispielsweise der Parameter -adateiname.

Abb. 5: Relax zeigt listet die Referer im statistischen Überblick, nach internen und externen Seiten, Suchmaschinen und Unbekannten.

Webalizer

Die verbreitete, freie Weblog-Software Webalizer (Abbildung 6) liegt sogar einigen Distributionen bei. Webalizer bietet die bereits vorgestellten Grundfunktionen der anderen Programme, wie Archivdateien (hier als incremental processing bezeichnet) und die Auflösung von IP-Adressen in Hostnamen. Die Ausgabe beschränkt sich auf solide Basiskost: meist die obligatorischen Top-10-Listen, wie zum Beispiel die Liste der beliebtesten Seiten. Wünschenswert wäre eine etwas bessere Verfolgung der Benutzerpfade, aber die meisten Ausgaben beziehen sich nur auf Hits. Dafür wertet Webalizer die Top-Level-Domains nach Ländern aus.

Sie stellen Webalizer ein, indem Sie es mit Parametern starten oder die Konfigurationsdatei /etc/webalizer.conf editieren. Der Aufruf lautet allgemein:

webalizer -o verzeichnis access.log.01

Die Option -o verzeichnis gibt an, wo Webalizer die Ergebnisse der analysierten Logdatei access.log.01 ablegt. Es ist ratsam, vor dem ersten Aufruf die Konfigurationsdatei Schritt für Schritt durchzugehen. Die beiliegende README-Datei erklärt jeden Punkt -- allerdings nur auf Englisch. DNS-Namensauflösung aktivieren Sie beim Kompilieren des Programms. Dazu rufen Sie das Skript configure mit der Kommandozeilenoption --enable-dns vor dem obligatorischen make auf, zum Beispiel:

configure --enable-dns ; make ; make install


DNS: Das Domain Name System besorgt die Übersetzung von Internet-Namen in IP-Adressen. DNS-Server führen dafür Datenbanken und beantworten Anfragen, die Browser ohne Zutun des Users im Hintergrund ausführen. Tippt er beispielsweise www.google.com ein, läuft eine solche Anfrage, die als Ergebnis die Adresse 216.239.41.99 zurückgibt. Zu der nimmt der Browser schließlich dann Kontakt auf.

Leider ist diese Funktion nachträglich nicht mehr zugänglich. Haben Sie die Namensauflösung eingeschaltet speichert das Programm die aufgelösten DNS-Namen in einer Datei, dem so genannten DNS-Cache. Das verringert die notwendigen DNS-Anfragen: Stößt Webalizer während der Auswertung der Logfiles auf eine IP-Adresse, schaut es zunächst im Cache nach. Nur wenn dort kein entsprechender Eintrag vorhanden ist, geht Webalizer im Internet auf die Suche. Sonst verwendet er einfach den gespeicherten Eintrag. Um die DNS-Auflösung zu nutzen, müssen Sie daher bei seinem Aufruf die Cache-Datei angeben:

webalizer -N 10 -D dns_cache.db -o verzeichnis access.log.01

Die Cache-Datei heißt hier dns_cache.db, der zuständige Parameter -D. Die Option -N 10 aktiviert die DNS-Anfragen, die Webalizer durchführt, wenn es in der Datei dns_cache.db nicht fündig wurde. In diesem Fall startet der Analyzer zehn Prozesse, die das gleichzeitig und damit insgesamt schneller erledigen.

Abb. 6: Mit Balkendiagrammen zeigt Webalizer die durchschnittliche Nutzung des Webservers, hier die Monate Dezember bis Januar.

Analog

Analog spielt in derselben Liga wie Webalizer und liefert ähnliche Informationen wie sein Konkurrent, geht aber teilweise etwas weiter. So gibt Analog Statistiken über die zugreifenden Organisationen (Firmen, Institutionen, etc.) oder das verwendete Betriebssystem aus und zeigt die Suchwörter an, die von Suchmaschinen zur eigenen Site geführt haben.

Nützlich ist das zum Beispiel, wenn der Internetauftritt Betriebssystem-abhängige Web-Inhalte anbietet, wie Flash, JavaScript oder ActiveX. Auf Grundlage der ausgegebenen Statistik können Sie dann sicherstellen, dass Ihre Site keine Besucher ausschließt.

Von Haus aus zeichnet das Programm schon Balken- und Tortendiagramme (Abbildung 7), erzeugt aber mit der Software Reportmagic [2] noch ansprechendere Ergebnisse. Standardmäßig verlangt Analog das CLF-Format. Gesteuert wird Analog über die Konfigurationsdatei analog.cfg, die sich im selben Verzeichnis wie Analog befindet. In ihr ist unter LOGFILE der Dateiname des Logfiles und unter OUTFILE der Name der Ausgabedatei anzugeben. Für mehr als ein Logfile schreiben sie einfach mehrerer solche Einträge in die Konfigurationsdatei. Ein Aufruf von ./analog startet die Auswertung.

Abb. 7: In einem Tortendiagramm zeigt Analog, welche Verzeichnisse den größten Zuspruch erhielten.

Lire

Als eierlegende Wollmilchsau analysiert Lire (Abbildung 8) analysiert fast alle Logdateien, die sich auf Computern finden. Dank seines modularen Aufbaus gehören nicht nur FTP- oder CUPS-Logdateien zu seiner Leibspeise, Lire lässt sich so auch um eigene Module erweitern. Diese Flexibilität hat leider ihren Preis: Das Programm hängt von viele anderen Paketen ab und ist etwas schwieriger zu bedienen. So wertet dieser etwas längere Aufruf die Logdatei access.log aus:

lr_run lr_log2report -o html_page common < access.log > r.tar

Der Schalter -o legt das Ausgabeformat html_page fest, danach spezifiziert common das Format des Logfiles, das die Software über den Eingabeoperator < eingetrichtert bekommt. Das schreibt Lire im Tar-Format, das die Kommandozeile in die r.tar umleitet. Das entpacken Sie wiederum mit tar xf r.tar.

Wie man hier schon sieht, kommt man bei Lire um eine Lektüre der ausführlichen Dokumentation nicht herum. Wer diese Konfigurations-Hürde einmal genommen hat, wird allerdings mit einer extrem umfassenden und ebenso ausführlichen Auswertung belohnt. So erstellt Lire als einziges Programm eine Statistik, die Rückschlüsse auf Angriffe zulässt, sowie Informationen über Zugriffe von (Suchmaschinen-)Robotern. Lire gibt seine Ergebnisse in vielen Formaten aus, neben HTML-Dateien mit Grafiken zum Beispiel auch als Text oder PDF.

Abb. 11: Lire bietet die umfangreichsten Statistiken, setzt IP-Adressen aber nicht in Namen um.

Fazit

Der Artikel zeigte nur eine kleine Auswahl der frei erhältlichen Weblog-Analyzer, von denen jedes seine Stärken und Schwächen hat: Analog, Lire und Webalizer sind sicherlich Allrounder und bieten die meisten Informationen an. Allen Analyzern fehlen aber noch einige Funktionen, die für die Profiklasse notwendig wären. Allen voran sind hier Informationen über Sicherheitsaspekte zu nennen. Lire ausgenommen, erzeugen die Systeme lediglich eine Aufstellung der häufigsten Fehlermeldungen. Zugriffscharakteristika von Würmern oder andere Formen von destruktiven Zugriffsversuchen werden nicht geführt. (ofr)

Name AC.log Analog aWebVisit Lire Relax Sherlog Webalizer
Eingabeformate Common Log File Format, Combined Log File Format Common Log File Format, Frei definierbar Common Log File Format Common Log File Format, Combined Log File Format, W3C extended log Format RefererLog, NCSA, Variationen von Combined Logs, WebSTAR, Eigene Definitionen Combined Log Format, Common Log File Format Combined Log Format, Common Log File Format
gzip-te Dateien nein nein nein ja ja nein ja
Umsetzung IP-Adressen in Namen nein ja nein nein ja ja, mit zusätzlichem Modul ja, sofern einkompiliert
Beliebteste Einstiegs- / Ausstiegsseiten ja nein ja ja nein nein ja
Liste der beliebtesten Seiten ja ja nein ja nein ja ja
Besucherpfade nein nein ja ja nein ja (rudimentär) nein
Anzahl Aufrufe nach Stunden, Tagen, Monaten ja ja nein ja nein nein ja
Berücksichtigung von Suchmaschinen ja (eingeschränkt) ja nein ja ja ja nein
Statistik über die Länder ja ja nein ja nein nein ja
Browsertypen ja ja nein ja nein ja ja
Domains/Adressen lassen sich von der Analyse ausschließen nein ja ja (nur durch Editieren des Skripts) ja ja ja ja
Ausgabeformate ASCII; Tabellenform, teilweise mit ASCII-Balkendiagrammen Text, LaTeX, HTML, für Grafiken Zusatzprogramm benötigt (ReportMagic) HTML, für Grafiken Zusatzprogramm benötigt (fly) Text, PDF, HTML, DocBook XML Text, HTML; nur Tabellen ASCII-Datei; nur Tabellenform HTML mit Grafiken
Sprachen der generierten Auswertungen Englisch Englisch, Deutsch und viele andere Englisch Englisch Englisch, Französisch, Finnisch Englisch und Französisch Englisch
Sicherheitsfunktionen nur Übersicht der  häufigsten Fehlermeldungen nur Übersicht der häufigsten Fehlermeldungen Auswertung der Fehlermeldungen ja nein nur Übersicht der häufigsten Fehlermeldungen nur Übersicht der häufigsten Fehlermeldungen
Erläuterungen in der Auswertung nein ja nein ja nein nein nein
Bezugsquelle http://www.ctreber.de/commercial/aclog http://www.gekko.de/analog http://mikespub.net/tools/aWebVisit/ http://www.logreport.org/ http://ktmatu.com/software/relax/ http://sherlog.europeanservers.net/index.html http://www.webalizer.org/

Infos
[1] Fly: http://martin.gleeson.com/fly
[2] Reportmagic: http://www.reportmagic.org

Dieser Online-Artikel kann Links enthalten, die auf nicht mehr vorhandene Seiten verweisen. Wir ändern solche "broken links" nur in wenigen Ausnahmefällen. Der Online-Artikel soll möglichst unverändert der gedruckten Fassung entsprechen.


Feedback zu dieser Seite | Datenschutz | © 2010 Linux New Media AG