AWStats

Die große Stärke der FreeWare AWStats ist natürlich das Auswerten von Webserverlogs, um das Nutzungsverhalten zu ermitteln. Aber AWStats kann auch Maillogs auswerten und mit der passenden Konfiguration kann er sogar Exchange Tracking Logs auswerten.

  • Daten einsammeln
    Sie müssen dazu die Exchange Tracking Logs aktivieren, und diese von AWStats in seine Datenbank aufnehmen lassen. Diesen Prozess lassen Sie am besten einmal jede Nacht laufen.
  • Ausgabe generieren
    Ein zweiter Aufruf generiert dann die entsprechenden Webseiten mit Grafiken. Hier haben Sie die Wahl, ob Sie die Ausgaben "on tle fly" durch ein CGI-Script des Webservers erzeugen lassen wollen oder ob Sie die Ausgaben ebenfalls "auf Verdacht" jede Nacht erstellen

Die Einbindung als CGI-Script ist etwas aufwändiger und wird hier nicht beschrieben. Zudem gibt es immer wieder Risiken, da das Script mit den Rechten des Webservers ausgeführt wird.

Den regelmäßigen Aufruf jede Nacht kann der Microsoft Task Scheduler für Sie übernehmen.

Download und Installation

Die Installation von AWStats ist als Perl-Skript relativ einfach. Es gibt allerdings keine MSI-Datei oder einen Assistenten. Folgende Komponenten sind erforderlich

  • AWStats
    Laden Sie die Software z.B. von http://www.awstats.org herunter und packen Sie diese in einem Verzeichnis aus. Sie erhalten dann eine entsprechende Struktur:
  • Perl
    Da AWStats ein PerlScript ist, müssen Sie auch einen Perl-Interpreter installieren. Ich nutze dazu ActivePerl  www.activeperl.com von ActiveState. Sie müssen etwas suchen, da ActiveState natürlich eine komplette EntwicklungsUmgebung für Perl verkauft. Die reine PerlUmgebung ist aber kostenfrei. Wenn ActivePerl installiert ist, sehen Sie auch die gelben Punkte als Icons vor einer .pl-Datei
  • Optional Webserver
    Wenn Sie die Auswertungen per HTTP erreichbar machen wollen, können Sie einen IIS oder Apache installieren und die erzeugen Datei damit zugänglich machen. Alternativ wäre eine Einbindung als CGI-Script möglich.

awstats.pl wird dann in einer Kommandozeile oder über eine Batch regelmäßig aufgerufen. AWStats wird über eine Konfigurationsdatei gesteuert, welche als Kommandozeilenparameter anzugeben ist. Wenn Sie daher mehrere Dienste analysieren wollen, können Sie einfach mehrere Konfigurationsdateien anlegen. Im obigen Bild sehen Sie z.B.: die awstats.wwwmsxfaq.de.conf, welche diese Webseite analysiert. Wird keine Konfigurationsdatei angegeben, dann nutzt AWStats einfach die awstats.conf.

Globale Einstellungen

AWStats benötigt ein paar wenige aber wichtige Parameter, die in der Konfigurationsdatei hinterlegt werden müssen

Hier muss ich noch die genauen Parameter ablegen

  • Logfiles
    LogFile="C:\Inetpub\auswertung\access.log.01"
     
  • Ausgabe

Zusätzlich sind natürlich das Logfile Format und die zu erstellenden Bericht zu konfigurieren

Konfiguration für OWA

Hier muss ich noch die genauen Parameter ablegen

Konfiguration für Exchange Maillogs

Am besten kopieren Sie daher die awstats.conf z.B. nach awstats.server1.conf und passen Sie folgende Zeilen an:

LogType=M
LogFormat="%time2 %email %email_r %host %host_r %method %URL %code %bytesd"
LevelForBrowsersDetection=0
LevelForOSDetection=0
LevelForRefererAnalyze=0
LevelForRobotsDetection=0
LevelForWormsDetection=0
LevelForSearchEnginesDetection=0
LevelForFileTypesDetection=0
ShowMenu=1
ShowSummary=HB
ShowMonthStats=HB
ShowDaysOfMonthStats=HB
ShowDaysOfWeekStats=HB
ShowHoursStats=HB
ShowDomainsStats=0
ShowHostsStats=HBL
ShowAuthenticatedUsers=0
ShowRobotsStats=0
ShowEMailSenders=HBML
ShowEMailReceivers=HBML
ShowSessionsStats=0
ShowPagesStats=0
ShowFileTypesStats=0
ShowFileSizesStats=0
ShowBrowsersStats=0
ShowOSStats=0
ShowOriginStats=0
ShowKeyphrasesStats=0
ShowKeywordsStats=0
ShowMiscStats=0
ShowHTTPErrorsStats=0
ShowSMTPErrorsStats=

