Lokale Installation von AWStats zur Auswertung von Webserver-Logdateien
Dieser Eintrag wurde aktualisiert: Zur aktuellen Version
Hintergrund
Nicht alle Webhosts verwenden Programme zur Apache-Server-Logdateianalyse, die:
- in einer (halbwegs) aktuellen Version installiert sind oder
- umfassende Auswertungen bieten.
Zusätzlich wird die Auswertung meist nur alle 24 Stunden aktualisiert.
Ziel
Ziel ist es, mit minimalem manuellen Aufwand, lokal auf dem Mac die aktuelle Server-Logdatei mit AWStats zu analysieren. Das Ergebnis ist, dass der Aufruf eines Skripts die aktuelle Apache-Server-Logdatei per FTP abruft, AWStats diese analysiert und die Auswertung im Browser automatisch angezeigt wird.
Was folgt, sieht zwar schlimm aus, geht aber sehr fix, ist nicht allzu schwierig und Änderungen beschränken sich weitgehend auf einen Ordner.
Voraussetzung
- MAMP herunterladen und installieren nach:
/Applications/
- AWStats herunterladen, entpacken, Ordner in „awstats“ umbenennen und verschieben nach:
/Applications/MAMP/cgi-bin/
Mit folgenden Versionen habe ich diese Anleitung getestet:
- MAMP 1.8.4
- AWStats 6.95
- Mac OS X Snow Leopard 10.6.2
10 Schritte
- Terminal öffnen
- Pfad wechseln:
cd /Applications/MAMP/cgi-bin/awstats/tools/
- AWStats konfigurieren:
./awstats_configure.pl
- Fragen beantworten:
continue from this NON standard directory: Yes create new config file: Yes Profilname eingeben (z. B. „markusweimar.de“) bis zum Ende bestätigen
- Neu angelegte Konfigurationsdatei von AWStats öffnen (der Mittelteil des Dateinamens entspricht dem angegebenen Profilnamen):
open -t /Applications/MAMP/cgi-bin/awstats/wwwroot/cgi-bin/awstats.markusweimar.de.conf
- Folgende Änderungen vornehmen (eventuell individuell anpassen) und anschließend speichern:
LogFile="./access_log" DirData="." DNSLookup=1 # optional
- Folgendes Skript erstellen, anpassen und z. B. als
awstats.command
auf dem Desktop speichern:#!/bin/bash # Folgende Werte anpassen: HOST='ftp.beispiel.de' USER='Benutzer' PASSWD='Passwort' AWSTATSPROFILE='markusweimar.de' # Profilname von AWStats LOGDIR='log' # Pfad zum Ordner der Logdatei LOGFILE='access_log' # Dateiname der Logdatei LOCALDIR='/Applications/MAMP/cgi-bin/awstats/wwwroot/cgi-bin/' open -ga /Applications/MAMP/MAMP.app/ # MAMP öffnen # Logdatei abrufen, analysieren, Auswertung anzeigen ftp -n $HOST<<EOFTP quote USER $USER quote PASS $PASSWD bin prompt off cd $LOGDIR lcd $LOCALDIR mget $LOGFILE quit EOFTP cd $LOCALDIR perl awstats.pl -update -config=$AWSTATSPROFILE # auswerten open http://localhost:8888/cgi-bin/awstats/wwwroot/cgi-bin/awstats.pl?config=$AWSTATSPROFILE # Auswertung anzeigen
- Obiges Skript per Terminal ausführbar machen (eventuell Pfad anpassen):
chmod +x ~/Desktop/awstats.command
awstats.command
öffnen (z. B. per Doppelklick)
Nun sollten zwei Fenster angezeigt werden:
- ein Terminalfenster mit dem Skriptverlauf,
- ein Browserfenster mit der aktuellen Auswertung.
Skript mit Quicksilver ausführen
Das Skript kann auch als awstats.sh
gespeichert und z. B. mit Quicksilver geöffnet werden. Auf diese Weise wird beim Ausführen kein Terminalfenster angezeigt.
Skriptausführung automatisieren
Da Webserver-Logdateien meist wöchentlich archiviert werden, sollte das Skript mindestens einmal pro Woche ablaufen, damit lokal keine Datenlücken entstehen.
Wenn die Datei in awstats.sh
umbenannt wurde, kann das Skript komfortabel mit cronnix regelmäßig ausgeführt werden:
- Skriptdatei ins cronnix-Fenster ziehen,
- im Feld „Command“ den Text
/usr/bin/open
entfernen, - Ausführungszeitplan festlegen.
Für eine stündliche Ausführung zum Beispiel:
0 * * * *
Eine genaue Beschreibung dieser Syntax ist in der Hilfe von cronnix zu finden.
Im Skript können die letzten beiden Zeilen entfernt werden, sonst werden bei jeder Ausführung MAMP gestartet und die Auswertung im Browser geöffnet.
Achtung: Ist der Rechner zum eingestellten Zeitpunkt ausgeschaltet, wird das Skript nicht ausgeführt.