Webalizer Hacks: Tuning für Fortgeschrittene

Remo Uherek

Ayom Gründer
Ein guter Grund für die Logfile-Analyse mit Webalizer ist, dass dieses Programm bei vielen Shared-Hosting Angeboten bereits vorinstalliert ist und sich somit bestens für einen schnellen Logfile-Überblick eignet. Mit ein paar geschickten Handgriffen kann man dem beliebten Open Source Tool noch einiges mehr abverlangen.

Die für die folgenden Optimierungen benötigte Datei 'webalizer.conf', befindet sich in einem Verzeichnis des Webservers, und muss zuerst einmal lokalisiert werden. Laden Sie die Datei mit einem FTP-Programm herunter und legen Sie sich für alle Fälle eine Sicherheitskopie davon an. Danach kann die Datei mit einem beliebigen Text-Editor, beispielsweise Notepad, editiert werden.

Mehr Ergebnisse
Eine einfache und schnelle Art mehr Daten für die Auswertung zu erhalten ist, die 'Top Table Keywords' zu optimieren. Suchen Sie im oberen Teil der webalizer.conf die 'Top'-Keywords und ändern Sie die Werte wie folgt:
CODE TopSites 200 #Zugegriff von Rechnern (IP-Adressen)
TopURLs 400 #beliebteste Seiten
TopReferrers 400 #Verweise
TopAgents 50 #verwendete Browser
TopCountries 150 #Länderkennung
TopEntry 50 #Einstiegs- und...
TopExit 50 #...Ausstiegsseiten
TopSearch 400 #Suchbegriffe


Experimentieren Sie mit den Werten und passen Sie diese gegebenenfalls an Ihre eigenen Anforderungen an.

Tipp:
An Ihrer .conf-Datei haben Sie es sicher schon bemerkt:

CODE #TopSearch 20 #Voreinstellung
TopSearch 400 #aktive Einstellung

Die Raute '#' ignoriert eine Einstellung, vergleichbar mit '//' bei php.

Relevante Suchbegriffe eruieren
Webalizer bietet die Möglichkeit, Suchbegriffe unter denen Sie gefunden wurden aufzuzeichnen. Die Voreinstellungen beschränken sich allerdings leider meistens auf veraltete Such-URLs, sind unzureichend, oder das 'SearchEngine'-Keyword fehlt völlig. Suchen oder ergänzen Sie in der webalizer.conf das Keyword 'SearchEngine' und ändern Sie die Werte wie folgt:

CODE SearchEngine google.de q= #Google
SearchEngine de.wrs.yahoo.com K= #Yahoo
SearchEngine search.msn.de q= #MSN
SearchEngine suche.aol.de q= #AOL
SearchEngine suche.web.de su= #WEB.DE
SearchEngine de.altavista.com q= #Altavista
SearchEngine suche.lycos.de query= #Lycos
SearchEngine suche.fireball.de query= #fireball.de
SearchEngine allesklar.de words= #allesklar.de
SearchEngine search.hotbot.de query= #HotBot


Diese aktuellen Einstellungen, beziehen sich auf zehn deutsche Suchmaschinen und können natürlich noch ergänzt werden. Die Vorgehensweise ist dabei stets gleich:

Bei Suchmaschinen die Seiten direkt verlinken, wie zum Beispiel Google, starten Sie eine Web-Suche mit einem beliebigen Suchbegriff, wie etwa 'drweb'. In der Adresszeile Ihres Browsers steht nun: http://www.google.de/search?hl=de&q=drweb&meta=

Daraus wird die Domain 'google.de', und die vor Ihren verwendeten Suchbegriffen stehende Abfrage-Variable 'q=' gesucht. Die korrekte Angabe in der .conf-Datei lautet also:

CODE SearchEngine google.de q=


Bei Suchmaschinen, die Seiten nicht direkt verlinken, wie zum Beispiel Yahoo, starten Sie ebenfalls eine Suche. Wenn Sie mit dem Mauszeiger bei den gefundenen Ergebnissen über den Link einer Website gehen, bemerken Sie, dass im angezeigten Link in der Statusbar, die Domain 'de.wrs.yahoo.com' mit der korrekten Abfrage-Variable 'K=' angezeigt wird, und dieses Ergebnis nicht der Domain 'de.search.yahoo.com' mit der Variable 'p=' in der Adresszeile entspricht. Der Eintrag sollte dann also so aussehen:

