Das in der Programmiersprache Perl selbstgeschriebene Logfileanalyseprogramm ist modular aufgebaut, d.h. unterschiedliche größtenteils unabhängige Teile des Programmes können unabhängige Aufgaben übernehmen. Ein ganz normaler Aufruf im gegenwärtig vollem Funktionsumfang benutzt folgende (produktive) Module:
Das Programm, welches in Perl (practical error reporting language, sehr weit verbreitete Scriptsprache mit sehr abstraktem Syntax, der sehr "komprimiertes" Programmieren ermöglicht) geschrieben ist, ist neben seiner Modularität auch noch unabhängig von der Benutzerschnittstelle, d.h. es existieren neben dem statischen Terminalinterface auch ein interaktiver Modus (mit ziemlich viel Hilfsausgaben), dazu andere erweiterte Modi sowie auch ein grafisches Interface, welches das GTK+ (Gimp Toolkit) nutzt.
In seiner gegenwärtigen Struktur ist das Programm so ausgelegt, dass es auf den Windows-Betriebssystemen (activeperl vorrausgesetzt) sowie UNIX-Distributionen läuft.
Das eigentliche Modul, welches Logfileanalysen anstellt, nennt sich mod_analyse. Die Statistikauswertungen dieses Moduls sollten sich von denen anderer Programme dadurch auszeichnen, dass für jede einzelne erreichbare Datei auf dem Server (einem sogenannten job) eine individuelle Statistik angefertigt wird. So kann man z.B. schauen, wie viele Leute auf eine bestimmte Seite wann, woher, etc. geschaut haben. Natürlich lassen sich diese jobs dann auch nach Themenbereichen (Kategorien) ordnen, für welche es Statistiken gibt.
Neben diesen Jobspezifischen Statistiken gibt es die globalen Statistiken, d.h. Statistiken, die die gesamten Zugriffe/die gesamte Webpräsenz umfasst.
Der nun neue und ironischerweise als erstes realisierte Teil nennt sich 1like1, abgeleitet von den Analysen des 1und1-Programms. Hierbei werden umfangreiche wochentliche Statistiken angefertigt, die viele Daten in Tabellen sowie eine Menge Grafiken anfertigen. Dieser Modulpart (etwa 1000 Zeilen Perlcode!) hat keinen anderen Anspruch als den der 1und1-Statistiken.
Das Modul ist durch seine überwältigende Konfigurationsdatei ziemlich flexibel - das merkt man selbst an den Ausgaben, die mit einem einheitlichen praktischen Templatesystem erzeugt werden und mit unterschiedlichen Designs zum Anzeigen jedem Anspruch gerecht werden.
Folgende Ausgaben gibt das Programm bei Aktivierung des Hilfemoduls (mod_help) aus:
Modulares Logfileanalyseprogramm v3.5NG loganalyse.pl [PARAMETERS] Das modulare Logfileanalyseprogramm ist anhand unterschiedlicher Module in der Lage, die vielfältigsten Aufgaben in einem Arbeits- gang zu bewältigen. Parameter -c --collect aktiviert die Benutzung von mod_collect -r --rewrite aktiviert das Rewriten des Logs in mod_collect -w --webalizer aktiviert die Benutzung von mod_webalizer -f --ftp aktiviert die Benutzung von mod_getlog -u --upload aktiviert die Benutzung von mod_upload -h --help zeigt die Hilfe an (mod_help) -a --fileanalyser aktiviert die Benutzung von mod_fileanalyse -v --verbose gibt weitere Informationen zum Programmverlauf aus -i --interactive benutzt zur Parametersetzung mod_interactive -s --silent zeigt im interaktiven Modus keine Hilfe an -x --extended ermöglicht erweiterte Programmfunktionen, z.b. Fortschrittsbalken (ProgressBar) Startprogramme * loganalyse.pl Standardprogramm * web.pl Webinterface Mit dem Webinterface bietet sich eine vollwertige Lösung, das Programm über das Web aufzurufen. Das Programm web.pl generiert dazu eine komplette Umgebung; es kann über CGI benutzt werden. * help.pl Vereinfachtes Standardprogramm, welches die Hilfe einblenden kann. Module laden welche Module geladen werden, kann über die Parameter sowie die Voreinstellung in settings.inc.pm eingestellt werden. Die Angabe über Parameter überschreibt dabei *immer* die Voreinstellungen. (Vor-)Einstellung bearbeiten So ziemlich alle Einstellungen lassen sich in der Datei settings.inc.pm machen. Jede Einstellmöglichkeit ist dort ausführlichst erklärt. Parametersetzarten Neben der Standardmethode, in der die Parameter vor Programm- start gesetzt werden, gibt es auch den interaktiven Modus, der einfach mit dem Parameter "-i" gestartet wird. Hier werden alle Einstellungen während dem Programmverlauf vorgenommen. Mit dem "-s"-Flag lässt sich zu dem die (vermutlich) überflüssige zusätzliche Hilfe ausblenden. Fehlercodes (Errorcodes) Da bei den Aufgaben, die die Module des Programms erledigen können, die unterschiedlichsten Probleme und Fehler auftreten können, ist ein kleines Fehlercode-System entwickelt worden, mit dem jeder Fehler, der einkalkuliert ist, eindeutig identifiziert werden kann. Über die Parameter "-h:errorcodes" oder auch "--help=errorcodes" kann sich die Tabelle der Fehlercodes angeschaut werden. Zu jedem Fehlercode kann man sich dann eine Beschreibung und Hilfe durch- lesen. Diese Hilfen kann mod_help auch automatisch suchen, in dem man das Programm mit "-h:[der errorcode]" startet Übersicht über die Module Folgende Module stehen zur Verfügung: mod_core - Kernprogramm * Wertet Parameter aus und setzt Variablen * Stellt zahlreiche Untermodule für den allgemeinen Gebrauch bereit, z.b. ProgressBar mod_interactive - Interaktives Programm * Gibt interaktive Hilfen aus * Ermöglicht Parametereintellung interaktiv mod_help - Hilfe * Gibt einfache Hilfe aus (-h) * Kann Fehlercodespezifische Informationen ausgeben mod_ftp - FTP-Client * Holt aktuelle Logdaten von einem FTP-Server * regelt Speicherung für Logs mod_collect * Schreibt verschiedene (auch gz-komprimierte) Logdateien in eine Logdatei zusammen * kann alle Logeinträge umschreiben (rewriten) mod_webalizer - Webalizer starten * startet den Webalizer mod_analyse * Webserveranalyseprogramm mit Datei-/Bereichsschwerpunkt * Stellt umfangreiche Analysen an mod_upload * ermöglicht Upload von Verzeichnissen auf den FTP-Server * wendet auf dem Server auch eine Archivierung an