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/webalizer
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)
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.conf
vi WebalizerConfDir/webalizer.conf
/usr/bin/webalizer -c /home/shell/SITENAME/WebalizerConfDir/SITENAME.webalizer.conf