Glengamoi (Forum) · AspHeute · .NET Heute (RSS-Suche) · AspxFiles (Wiki) · .NET Blogs
ASP German Homepage Homepage
 

Liste

.NET 2.0 (1)
.NET Allgemein (16)
.NET Fu (5)
ADO.NET (11)
Aprilscherz (3)
ASP Grundlagen (44)
ASP Tricks (83)
ASP.NET (44)
ASPIntranet.de (5)
C# (28)
Datenbank (44)
Dokumentation (4)
IIS 6.0 (1)
Komponenten (29)
Optimierung (10)
Server (21)
Sicherheit (34)
Tee Off (6)
VB.NET (6)
WAP (8)
Web Services (11)
XML (9)

RSS 2.0 - Die neuesten fünf Artikel auf AspHeute.com


 

Suchen





 

English Articles
Chinese Articles
Unsere Autoren
 
Link zu AspHeute
Impressum
Werben
Anfragen

Logfiles auswerten mit Webalizer

Geschrieben von: Stephan Troxler
Kategorie: Server

Wer heutzutage statistische Auswertungen aus seinen Logfiles generieren will, hat die Qual der Wahl aus hunderten von Tools das passende auszuwählen. Auf AspHeute wurde schon Analog präsentiert, und in diesem Artikel wird mit Webalizer ein weiteres Freewareprogramm vorgestellt. Gegenüber Analog bietet Webalizer diverse Vorteile, die Handhabung bedarf jedoch anfangs etwas Gewöhnung.

Die wesentlichen Stärken von Webalizer sind:

  • Zusätzlich zu Analog die Auswertung des HTTP-Referers, welcher Auskunft über die Auffindbarkeit und Verlinkung einer Webseite gibt
  • Detaillierte Infos über das Surfverhalten der Nutzer mittels Ermittlung der Ein- und Ausgangsseite
  • Ausgiebige Formatierungsmöglichkeiten des Outputs, z.B. Anpassung an Firmen CI etc.
  • Volle Automatisierbarkeit des Tools, z.B. mittels Batchjobs und einer Liste aller virtuellen Webserver

Im Artikel gehe ich von einer "out of the box" Installation von W2k Server mit IIS5 aus. Dateipfade sind bei Abweichungen entsprechend anzupassen.

Das Erstellen der Logfiles

Sowohl Apache als auch IIS unterstützen diverse Logfileformate welche ich hier schnell genauer erläutern möchte. Da Webalizer ursprünglich im Unix-Umfeld entwickelt wurde, unterstützt er standardmäßig das "Common Logfile Format" und das "Combined Logfile Format" des Apache Webservers. Der IIS bietet uns die Wahl zwischen den Formaten NCSA (entspricht dem "Common Logfile Format"), W3C (RFC Standard des W3C Konsortiums) und "IIS" (ein Microsoft-eigenes Format).

Der wesentlichste Unterschied in den verschiedenen Typen liegt neben der Formatierung im Umfang der mitgeloggten Daten. Grundsätzlich sollte unter IIS immer mit dem W3C-Format gearbeitet werden, da es als einziges auch Informationen wie den Http-Referer oder den User-Agent protokolliert. Zudem läßt es uns im Detail die Wahl, welche Informationen wir loggen wollen und welche nicht. Zu beachten ist beim W3C-Format, dass die Uhrzeit jeweils nach GMT mitgeloggt wird, was einen Zeitversatz zur Mitteleuropäischen Zeit bedeutet.

In der Managementkonsole des IIS wechselt man zunächst in die Eigenschaften eines Webs. Auf der ersten Seite (Reiter "Web Site") wählen wir die Option "Enable Logging" an und setzen das Format auf "W3C Extended Log File Format". Diese Einstellungen sind standardmäßig schon vorgewählt.

Über "Properties" gelangt man in die detaillierten Einstellungen. Der vorgegebene Ort für die Dateiablage der Logfiles ist der Pfad "c:\winnt\system32\logfiles". Darin legt der IIS für jeden virtuellen Webserver ein fortlaufend numeriertes Verzeichnis an (W3SVC1, W3SVC2, W3SVC3, etc.). Nach Möglichkeit sollte das Zielverzeichnis der Logfiles auf eine andere, möglichst große Partition verlegt werden. Für unser Beispiel belassen wir die Logfiles im Standardverzeichnis. Das Intervall der Logfiles sollte je nach Besucheraufkommen gewählt werden. In der Regel fährt man mit "monatlich" oder "wöchentlich" gut.

