Problem:
Webalizer und AW-Stats sind ja nette Tools. Nur wenn man mehrere Domains mit einander Vergleichen will, hat man entweder viel Arbeit, oder unterschiedliche Skalen in den Diagrammen u.s.w.
Meistens sind diese Auswertungen auch vollkommen oversized. Häufig will man lediglich die PageImpressions und den angefallene Traffic miteinander vergleichen. Gerade Server-Admin's, denen die einzelnen Websites relativ egal sind sind davon betroffen.
Lösung:
Wenn alle Domains auf einem Server liegen ist braucht man theoretisch lediglich ein Script, welches alle access_log ausliest und die Daten der jeweiligen Domain zuordnet.
Download: httpd_stat-0.1.tgz
Als Ergebnis erhält man z.B. folgende CSV-Ausgabe:
"2007-05-02";"2007-05-02";"huschi-kino.de";"5394";"4827";"13";"3942";"78029137" "2007-05-02";"2007-05-02";"huschi-shop.de";"18241";"17761";"4";"17563";"928593341" "2007-05-02";"2007-05-02";"huschi.de";"105";"51";"0";"33";"310638" "2007-05-02";"2007-05-02";"huschi.net";"9637";"3904";"22";"1885";"104094138"
Von links nach rechts:
Datum von; Datum bis; Domain; Hits; PageImp.; Errors; Crawler; Bytes
README
httpd_stat
Author: Jan Huschauer (EDV-Dienstleistungen)Kontakt: huschi @ http://www.serversupportforum.de
http://www.huschi.net
Version: 0.1
Stand: 30.06.05
Packet
- Apache-ConfigFile-patchAnleitung zum Patchen des ConfigFile-Moduls
- httpd_stat.pl
das Programm
- httpd_stat_bsp.conf
ein Beispiel für eine händische http-Config
- README
Diese Datei
Installation
Download von huschi.net:wget http:/www.huschi.net/download/httpd_stat-0.1.tgz tar xzf httpd_stat-0.1.tgz
Benötigt folgende CPAN-Module:
- Apache::ConfigFile
Installation per CPAN:
cpan -i Apache::ConfigFile
Für Apache2 wird i.d.R. ein kleiner Patch benötigt, der dafür sorgt,
daß auch Unterverzeichnisse eingelesen werden.
Konfiguration
Entweder stellt man seine bevorzugten Werte direkt in die httpd_stat.plein, oder man übergibt sie per Hand:
-v verbose output
-q no output
-d debug output
-f /etc/httpd/httpd.conf Apache-Config
-h servername nur den einen Server lesen
-t csv|report|html|file Template auswählen
-p Nur Pageimpressions (html|php|etc.)
-r today|yesterday|all|year/month/day Zeitraum
-?|--help Hilfeseite
Nach den ersten Tests kann dann ein Cronjob eingerichtet werden.
Geschickterweise kurz vor dem Logrotate.
TODO:
+ parse commandline
- date-from & date-to
- exclude virtualhost
+ read httpd-Configfile
+ get all virtualhosts and access_log with format
+ get it work with Apache2 (only with patch on Apache::ConfigFile)
- look for rotated files