Linux NetMag #3
Titel: Webstatistik mit Webalizer
URL: http://www.linuxnetmag.de/de/issue3/m3webalizer1.html

Balkendiagramm
Wer war wann wie oft auf meinem Web-Server, welche Seiten sind am beliebtesten, und wie sieht die Trendentwicklung bei den Besucherzahlen aus?

Falls Sie sich auch dauernd solche Fragen stellen oder einfach nur neugiereig sind, wie ihr Webserver so genutzt wird, dann ist Webalizer das richtige Programm.
Bei Webalizer handelt es sich nicht um ein Programm, daß einfach nur die Besucher einer Webseite zählt, sondern stellt Statistiken für ihren gesamten Webserver auf.

Das Prinzip

Apache fügt bei jedem Zugriff auf eine Seite oder eine Datei des Webservers einen Eintrag in die Datei /var/log/httpd.access_log hinzu. Dieser Eintrag enthält mehrere Information über den Besucher, der die Seite angefragt hat.  Webalizer nutzt nun diese dort abgespeicherten Daten und generiert aus ihnen Tabellen und Graphen, die die Serverbenutzung der einzelnen Monate und auch der einzelnenTage durch Balkendiagramme veranschaulichen. Zusätzlich werden die am häufigsten abgefragten Web-Seiten aufgelistet.

Webalizer Reporte Aus den Daten und Graphen werden mehrere html-Seiten erstellt, welche auch gleich auf dem Server publiziert werden können.

Konfiguration

Die Konfiguration erweist sich unter SuSE-Distributinen als sehr unkompliziert, da das Programm als vorkompilierte und an SuSE angepaßte Version mitgeliefert wird.
(Die Datei namens "webalize.rpm" befindet sich auf der CD). Aber auch für RedHat und Slackware finden sich auf der Hompage von Webalizer speziell angepaßte Versionen.
Die eigentliche Konfiguration erfolgt über die Datei /etc/webalizer.conf .
Hinter dem Eintrag "OutputDir" wird angegeben, wohin die Statistik-Seiten kopiert werden sollen. Will man die Seiten gleich veröffentlichen, sollte man die Seiten direkt auf dem Web-Server abspeichern. Also unter SuSE 6.x direkt in ein Unterverzeichnie von /usr/local/httpd/htdocs/ kopieren.
Es empfiehlt sich, einen Benutzer anzulegen, der speziell nur für den Web-Server zuständig ist (Benutzer anlegen mit Yast), z.B. ein Benutzer namens "wwwadmin". Dieser Benutzer sollte dann das Unterverzeichnis generieren, damit wir später die Schreibrechte darauf besitzen. Zusätzlich sollte der Benutzer auch Leserechte für die Dateien /etc/webalizer.conf und /var/log/httpd.access_log haben. (Die Leserechte ändert man mit dem Befehl chmod +r Dateiname).
Als erstes wechseln wir zum Benutzer "wwwadmin"

>> su wwwadmin
und nach der Eingabe des Passworts erstellen wir das Unterverzeichnis
>> mkdir /usr/local/httpd/htdocs/webalizer
(Wenn sie keinen zusätzlich Benutzer anlegen wollen, kann dies auch vom Root erzeugt werden.)
Danach ändern wir den zugehörigen Abschnitt in der Datei /etc/webalizer.conf entsprechend

Datei /etc/webalizer.conf
  # OutputDir is where you want to put the output files. This should
  # should be a full path name, however relative ones might work as well.
  # If no output directory is specified, the current directory will be used.
  
  OutputDir      /usr/local/httpd/htdocs/webalizer
  

Ansonsten kann man in dieser Datei auch noch das Erscheinungsbild der erzeugten Seiten beeinflussen. Die einzelnen Optionspunkte sind gut dokumentiert, wenn auch auf englisch. Die Voreinstellungen sind aber sinvoll gewählt, so daß Änderungen nicht dringend notwendig wären.

Nach dem erstmaligen Aufruf von webalizer

>> webalizer
werden die Seiten generiert und im Verzeichnis abgelegt. Diese kann man nun mit einem Web-Browser unter der Adresse http://localhost/webalizer bewundern.

auf dem laufenden

Für regelmäßig aktualisierte Daten muß das Programm webalizer auch entsprechend regelmäßig aufgerufen werde. Je nach Auslastung des Servers und dem eigenen Wunsch nach aktuellen Daten empfiehlt sich eine regelmäßige Aktualisierung alle 24 Stunden bis hin zum 5-Minuten-Takt.
Hierbei handelt es sich um ein Paradebeispiel für die Benutzung von "cron". Also lassen wir regelmäßig den Befehl "/usr/bin/webalizer" ausführen, und zwar von dem Benutzer, der die Schreibtrechte auf /usr/local/httpd/htdocs/webalizer und die Leserechte auf /var/log/httpd.access_log und /etc/webconf.conf besitzt.
Die Konfiguration von Cron erfolgt entweder über

>> crontab -e
oder über ein graphisches Frontend wie "vcron" oder "kcron" (siehe auch "Zeitgesteuert: Vcron Kcrontab")

Kcrontab Screenshot

Mittels dieser Konfiguration sind sie jetzt immer informiert über die neuesten Web-Statistiken.

Homepage: http://www.mrunix.net/webalizer/