Wichtig ist hier außerdem, daß die Option zur Verwendung des Tageswechsels zur Lokalzeit angewählt wird, da ansonsten der Tageswechsel nach GMT erfolgt und sich dadurch die geloggten Zugriffszeiten von den Logfilenamen unterscheiden.

Über den Reiter "Extended Properties" gelangen wir schließlich zu den zu loggenden Werten. Um sinnvolle Statistiken zu erhalten, sollten mindestens die folgenden Optionen gesetzt werden: "Date", "Time", "Client IP", "Method", "URI Stem", "Protocol Status", "Bytes Sent", "Bytes Received", "User Agent" und "Referer".

Der Webalizer

Webalizer ist ein Open Source Projekt mit Portierungen für diverse Betriebsysteme, welches unter http://www.webalizer.org beheimatet ist. Die dort erhältliche Win32-Version liest jedoch nur Logfiles des Formats CLF und kann somit nur verwendet werden wenn die W3C Logfiles zuvor mit einem Konverter umgewandelt werden, oder wenn mit dem NCSA Format geloggt wird.

Unter http://www.medasys-lille.com/webalizer/ gibt es eine auf den IIS optimierte Version welche auch W3C Logfiles lesen kann. Webalizer ist auf dieser Seite in diversen Sprachen und Entwicklungsstadien erhältlich. Im Umfang eines jeden Downloads sind folgende Dateien enthalten, welche man zunächst in ein Verzeichnis (in unserem Beispiel ist das "d:\webalizer\") entpackt:

  • webalizer.exe - das eigentliche Programm
  • sample.conf - eine dokumentierte Beispielkonfiguration

Die Konfiguration

Webalizer läßt sich auf zwei Arten anwenden. Einerseits können sämtliche Parameter als Kommandozeilenargumente übergeben werden, andererseits kann auf ein Konfigurationsfile wie das mitgelieferte verwiesen werden. Wir schauen uns die zweite Variante an, da diese komfortabler und flexibler ist. Das Konfigurationsfile nenne ich im untenstehenden Beispiel wconfig.txt.

Über ein weiteres Steuerfile lassen sich zudem sämtliche virtuellen Webserver eines Servers erfassen. Nennen wir diese Datei serverlist.txt.

Inhalt von wconfig.txt

Nachfolgend sehen wir die wichtigsten Parameter des Konfigurationsfiles. Diese lassen sich beliebig anhand der Beispielkonfiguration ergänzen und anpassen. So kann beispielsweise ein CSS-File eingebunden werden welches die Statistiken formatiert.

Debug		yes

Gibt Informationen über Fehler in den Logfiles während der Verarbeitung aus.

DNSCache		D:\webalizer\dnscache.txt
DNSChildren	20

Ermöglicht die Verwendung von Reverse DNS-Lookups. Die Datei dnscache.txt wird von Webalizer als Cachefile verwendet. DNSChildren gibt an wie viele parallele Verbindungen für die Lookups geöffnet werden dürfen.

ServerList	D:\webalizer\serverlist.txt

Der Pfad zu unserer Liste der virtuellen Webserver

Incremental	yes

Ermöglicht es Webalizer selbstständig mehrere fortlaufende (monatliche, wöchentliche, etc.) Logfiles aus einem Verzeichnis heraus zu verarbeiten.

LogType		iis

Anweisung, daß das W3C Format verarbeitet werden soll

PageType	htm*
PageType	asp*

Deklaration, was im Bericht als Webseite betrachtet werden soll.

HideURL		*.gif
HideURL		*.jpg
HideURL		*.png
HideURL		*.ra
HideURL		*.dll

Mittels des Parameters "HideURL" können Dateitypen und Verzeichnisse angegeben werden, welche im Bericht nicht dargestellt werden. Die Angabe dieser Dateitypen fokussiert den Bericht besser auf die oben deklarierten Webseiten.

IgnoreURL		/_vti*

Mittels des Parameters "IgnoreURL" können Dateitypen und Verzeichnisse angegeben werden, welche im Bericht nicht ausgewertet werden. Obiges Beispiel ist sinnvoll, wenn die Frontpage Servererweiterungen installiert sind.

SearchEngine	yahoo.com		p=
SearchEngine	altavista.com	q=
SearchEngine	google.com	q=

