Niederösterreichisches Bildungsservice

Statistik der WWW-Zugriffe mit webalizer

Konfigurationsdatei Apache-Logdatei Testen von webalizer Starten mit cron Monatlich komprimieren

Bei den SUSE-Distributionen ist auch das Programm webalizer (Paket webalize) enthalten, mit dem man eine sehr schöne und informative Statistik über die Zugriffe auf die eigenen WWW-Seiten erhält.
Das Program ist derzeit u. a. bei http://www.pinoe-hl.ac.at/webalizer/ und bei http://www.asn-noe.ac.at/web/stat/ im Einsatz.
Ob das Programm bereits installiert ist, kann man als Benutzer root dadurch testen, dass man den Befehl
webalizer -h
eingibt. Ist das Programm bereits installiert, dann erscheint ein Hilfetext. Wenn es noch nicht installiert wurde, kann es von der CD Nr. 1 nachinstalliert oder bei der Adresse www.mrunix.net/webalizer/ heruntergeladen werden. Eine compilierte deutsche Fassung (Version 2.01) kann von ftp.pinoe-hl.ac.at/pub/linux/webalizer_2_01_dt.tgz heruntergeladen werden. (Achtung! Die alte Version 1.30 hat einen Fehler und hört mit der Statistik am 4. Oktober 2001 auf!)

Konfigurationsdatei von webalizer

ist die Datei /etc/webalizer.conf, die auf die eigenen Bedürfnisse angepasst werden kann. Der folgende Auszug dieser Datei enthält nur die Konfigurationszeilen ohne Kommentare.

LogFile /var/log/httpd.access_log
#LogType clf
#OutputDir /var/lib/httpd/htdocs/usage
#HistoryName webalizer.hist
#Incremental no
ReportTitle Statistik der Zugriffe auf
HostName www.DOMAINNAME.ac.at
#HTMLExtension html
PageType htm*
PageType cgi
#PageType phtml
#PageType php3
#PageType pl
#UseHTTPS no
#DNSCache dns_cache.db
#DNSChildren 0
#HTMLHead <META NAME="author" CONTENT="The Webalizer">
#HTMLBody <BODY BGCOLOR="#E8E8E8" TEXT="#000000" LINK="#0000FF" VLINK="#FF0000">
HTMLPost <BR CLEAR="all">
HTMLTail <A HREF="index.html">WWW-Statistik</A> | <A HREF="../homepage.htm">1. Seite</A>
HTMLEnd </BODY></HTML>
#Quiet no
#ReallyQuiet no
#TimeMe no
#GMTTime no
#Debug no
#FoldSeqErr no
#VisitTimeout 1800
#IgnoreHist no
#CountryGraph yes
#DailyGraph yes
#DailyStats yes
#HourlyGraph yes
#HourlyStats yes
#GraphLegend yes
#GraphLines 2
#TopSites 30
#TopKSites 10
#TopURLs 30
#TopKURLs 10
#TopReferrers 30
#TopAgents 15
#TopCountries 30
#TopEntry 10
#TopExit 10
#TopSearch 20
#TopUsers 20
#AllSites no
#AllURLs no
#AllReferrers no
#AllAgents no
#AllSearchStr no
#AllUsers no
IndexAlias home.htm
IndexAlias homepage.htm
HideSite 192.168.100.*
#HideSite localhost
#HideReferrer mrunix.net/
#HideReferrer Direct Request
HideURL *.gif
HideURL *.GIF
HideURL *.jpg
HideURL *.JPG
HideURL *.png
HideURL *.PNG
HideURL *.ra
#HideAgent RealPlayer
#HideUser root
#HideUser admin
#GroupURL /cgi-bin/* CGI Scripts
#GroupURL /images/* Images
GroupSite 192.168.100.*
#GroupSite *.compuserve.com
#GroupReferrer yahoo.com/ Yahoo!
#GroupReferrer excite.com/ Excite
#GroupReferrer infoseek.com/ InfoSeek
#GroupReferrer webcrawler.com/ WebCrawler
#GroupUser root Admin users
#GroupUser admin Admin users
#GroupUser wheel Admin users
#GroupAgent MSIE Micro$oft Internet Exploder
#HideAgent MSIE
#GroupAgent Mozilla Netscape
#HideAgent Mozilla
#GroupAgent Lynx* Lynx
#HideAgent Lynx*
#HideAllSites no
#GroupDomains 0
#GroupShading yes
#GroupHighlight yes
#IgnoreURL /test*
#IgnoreReferrer file:/*
#IgnoreAgent RealPlayer
#IgnoreUser root
#IgnoreURL *
#IncludeURL ~joeuser*
#IgnoreUser *
#IncludeUser someuser
#MangleAgents 0
SearchEngine yahoo.com p=
SearchEngine altavista.com q=
SearchEngine google.com q=
SearchEngine eureka.com q=
SearchEngine lycos.com query=
SearchEngine hotbot.com MT=
SearchEngine msn.com MT=
SearchEngine infoseek.com qt=
SearchEngine webcrawler searchText=
SearchEngine excite search=
SearchEngine netscape.com search=
SearchEngine mamma.com query=
SearchEngine alltheweb.com query=
SearchEngine northernlight.com qr=
#DumpPath /var/lib/httpd/logs
#DumpHeader no
#DumpExtension tab
#DumpSites no
#DumpURLs no
#DumpReferrers no
#DumpAgents no
#DumpUsers no
#DumpSearchStr no

