Logfiles sind von entscheidender Bedeutung für Computer, besonders für den Betrieb eines Webservers. Mit ihrer Hilfe können sowohl generelle Webserver-Probleme wie auch Angriffe auf den Server erkannt werden.
LogFiles protokollieren alle Benutzertransaktionen (Zugriffe) sowie Zustände, Aktionen und Fehler des WebServers. Aus ihnen lassen sich neben Informationen zum Benutzungs- und Navigationsverhalten auch Informationen und Rückschlüsse über Zugangswege und Verlinkungen von Webinhalten auswerten.
Eine Logdatei (auch Ereignisprotokolldatei, Englisch „log file“) enthält das automatisch geführte Protokoll aller oder bestimmter Aktionen von Prozessen auf einem Computersystem.
LogFiles eines WebServers sind strukturiert aufgebaute Textdateien. Sie bestehen aus ASCII-Zeichen, in denen die Zugriffe auf den WebServer gespeichert werden. Der WebServer schreibt dazu für jede http-Transkation (e.g. Aufruf einer Seite, Ausführen eines Scripts) eine Log Zeile mit Informationen, die diese Transkation betreffen. Eine Zeile im LogFile stellt somit eine Anfrage an den WebServer dar.
Im Zugriffsprotokoll werden sämtliche grundlegenden Informationen über jede HTTP-Transaktion gespeichert. Es protokolliert auf welche Dokumente zu welchem Zeitpunkt zugegriffen wurde. Mit diesem Protokoll kann ein einen Überblick über die Funktion und Auslastung des WebServers verschafft werden.
Im Fehlerprotokoll werden alle Fehler notiert. Gerade in der Aufbauphase eines WebServers, bei Konfigurationsänderungen oder der Installation von Programmen, kann ein ausführliches Fehlerprotokoll schnell Hinweise auf mögliche Fehlerursachen geben.
Das Format der Einträge in das Zugriffsprotokoll kann konfiguriert werden. Die übliche Variante ist das CLF (Common Log Format ). Ein Eintrag in diesem Format sieht folgendermassen aus.
Feld | Beispiel | Beschreibung |
---|---|---|
Host [%h] | 120.0.0.7 | IP-Adresse oder vollständiger Domainname des zugreifenden Rechners. |
Ident [%l] | - | Wenn die IdentityCheck-Anweisung in der Konfigurationsdatei aktiviert wurde und auf dem Clientrechner ein ident-Daemon installiert ist, wird hier der vom Client gelieferte Name des Benutzers auf dem Clientrechner eingetragen, sonst „-“. |
Authuser [%u] | - | Bei Zugriffen auf zugangsgeschützte Dokumente oder Verzeichnisse wird hier der verwendete Benutzername eingetragen, sonst „-“. |
Date [%t] | 06/Jan/2016:11:14:33 +0100 | Dieses Feld zeigt das Datum und die Uhrzeit der Anfrage, sowie Informationen zu der Zeitzone an. |
Status [%>s] | 200 | Dieses Feld zeigt den Statuscode der Antwort an und damit, ob die Anfrage erfolgreich war, oder ob ein Fehler aufgetreten ist. Die wichtigsten Codes: 200 = OK 206 = Partial Content 301 = Moved Permanently 302 = Found 304 = Not Modified 401 = Unauthorised (password required) 403 = Forbidden 404 = Not Found 500 = Internal Server Error |
Bytes [%b] | 13872 | Hier wird die Größe der vom Server an den Client ausgelieferten Daten (ohne HTTP-Header) in Bytes angegeben. |
Referer [%{Referer}i] | http://www.go.ch/search?q=Java&start=20&sa=N | Der Referer gibt an, welche Seite ein Besucher vor dem aktuellen Aufruf besucht hat und beschreibt somit die Navigation eines Benutzers zwischen verschiedenen Web-Seiten über definierte Linkbeziehungen. |
UserAgent [%{User-Agent}i] | Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36 | Der User Agent beschreibt der vom Benutzer verwendete Browser. |
Die Nachteile der Logfile Analyse: