# Webalizer Mit Webalizer kann man sich aus den Logfiles unseres Webservers Statistiken erzeugen und grafisch anzeigen lassen. Diese werden in statischen HTML-Dateien gespeichert, die täglich von Webalizer erneuert werden. Webalizer hat gegenüber anderen Webseitenstatistiken den Vorteil, dass es unabhängig vom Client läuft. Es verwendet nur im Nachhinein die Webseitenlogs und muss nicht vom Client des Nutzers aufgerufen werden, und wird dadurch auch nicht von Werbeblockern abgelehnt. Es ist eine deutlich privatsphärenfreundlichere Alternative, aber natürlich weniger detailliert. Genaue Dokumentation zu Webalizer gibt es in der Konfigurationsdatei `/etc/webalizer/webalizer.conf`, der Manpage `webalizer(1)` und den Dateien in `/usr/share/doc/webalizer/` auf dem [[Shell|Shellserver]]. ## Logfiles Die Logfiles liegen aus Sicht des Shell- und Uploadservers in `/home/log/SITENAME/`, wobei `SITENAME` durch den eigenen Sitename zu ersetzen ist. ## Einrichtung für eigene Seite * Verbinde dich mit `shell.in-berlin.de` (siehe auch [[Shell|Shell]]). * Lege das Zielverzeichnis für die Statistik an (siehe `mkdir(1)`): `mkdir /home/www/SITENAME/public_html/webalizer` * Editiere mit `crontab(1)` die eigene Crontab mit `crontab -e` und kopiere folgende Zeile hinein (`SITENAME` durch Sitenamen ersetzen): `30 0 * * * /usr/bin/webalizer -p -n SITENAME -o /home/www/SITENAME/public_html/webalizer /home/log/SITENAME/www.SITENAME.in-berlin.de/access.log.$(date --date=yesterday +\%Y\%m\%d)` Die 30 und 0 geben die Minuten bzw. Stunden an, wenn man die Statistik nicht um 0:30 Uhr täglich erzeugt haben will, kann man sie durch andere Werte ersetzen. * Die Statistik ist nun ab dem ersten Lauf unter `http://www.SITENAME.in-berlin.de/webalizer/` abrufbar. ### Tipps: * Wer mit dem Editor vi nicht vertraut ist, kann z.B. um nano zu benutzen den Aufruf folgendermaßen machen: `EDITOR=nano crontab -e` * Möchte man nicht warten, bis die Statistik zur angegebenen Uhrzeit erstmals erstellt wird, kann man webalizer hiermit auch vorher schon starten: `/usr/bin/webalizer -p -n SITENAME -o /home/www/SITENAME/public_html/webalizer /home/log/SITENAME/www.SITENAME.in-berlin.de/access.log.$(date --date=yesterday +%Y%m%d)` * Wer nicht möchte, daß die Statistik öffentlich einsehbar ist, kann * auf einen Link dorthin verzichten * mit den Mitteln des Webservers (`.htaccess`) den Zugriff einschränken. Siehe auch die [Apache-Dokumentation](http://httpd.apache.org/docs/2.2/) hierzu. * die Statistik ausserhalb des Webpfades abspeichern und sich die Dateien herunterladen und selber ansehen. ## Komprimierte Logfiles der Statistik hinzufuegen Logfiles älter als drei Tage werden automatisch mit `bzip2` komprimiert und sind an der Dateiendung `.bz2` zu erkennen. Um diese Archive der Statistik hinzuzufuegen, benutzt man `bzcat(1)` und leitet die Ausgabe direkt an webalizer weiter: bzcat /home/log/SITENAME/www.SITENAME.in-berlin.de/access.log.DATUM.bz2 | /usr/bin/webalizer -p -n SITENAME -o /home/www/SITENAME/public_html/webalizer ## Sämtliche Logfiles der Statistik hinzufuegen Möchte man nicht jedes Logfile *per Hand* der Statistik hinzufuegen, kann man das mit diesem Shellskript automatisieren: #!/bin/sh for file in /home/log/SITENAME/*; do if echo "$file" | grep -q '.bz2'; then bzcat $file | /usr/bin/webalizer -p -n SITENAME -o /home/www/SITENAME/public_html/webalizer - else /usr/bin/webalizer -p -n SITENAME -o /home/www/SITENAME/public_html/webalizer $file fi done Dieses Skript speichert man z.B. unter `webalizer.sh` ab, macht es mit `chmod +x webalizer.sh` ausführbar und bei Ausführung mit `./webalizer.sh` werden sämtliche Logfiles von `SITENAME` der Statistik hinzugefügt. ## Entdecke die Möglichkeiten Möchste man die Statistik selber gestalten, dann kann man sich Webalizer selber konfigurieren. Die Manpage `webalizer(1)` verrät die Details dazu. * Konfigurationsverzeichnis erstellen: `mkdir /home/shell/SITENAME/WebalizerConfDir/` * Konfigurationsdateien kopieren: `cp /etc/webalizer/webalizer.conf /home/shell/SITENAME/WebalizerConfDir/SITENAME.webalizer.conf` * Konfigurationsdateien editieren: `vi WebalizerConfDir/webalizer.conf` * Den Webalizer-Aufruf anpassen, sodass der diese Konfiguration benutzt: `/usr/bin/webalizer -c /home/shell/SITENAME/WebalizerConfDir/SITENAME.webalizer.conf`