CODE SearchEngine de.wrs.yahoo.com K=


Tipp:
Da sich die Einstellungen der Suchmaschinen laufend ändern können, muss man ab und zu die Abfragen kontrollieren, um korrekte Ergebnisse zu erhalten.

Der Error-404 Referrer Hack
Die unangenehmste Einschränkung am Webalizer ist, dass dieser bekanntlich zwar die Anzahl von 404-Fehlern anzeigt, aber nicht die auslösende Datei. Dabei ist gerade diese Information, neben den Suchbegriffen und den Verweisen, die wichtigste Information einer professionellen Logfile-Analyse. Mit einem Trick, kann man kann man dem Webalizer etwas auf die Sprünge helfen.

Legen Sie auf Ihrem Server eine neue Seite mit dem Namen wie etwa /meinephpscripts/error.php' an und kopieren Sie in diese den folgenden php-Code:

CODE <?php
print "Aktuelle 404-Fehler<br>";
print "Zeitpunkt: aufgerufene Datei | Referrer: \"(falls übermittelt)\", sonst \"-\"<br><br>";
$file = fopen("/apache.log","r");
while ($a = fgets($file,1024)) {
list(,,,$time,,,$dat,,$err,,$wo) = explode(" ", $a);
if ($err=="404")
print substr("$time",1).": $dat | Referrer: $wo<br>";}
fclose($file);
?>


Das Script öffnet die momentan aktuelle .log-Datei (im Beispiel '/apache.log'). Ändern Sie den Namen dieser Datei, auf den Namen Ihrer Logdatei in Ihrem Log-Verzeichnis, z.B. '/logs/aaccess.log' oder ähnlich.

Mit Hilfe des 'list'-Befehls, werden Zeitpunkt des Fehlers ($time), die angeforderte Datei ($dat), der Server-Response-Code ($err) und die anfragende Seite, also der Referrer ($wo) aus jeder einzelnen Logfile-Zeile ausgelesen. Falls der Response-Code '404' sein sollte (if $err=="404"), wird der Fehler ausgegeben (print $time, $dat, $wo).

Nach einem Upload, kann diese Seite nun mit 'http://www.meinedomain.de/meinephpscripts/error.php' aufgerufen werden.

Damit auf diese Daten direkt aus dem Webalizer zugegriffen werden kann, fügen Sie noch folgende Zeilen in der webalizer.conf ein:

CODE HTMLPost <CENTER><SMALL>
HTMLPost <A HREF="http://www.meinedomain.de/
meinephpscripts/error.php">[404-Ergebnisse]</A>
HTMLPost </SMALL>


Wenn alles richtig funktioniert, können Sie nun direkt aus dem Webalizer auf die Daten zugreifen.

Tipp:
Bei Veränderungen der Ergebnis-Seite mit den 'HTML'-Keywords, verlangt der Webalizer eine Zeilenlänge von maximal 80 Zeichen. Wenn mehr HTML-Inhalt eingefügt werden soll, teilen Sie, wie im obigen Beispiel, den Code einfach auf mehrere Zeilen auf.

Bedenken Sie bitte, dass alle Änderungen an der webalizer.conf einen neuen Durchlauf vom Webalizer erfordern. Wenn Ihre Logfiles immer um Mitternacht den vorhergehenden Tag rechnen, können Sie am nächsten Tag die neuen Einstellungen testen.

Mehr über 'TopTable'- und 'HTML'-Keywords finden Sie in der Webalizer README-Datei.

Obwohl, wie schon erwähnt, der Webalizer für eine schnelle Zwischendurchabfrage sehr gut geeignet ist, kann dieser eine professionelle Lofile-Analyse leider nicht ersetzen. Besser geeignet für solche Zwecke, ist das ebenfalls als Open Source erhältliche Tool AWStats.

Autor: Florian Fischer

Florian Fischer leitet die Internet-Marketing Agentur myvasco.com in Salzburg.

Urheber: Dr. Web Magazin (Stand vom 29.03.2005)
Lizenz: Open Content Lizenz
 
Hallo Remo,