Damit wird AWStats das Format der Logfiles definiert und welche Ausgabeseiten erzeugt werden sollen.

Konfiguration für ISA

Übrigens kann AWStats auch recht problemlos die Logfiles eines ISA-Servers auswerten. Dazu müssen Sie nur folgende Eintragungen in der Konfigurationsdatei angeben und den ISA-Server die Logfiles in Textdateien schreiben lassen.

Squid Log Auswertung
200.135.30.181 - - [dd/mmm/yyyy:hh:mm:ss +0x00] "GET http://www.mydomain.com/page.html HTTP/1.0" 200 456 TCP_CLIENT_REFRESH_MISS:DIRECT
You must use : LogFormat="%host %other %logname %time1 %methodURL %code %bytesd %other"

Der ISA-Server kann natürlich auch die Logs in eine SQL-Datenbank schreiben. Gerade mit SQL2005 und den Reporting Services lassen sich so auch sehr schöne Auswertungen erstellen. Aber das ist ein anderes Thema

Aufruf von AWStats

Wenn Sie wie ich einfach nur einmal am Tag die Logfiles von gestern einlesen und die Auswertungen erstellen lassen wollen, dann reicht ein Batchfile mit folgendem Inhalt

REM Logfile importieren
C:\Inetpub\auswertung\AWStats-6.5\wwwroot\cgi-bin\awstats.pl -config=www.msxfaq.de -update

REM Alle Report erstellen
REM C:\Inetpub\auswertung\AWStats-6.5\tools\awstats_buildstaticpages.pl -config=www.msxfaq.de -dir=C:\Inetpub\auswertung\AWStats-6.5\wwwroot

Diese Beispiel liest die Protokolldateien der Webseite (in der Konfigurationsdatei ist der Pfad zu definieren !) in die Datenbank und erstellt die Berichte.

Grenzen von AWStats und anderen einfachen Tools

Ein großer Nachteil von solchen "einfachen" Lösungen ohne Datenbanken sind natürlich fehlende Funktionen. Der primäre Ansatz ist das konsolidieren von Protokolldateien in eine Zusammenfassung und die Erstellung aussagekräftiger Berichte. Allerdings werden dazu eben immer ALLE Datenbanken zusammengelegt. Eine unterscheidung nach Zeiträumen ist hier nicht möglich. d.h. AWStats und andere legen keinen Bericht pro Monat, Tag o.ä. an. Entsprechend können Sie natürlich auch nicht interaktiv Zeiträume zur Analyse auswählen. Es ist immer eine "Summenfunktion".

Es gibt zwar dann Reports, die die Summe der Daten anzeigen aber folgende Reports sind z.B.: nicht ohne weiteres möglich:

  • Detailansicht bzw. Filter pro URL
    Angenommen ich stelle eine "neue" Seite auf die Webseite und mich würde interessieren, wie diese einzelne Seite von den Besuchern angenommen wird, dann bräuchte ich einen Filter, der die die Hits auf diese URL übrig läst und diese dann aufbereitet.
  • Detailansicht bzw. Filter pro Mailadresse
    Wenn Analog z.B.: Maillogs auswertet, dann sind Summen zwar nett, aber z.B. eine unterteilung nach Abteilung oder einzelner Mailadresse ist ebenfalls nicht möglich. Aber genau das wäre ja sinnvoll, wenn ein Missbrauch einer Person nachgewiesen werden soll.

Es gibt noch einige weitere Reports, die interessant wäre, aber AWStats und andere einfache Tools so nicht leisten können. Natürlich kann ich mir die Reports "erzeugen" lassen, indem ich die Protokolldateien vorher "filtere" und dann mehrere Konfigurationsdateien pflege und die gleichen Protokolldateien mit mehreren Durchläufen in verschiedene Datenbanken schreiben lasse.

Man kann aber in AWStats mit den Optionen "-month=MM -year=YYYY" natürlich auf die Zeit selbst filtern. Allerdings sind in der Datenbank eben nicht mehr die kompletten Protokolldaten vorhanden, um nach Empfängern oder URLs etc. zu filtern.
AWStats löst dies, indem die Datenbank je Monat angelegt wird. Bei mir in C:\Inetpub\auswertung\AWStats-6.5\data

Solche ausführlichere Auswertungen sind dann aber doch eher die Domäne kommerzieller großer Werkzeuge wie Quest Message Stats und anderen (siehe auch Reporttools), die die Protokolldateien in eine SQL-Datenbank konsolidieren und interaktiv entsprechende Reports erstellen.

Weitere Links

AWStats mit IIS
http://www.sysops.tv/2011/01/21/081-awstats-mit-iis-sd/