Michael Schröpl: webalizer - Verschiedenen Domains

Beitrag lesen

Hi Christian,

Wie funktioniert das? Ich habe keinen Plan.

Genau das habe ich im Dezember im Büro für einen Produktions-Server gebaut.

In Stichworten:

  • Zusätzliche Spalte 1 mit dem Namen des Virtual Host im Log-Format definieren

  • Ein Perl-Skript, welches das jeweilige (tages-gerollte) access_log liest

  • Ein Verzeichnisbaum mit den Ziel-Daten; pro Virtual Host ein Unterverzeichnis

  • Das Skript filtert pro Virtual Host ein access_log im Unterverzeichnis heraus
      und behält zusätzlich ein Gesamt-Log ohne Spalte 1

  • Dabei werden nicht existierende Unterverzeichnisse automatisch erzeugt
      (die Menge der Virtual Hosts darf sich also jederzeit ändern)

  • Nach der Zerlegung fährt ein shell-Skript über alle Unterverzeichnisse
      und ruft den Webalizer für jedes Verzeichnis einmal auf, wobei die
      lokale access_log verbraucht wird

  • Statistik-Daten und generierte Seiten liegen im selben Verzeichnis;
      dies erlaubt, alle notwendigerweise unterschiedlichen Webalizer-Parameter
      (Pfade, Überschriftstexte etc.) per commandline-switches zu übergeben
      (=> nur eine gemeinsame webalizer.conf, nicht beliebig viele)

  • im Wurzelverzeichnis dieser Daten ein CGI-Skript (index.pl, DirectoryDefault),
      dieses parst dynamisch den Verzeichnisbaum.
      Die Übersichtstabelle wird generiert aus den Statistik-Dateien des
      Webalizers (die sind trivial zu lesen, whitespace-separierte integers)

Sinngemäß entspricht dies dem Modell von webalizer.teamone.de.

Viele Grüße
      Michael

P.S.: Mein access_log enthält noch weitere Spalten rechts vom Standard-CLF
      (z. B. mod_gzip-Faktoren und HTTP-Cookies); der Webalizer ignoriert
      diese freundlicherweise, er wertet nur die ersten <n> Spalten aus.