Besten Dank für dein Webalizer "upgrade".
Ich benütze den Webalizer schon ziemlich lange, ich habe es aber noch nie geschafft, die Referrers anzuzeigen.
huh.gif

Soll ich mein Webalizer.conf file posten?

Boubou 7
 
Da die vielen Bots ein falsches Bild über die Besucherzahlen geben, hab ich bei meinen .config-Dateien die Bots ausgeschlossen. Wenn ihr die Zeilen in die Config-Integriert werden in Zukunft die Bots nicht mehr als Besucher gezählt

(Es könnte sein, das n'paar Bots fehlen, aber ich würd im Config einfach anpassen dass alle Agents angezeigt werden, und wenn weiter Bots auftauchen, diese Ignorieren).

CODE
IgnoreAgent Zoek.nl*
IgnoreAgent Mercator*
IgnoreAgent Webspider*
IgnoreAgent Openfind*
IgnoreAgent psbot*
IgnoreAgent OpenTextSiteCrawler*
IgnoreAgent SlySearch*
IgnoreAgent WebTrends*
IgnoreAgent FAST-WebCrawler*
IgnoreAgent Vindex*
IgnoreAgent http://www.almaden.ibm.com/*
IgnoreAgent MedialabRobot
IgnoreAgent oBot
IgnoreAgent ia_archiver
IgnoreAgent Kennisnet-link-check*
IgnoreAgent Teleport*
IgnoreAgent BravoBrian*
IgnoreAgent WebStripper*
IgnoreAgent MSFrontPage*
IgnoreAgent MS FrontPage*
IgnoreAgent TurnitinBot*
IgnoreAgent Xenu*
IgnoreAgent BigBrother*
IgnoreAgent WebReaper*
IgnoreAgent MicrosoftPrototypeCrawler*
IgnoreAgent AVSearc*
IgnoreAgent Googlebo*
IgnoreAgent OpenTextSiteCrawle*
IgnoreAgent sitecheck.internetseer.com*
IgnoreAgent appie*
IgnoreAgent polybot*
IgnoreAgent PHP*
IgnoreAgent htdig*
IgnoreAgent NPBot
IgnoreAgent OWR_Crawler*
IgnoreAgent SURF
IgnoreAgent minerva*
IgnoreAgent Big Brothe*
IgnoreAgent Mediapartners*

IgnoreAgent Feedreader*
IgnoreAgent Yahoo*
IgnoreAgent msnbot*
IgnoreAgent search.ch*
IgnoreAgent check_http*
IgnoreAgnet SharpReader*
IgnoreAgent HenryTheMiragoRobot*
IgnoreAgent NG/*

 
Ich benutze den webalizer zwar nur sporadisch, aber ist es denn üblich, dass man (ausser bei einem root-Server) Zugriff auf die webalizer.conf hat? Ich habe mal bei verschiedenen Hostern nach der Datei gesucht, bin bisher aber nie fündig geworden.
 
Hallo Remo,
Vielen Dank für den Artikel. Jetzt wollte ich zwar grade Feierabend machen, aber bei den detaillierten Auführungen.
 
Zugriff auf webalizer.conf hat man per Default fast nie .. Bei all-inkl.com bekam ich per Nachfrage Zugriff auf die Datei.
 
jetzt noch die Bitte:

Wie bekommt man die Referrer vollständig anzeigt ohne dass die query's ab dem "?" abgeschnitten werden und damit unvollständig sind
rolleyes.gif
 
QUOTE Das Script öffnet die momentan aktuelle .log-Datei (im Beispiel '/apache.log'). Ändern Sie den Namen dieser Datei, auf den Namen Ihrer Logdatei in Ihrem Log-Verzeichnis, z.B. '/logs/aaccess.log' oder ähnlich.


Was aber wenn mein Provider (All-Inkl.com) Log-Files mit Datumsangabe produziert die scheinbar auch noch gepackt sind?
Z.B. "access_log_2005-11-30.gz"

Oder könnte es sich bei dem Logfile auch um eine in "webalizer.current" umbenannte Datei handeln di im Code wie folgt anfängt


CODE # Webalizer V2.01-10 Incremental Data - 01/11/2006 23:58:41



...?
 
Zurück
Oben