Geschrieben von: Christoph Wille
Kategorie: Server
This printed page brought to you by AlphaSierraPapa
Das Auswerten von Logdateien erfüllt meist mehrerlei Zwecke: technisch, um die Site zu verbessern, sicherheitstechnisch, um Hack-Attacken zu finden, oder beancounter-mäßig, um dem Management zu vermitteln, wer auf die Website zugreift - und was er sich dabei ansieht, und so weiter. Es gibt viele Tools, allerdings kosten die meisten davon viel (oder sehr viel). Heute werden wir uns die Grundlagen eines Tools erarbeiten, das gratis ist: Analog.
Das Analysetool Analog kann von analog.cx downgeloadet werden. Es gibt kompilierte Versionen für Windows, Apple, Linux und mehr - und wer damit das Auslangen nicht findet, kann den Sourcecode downloaden, und auf die Plattform seiner Wünsche anpassen. Für uns ist klarerweise die Windows-Version die interessanteste.
Ein Vorteil von Analog ist der, daß es kein Setupprogramm braucht - einfach in ein Verzeichnis nach Wahl entzippen, und schon ist man "all set". Für Windows-Aficionados kommt nun der Schock: Analog ist ein Kommandozeilenprogramm, und man muß es mittels einer Konfigurationsdatei namens analog.cfg steuern.
Alles nur halb so schlimm, wie der Artikel zeigen wird. Weitere Artikel werden sich dann mit Add-Ons für Analog beschäftigen, und darunter gibt es auch einige GUI's - nur die kosten extra. Deswegen erarbeiten wir uns heute die Grundlagen auf die "harte" Tour.
Ein Satz in der Hilfedatei hat mir sehr gut gefallen: "Most people don't need to do this because analog can detect the format automatically -- try it first and see!". Klar hab' ich's ausprobiert, und ebenso klarerweise ging's mit meinen Logdateien daneben. Kismet.
Also habe ich auf Plan B umgesattelt, und mir unverdrossen die Hilfe zum Thema "Definieren neuer Logfileformate" durchgelesen (ja, in besonders verzweifelten Situationen lese auch ich die Hilfe). Dazu mußte ich mir meine Logdatei vor Augen halten (besser gesagt die Definitionszeile):
date time c-ip cs-username s-sitename s-computername s-ip cs-method cs-uri-stem [cont.]cs-uri-query sc-status sc-win32-status sc-bytes cs-bytes time-taken s-port [cont.]cs-version cs(User-Agent) cs(Cookie) cs(Referer)
Hätte ich mich nur an das gehalten, wäre ich schon wieder auf die Nase gefallen. Weil - entgegen sämtlicher Beispiele von Analog muß meine Logdatei (IIS) ein anderes Datumsformat als amerikanisch (yyyy/mm/dd) verwenden. Hier eine Beispielzeile des Logs zu Verdeutlichung:
2001-04-13 00:04:38 211.22.119.114 - W3SVC181 www26 216.87.12.204 GET /english/20001009.asp [cont.]- 200 0 14297 186 94 80 [cont.]HTTP/1.0 Mozilla/4.0+(compatible;+MSIE+5.5;+Windows+NT+5.0)+Fetch+API+Request - -
Ja, das mit den Bindestrichen im Datum findet sich bei Extended Logfiles von IIS. Unter Zuhilfename der Hilfe habe ich daraus mein Logformat gebastelt (die Parameter bitte ebendort nachlesen):
LOGFORMAT (%Y-%m-%d %h:%n:%j %s %u W3SVC%j %v %j %j %r %q %c %j %b %j %T %j %j %A %j %f)
Das war die wichtigste (einzige) Hürde am Weg zum Erfolg mit Analog. Jedem, der Non-Standard Logs hat, wird es ebenso gehen. Denn der Rest von Analog ist kinderleicht zu konfigurieren.
Ich habe mir erlaubt, gleich den ersten Report etwas aufzupeppen. Und wie nicht anders zu erwarten, passieren alle notwendigen Einstellungen in analog.cfg. Was habe ich gemacht?
Ich lasse Reverse DNS Lookups durchführen, um eine per Domain/per Land Gliederung der Zugriffszahlen zu ermöglichen. Achtung: das dauert, deshalb speichere ich Reverse Lookups in einer Datei namens dnscache. Hier gibt es viele Konfigurationsmöglichkeiten, ich empfehle für dieses Feature die Konsultation der Hilfe.
Weitere Kleinigkeiten: ich habe festgelegt, daß mein Logfile case-insensitive ausgewertet werden soll, was auf Windows perfekt zulässig ist. Außerdem habe ich ein Verzeichnis von der Auswertung ausgeschloßen - im Echteinsatz wären das interne Wartungs-Verzeichnisse und dergleichen, die das Management nicht interessieren (oder zu haben).
Gut - genug geredet. Hier der erste Part von analog.cfg:
# DEBUG C LOGFORMAT (%Y-%m-%d %h:%n:%j %s %u W3SVC%j %v %j %j %r %q %c %j %b %j %T %j %j %A %j %f) LOGFILE ex010413.log OUTFILE Report.html CASE INSENSITIVE FILEEXCLUDE /service/* HOSTNAME "AspHeute.com" HOSTURL http://www.aspheute.com DNSFILE dnscache DNS WRITE # DNS LOOKUP
Der Switch DEBUG C ist auskommentiert, und diesen habe ich verwendet, um mein LOGFORMAT auf Fehler hin zu durchsuchen. Die Logdatei, die ich auswerten will, wird in einem LOGFILE Statement angegeben, und dieses kann man beliebig oft wiederholen. OUTFILE ist selbsterklärend, und CASE INSENSITIVE ebenso.
Etwas, das ich nicht vorweg geschickt habe sind die HOSTNAME und HOSTURL Parameter. Diese dienen der Verschönerung des Reports - siehe auch folgender Screenshot. Der heutige Download beinhaltet diesen Beispielreport in voller Länge, denn dies ist nur eine von vielen Auswertungen (die auch konfiguriert werden können).
Ich habe etliche Zeilen von analog.cfg unterschlagen, aber auch diese Datei findet sich vollständig im heutigen Download. Diese stammen unmodifiziert aus dem Beispiel, das mit Analog kommt.
Das Konfigurieren von analog.cfg kann keine Dauerlösung sein. Daher befassen sich weitere Artikel mit graphischen Add-Ons für Analog, sowie mit einem weiteren wichtigen Add-On: Report Magic, weil zugegebenermaßen die Standard-Tortengrafiken nicht "managementgerecht" sind. Unter dem Motto: traue keiner Statistik, die Du nicht selbst gefälscht hast!
Im Artikel nicht erwähnt, so wenigstens in der Schlußbemerkung: wenn man auf Reverse DNS Lookups verzichtet, dann ist Analog ein wirklich enorm schnelles Analysetool!
This printed page brought to you by AlphaSierraPapa
Klicken Sie hier, um den Download zu starten.
http://www.aspheute.com/code/20010517.zip
Logfiles auswerten mit Webalizer
http:/www.aspheute.com/artikel/20021030.htm
Logfiles mit Access auswerten
http:/www.aspheute.com/artikel/20010502.htm
ReportMagic für Analog
http:/www.aspheute.com/artikel/20010523.htm
Analog
http://www.analog.cx
Analog bei Sourceforge
http://analog.sourceforge.net/
©2000-2006 AspHeute.com
Alle Rechte vorbehalten. Der Inhalt dieser Seiten ist urheberrechtlich geschützt.
Eine Übernahme von Texten (auch nur auszugsweise) oder Graphiken bedarf unserer schriftlichen Zustimmung.