Die genaue Bedeutung dieser Einstellungen ist aus den Kommentaren der Datei  /etc/webalizer.conf oder aus der Dokumentation im Verzeichnis /usr/doc/packages/webalize ersichtlich.
Noch eine Bemerkung zu einigen Einträgen. Mit GroupURL wird eine Zugriffsstatistik für eine ganze Gruppe von URL erstellt. Mit
GroupURL /cgi-bin/*
also für alle CGI-Skripts. Zusätzlich würde noch jedes Skript einzeln in der Statistik aufscheinen. Will man das verhindern, muss man noch zusätzlich
HideURL /cgi-bin/*
eingeben. Mit
GroupSite 192.168.100.*
kann man die Zugriffe aus dem eigenen Netz zu einer einzigen Gruppe zusammenfassen. (Außer man will genau wissen, von welchem PC wie oft zugegriffen hat.)
Mit dem Eintrag
HTMLTail <A HREF="index.html">WWW-Statistik</A> | <A HREF="../homepage.htm">1. Seite</A>
in der Datei /etc/webalizer.conf gibt es von jeder Monatsstatistik ein Rücksprung auf die Startseite der Statistik oder auf die Homepage, wenn diese homepage.htm heißt.
Achtung: Die Zeilenlänge der Einträge darf eine Maximalzahl (= 80 ?) von Zeichen nicht überschreiten, sonst wird sie abgeschnitten!

Logdatei des Apache WWW-Servers verändern

Möchte man auch eine Statistik der Browser (User Agent) haben, mit denen auf die WWW-Seiten zugegriffen wurde, dann muss die Datei /etc/httpd/httpd.conf angepasst werden. Die folgende Zeile wird auskommentiert:
#CustomLog /var/log/httpd.access_log common
und bei der etwas weiter unten stehenden Zeile entfernt man das Zeichen #
CustomLog /var/log/httpd.access_log combined
(Konsequenz ist aber, dass die Logdatei größer wird.) Bei dieser Gelegenheit sollte auch gleich die Einstellung
ServerSignature on
gesetzt werden.
Damit diese Einstellungen wirksam werden, muss der Apache Server oder LINUX neu gestartet werden!

Testen von webalizer

Mit dem Befehl webalizer kann das Programm getestet und die erste Statistik erstellt werden. Bei jedem Aufruf von webalizer wird immer zuerst die aktuelle Version von /etc/webalizer.conf gelesen. (LINUX muss nicht neu gestartet werden!) Ein Experimentieren mit verschiedenen Einstellungen in der Datei /etc/webalizer.conf ist daher sehr einfach möglich.
Über wie viele Monate die Statistik erstellt wird, hängt von der Logdatei /var/log/httpd.access_log ab. Die erzeugten HTML-Seiten finden sich bei der Standardeinstellung im Verzeichnis /usr/local/httpd/htdocs/webalizer. Die Startseite heißt index.html.

Regelmäßiger Start mit cron

Zum automatischen und regelmäßigen Start des Programmes webalizer kann das Programm cron verwendet werden. Dazu wird die Datei /etc/crontab editiert und folgende Zeile eingefügt:
10 0 * * * root /usr/bin/webalizer
Damit wird an jedem Tag um 0:10 das Programm webalizer gestartet und die Statistik akualisiert.

Monatliches Komprimieren der Logdatei mit cron

Achtung! Bei einem Testcomputer mit 16MB RAM bricht das Programm mit einem Fehler (segmentation fault) ab!

Wenn das Programm webalizer getestet wurde und bereits eine zufriedenstellende Statistik angelegt hat, können die folgenden Ergänzungen vorgenommen werden.
In der Datei /etc/webalizer.conf wird die folgende Einstellung geändert:
Incremental yes
Im Verzeichnis /var/log legt man als Benutzer root ein neues Verzeichnis old an:
cd /var/log
mkdir old

Im Verzeichnis /usr/local legt man ein neues Verzeichnis adm an:
cd /usr/local
mkdir adm

In diesem Verzeichnis legt man eine Datei mit dem Namen rotate_logs mit folgendem Inhalt an:

#!/bin/sh
# halt the server
/sbin/init.d/apache stop
# define backup names
OLD_ACCESS_LOG=/var/log/old/httpd.access_log.`date +%y%m%d-%H%M%S`
OLD_ERROR_LOG=/var/log/old/httpd.error_log.`date +%y%m%d-%H%M%S`
# make end of month copy for analyzer
cp /var/log/httpd.access_log /var/log/httpd.access_log.backup
# move files to archive directory
mv /var/log/httpd.access_log `echo $OLD_ACCESS_LOG`
mv /var/log/httpd.error_log `echo $OLD_ERROR_LOG`
# restart web server
/sbin/init.d/apache start
# compress the archived files
/bin/gzip $OLD_ACCESS_LOG
/bin/gzip $OLD_ERROR_LOG

(Eine komprimierte Version dieser Datei mit dem Namen rotate.zip kann hier heruntergeladen werden. Diese Datei in das Verzeichnis  /usr/local/adm kopieren. Dann mit dem Befehl
mv rotate.zip rotate_logs.gz
umbenennen und mit
gunzip rotate_logs.gz
entpacken.)
Diese Datei muss ausführbar sein. Dies erreicht man mit
chmod 744 rotate_logs
Zum automatischen Start wird wieder das Programm cron verwendet. Dazu fügt man in der Datei /etc/crontab folgende Zeilen ein:
0 0 1 * * root /usr/local/adm/rotate_logs
5 0 1 * * root /usr/bin/webalizer -Q /var/log/httpd.access_log.backup

Damit werden an jeden Monatsersten um 0:0 die Logdateien komprimiert. Um 0:5 wird das Programm webalizer gestartet. Dabei wird die vorher erstellte Datei /var/log/httpd.access_log.backup ausgewertet.


1. Seite Anbindung eines Novellnetzes Logdateien IP und Netzwerke

Letzte Änderung am 04.04.2003 E-Mail webmaster@pinoe-hl.ac.at.