Mit diesem Parameter können Suchmaschinen und deren Queryvariablen deklariert werden. Anhand dieser Angaben wertet Webalizer aus, mit welchen Suchanfragen die Benutzer auf die Webseite gelangt sind.

Inhalt von serverlist.txt

Die Datei serverlist.txt beinhaltet sämtliche Hosts, von welchen Statistiken erstellt werden sollen. Für jeden Host wird eine Zeile mit den nachfolgenden Angaben angelegt. Die Werte werden mittels Leerschlag (" ") getrennt: Name des Hosts, Pfad zu den Logfiles, Outputpfad des Statistikberichts, Hostheadernamen.

Beispiel:

meinServer c:\winnt\system32\logfiles\w3svc3\ d:\wwwroot\ [cont.]
     meinserver\stats\ www.meinserver.com;meinserver.com

Erläuterung:

  • MeinServer Ein frei wählbarer Name.
  • c:\winnt\system32\logfiles\w3svc3\ Standardpfad der IIS Logfiles plus durchnumeriertes Verzeichnis welches vom IIS für jeden virtuellen Webserver angelegt wird.
  • d:\wwwroot\ meinserver\stats\ Verzeichnis in das die Statisiken nach dem Erstellen kopiert werden.
  • www.meinserver.com;meinserver.com;www.mein-server.com,etc. Sämtliche konfigurierte Hostheadernamen des Hosts. Diese Angaben sind für Webalizer relevant um Zugriffe über verschiedene Adressen zu gruppieren.

Starten der Auswertung

Nachdem wir nun sämtliche notwendigen Anpassungen vorgenommen haben können wir den Webalizer starten. Mittels des Parameters "-c" verweisen wir auf unser Konfigurationsfile. Der Aufruf des Programms sieht wie folgt aus:

webalizer.exe -c wconfig.txt

Webalizer geht nun alle Hosts der Serverliste durch, generiert gemäß der Konfiguration aus wconfig.txt die Statistiken und legt sie im jeweiligen Zielverzeichnis ab.

Um regelmäßig Statistiken zu erhalten, kann dieser Aufruf beispielsweise über einen AT Job in regelmässigem Intervall gestartet werden. Webalizer erkennt jeweils den Stand der letzen Verarbeitung und fährt bei der zuletzt ausgewerteten Zeile mit den Auswertungen fort.

Schlußbemerkung

Webalizer ist ein geeignetes Analysewerkzeug für all jene, welche ohne großen Aufwand automatisierte, monatliche Web-Statistiken Ihrer Hosts generieren wollen. Durch die Vielfalt an Konfigurationsmöglichkeiten deckt es ein breites Band an Bedürfnissen ab. Dennoch kennt auch Webalizer seine Grenzen, sobald tiefgründige Analysen des Surfverhaltens etc. gefragt sind. Bevor man jedoch viel Geld und Zeit in die Hand nimmt und sich mit kostenpflichtigen Auswertungs-Tools herumschlägt lohnt sich auf jeden Fall ein Test des Webalizers.

Download des Codes

Klicken Sie hier, um den Download zu starten.

Verwandte Artikel

Gratis Loganalyse mit Analog
IIS, was machst du gerade?
Logfiles mit Access auswerten
ReportMagic für Analog

Links zu anderen Sites

Beispielauswertung
Das W3C Logfile Format
Das Webalizer Projekt
Downloadseite Win32 Client

Wenn Sie jetzt Fragen haben...

Wenn Sie Fragen rund um die in diesem Artikel vorgestellte Technologie haben, dann schauen Sie einfach bei uns in den Community Foren der deutschen .NET Community vorbei. Die Teilnehmer helfen Ihnen gerne, wenn Sie sich zur im Artikel vorgestellten Technologie weiterbilden möchten.

Haben Sie Fragen die sich direkt auf den Inhalt des Artikels beziehen, dann schreiben Sie dem Autor! Unsere Autoren freuen sich über Feedback zu ihren Artikeln. Ein einfacher Klick auf die Autor kontaktieren Schaltfläche (weiter unten) und schon haben Sie ein für diesen Artikel personalisiertes Anfrageformular.

 

Und zu guter Letzt möchten wir Sie bitten, den Artikel zu bewerten. Damit helfen Sie uns, die Qualität der Artikel zu verbessern - und anderen Lesern bei der Auswahl der Artikel, die sie lesen sollten.

Bewerten Sie diesen Artikel
 Sehr gut   Nicht genügend  
   1  2  3  4  5  
 

  
   Für Ausdruck optimierte Seite

©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.