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 Shellserver.
Die Logfiles liegen aus Sicht des Shell- und Uploadservers in /home/log/SITENAME/, wobei SITENAME durch den eigenen Sitename zu ersetzen ist.
shell.in-berlin.de (siehe auch Shell).mkdir(1)):mkdir /home/www/SITENAME/public_html/webalizercrontab(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)http://www.SITENAME.in-berlin.de/webalizer/ abrufbar.EDITOR=nano crontab -e/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).htaccess) den Zugriff einschränken. Siehe auch die Apache-Dokumentation hierzu.
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
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.
Möchste man die Statistik selber gestalten, dann kann man sich Webalizer selber konfigurieren. Die Manpage webalizer(1) verrät die Details dazu.
mkdir /home/shell/SITENAME/WebalizerConfDir/cp /etc/webalizer/webalizer.conf /home/shell/SITENAME/WebalizerConfDir/SITENAME.webalizer.confvi WebalizerConfDir/webalizer.conf/usr/bin/webalizer -c /home/shell/SITENAME/WebalizerConfDir/SITENAME.webalizer.conf