|
|
Zeile 20: |
Zeile 20: |
|
| |
|
| = TMP = | | = TMP = |
| Eine '''Logdatei''' (auch '''Protokolldatei''', ''Ereignisprotokolldatei''; {{enS|log file}}) enthält das automatisch geführte Protokoll aller oder bestimmter Aktionen von [[Prozess (Informatik)|Prozessen]] auf einem [[Computer]]system.
| |
|
| |
| Wichtige Anwendungen finden sich vor allem bei der Prozesskontrolle und Automatisierung. Prinzipiell werden alle Aktionen mitgeschrieben, die für eine spätere Untersuchung ([[Audit#Informationstechnik|Audit]]) erforderlich sind oder sein könnten. Der [[Flugschreiber]] in Flugzeugen ist ein Beispiel für kontinuierliche Protokollierung, die jedoch selten ausgewertet wird, zum Beispiel nach einem Unfall.
| |
|
| |
| Im Bereich der [[Datenbank]]en gibt es ein [[Logging und Recovery|Transaktionsprotokoll]], in der Änderungen an der Datenbank von korrekt abgeschlossenen Transaktionen (per [[Commit]] abgeschlossen) festgehalten werden, um im Fall eines Fehlers (z. B. Systemabsturz) den aktuellen Datenbestand wiederherstellen zu können.
| |
|
| |
| Das Wort Logfile wird in Teilen der [[Blogosphäre]] zunehmend auch als Begriff für einen [[Blog]]-Eintrag genutzt. Mit dieser Bedeutung wurde der Begriff zunächst nur von Log-Files.de (diese Seite ist inzwischen gesperrt) verwendet, inzwischen ist er gerade bei Blogs mit reinem Tagebuch-Charakter beliebt.
| |
|
| |
| [[Datei:Keylogger-software-logfile-example.jpg|mini|hochkant=1.5|Beispiel für eine Logdatei – hier die der Aktivität des [[Keylogger]]s ''Wolfeye'']]
| |
|
| |
| == Grundlagen ==
| |
| Auf einem PC können Protokolldateien bestimmter Aktionen von einem oder mehreren Nutzern an einem Rechner geschrieben werden, ohne dass diese es bemerken oder ihre Arbeit beeinflusst wird. Wesentlich ist hierzu das Systemlogbuch (unter Linux meist in ''/var/log/messages'', aber auch Windows NT und Nachfolger schreiben entsprechende Einträge in eines oder mehrere ''[[Ereignisprotokoll]]e''), wenn sie entsprechend konfiguriert werden. Darin können u. a. die Anmeldungen am System protokolliert werden, aber auch andere wichtige Informationen.
| |
|
| |
| Außer dem Betriebssystem selbst schreiben meist [[Hintergrundprozess|Hintergrundprogramme]] (z. B. ein [[Mailserver|E-Mail-Server]], ein [[Proxy (Rechnernetz)|Proxyserver]] und anderes) in Logdateien, um Aktionsmeldungen, Fehlermeldungen und Hinweise persistent (dauernd) oder temporär verfügbar zu halten. Ähnliches gilt für [[Installation (Computer)|Installationsprogramme]], [[Firewall]]s, [[Antivirenprogramm|Virenscanner]] und dergleichen. Logdateien werden im Idealfall auf einem von der Anwendung getrennten Laufwerk gespeichert, um die [[Eingabe und Ausgabe|I/O-Ressourcen]] der Anwendung nicht einzuschränken.<ref name="releaseit" />
| |
|
| |
| Logdateien werden auch von [[Webserver]]n erstellt, können aber auch außerhalb des Internets bei Untersuchungen der [[Benutzerfreundlichkeit]] von Programmen, allgemeinem Nutzerverhalten oder der [[Debuggen|Fehlersuche]] in einem System genutzt werden.
| |
|
| |
| Die Logdatei wird bei der [[Logdateianalyse]] untersucht.
| |
|
| |
| == Aufbau einer Protokollzeile ==
| |
| Prinzipiell enthält eine Protokollzeile in einer Logdatei meist ein Ereignis sowie das dazugehörige Datum und die dazugehörige Uhrzeit als [[Zeitstempel]]. Dabei wird die Zeitangabe meist vorangestellt, da es sich bei einer Logdatei um eine [[Chronologie|chronologische]] Aufstellung handelt.
| |
|
| |
| === Protokolldatei ===
| |
| Bei dem Beispiel handelt es sich um den (in der Mitte gekürzten) Inhalt der Protokolldatei <code>\WINDOWS\system32\[[Web Based Enterprise Management|wbem]]\Logs\setup.log</code> unter [[Microsoft Windows XP|Windows XP]]; links der Zeitstempel, rechts die zu dieser Zeit ausgeführte Aktion:
| |
| (Sun Sep 13 23:02:05 2009): Beginning Wbemupgd.dll Registration
| |
| (Sun Sep 13 23:02:05 2009): Current build of wbemupgd.dll is 5.1.2600.2180 (xpsp_sp2_rtm.040803-2158)
| |
| (Sun Sep 13 23:02:05 2009): Beginning Core Upgrade
| |
| (Sun Sep 13 23:02:05 2009): Beginning MOF load
| |
| (Sun Sep 13 23:02:05 2009): Processing C:\WINDOWS\system32\WBEM\cimwin32.mof
| |
| (Sun Sep 13 23:02:09 2009): Processing C:\WINDOWS\system32\WBEM\cimwin32.mfl
| |
| (Sun Sep 13 23:02:12 2009): Processing C:\WINDOWS\system32\WBEM\system.mof
| |
| <!-- 35 Einträge aus der Originaldatei entfernt, das reicht so als Beispiel -->
| |
| (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\evntrprv.mof
| |
| (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\hnetcfg.mof
| |
| (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\sr.mof
| |
| (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\dgnet.mof
| |
| (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\whqlprov.mof
| |
| (Sun Sep 13 23:02:16 2009): Processing C:\WINDOWS\system32\WBEM\ieinfo5.mof
| |
| (Sun Sep 13 23:02:17 2009): MOF load completed.
| |
| (Sun Sep 13 23:02:17 2009): Beginning MOF load
| |
| (Sun Sep 13 23:02:17 2009): MOF load completed.
| |
| (Sun Sep 13 23:02:17 2009): Core Upgrade completed.
| |
| (Sun Sep 13 23:02:17 2009): Wbemupgd.dll Service Security upgrade succeeded.
| |
| (Sun Sep 13 23:02:17 2009): Beginning WMI(WDM) Namespace Init
| |
| (Sun Sep 13 23:02:20 2009): WMI(WDM) Namespace Init Completed
| |
| (Sun Sep 13 23:02:20 2009): ESS enabled
| |
| (Sun Sep 13 23:02:20 2009): ODBC Driver <system32>\wbemdr32.dll not present
| |
| (Sun Sep 13 23:02:20 2009): Successfully verified WBEM OBDC adapter (incompatible version removed if it was detected).
| |
| (Sun Sep 13 23:02:20 2009): Wbemupgd.dll Registration completed.
| |
| (Sun Sep 13 23:02:20 2009):
| |
|
| |
| === Serverlog ===
| |
| Eine typische Webserver-Logdatei („Combined Log Format“) sieht folgendermaßen aus (Auszug mit zwei Einträgen):
| |
| 183.121.143.32 - - [18/Mar/2003:08:04:22 +0200] "GET /images/logo.jpg HTTP/1.1" 200 512 <nowiki>"http://www.wikipedia.org/</nowiki>" "Mozilla/5.0 (X11; U; Linux i686; de-DE;rv:1.7.5)"
| |
| 183.121.143.32 - - [18/Mar/2003:08:05:03 +0200] "GET /images/bild.png HTTP/1.1" 200 805 <nowiki>"http://www.google.org/"</nowiki>
| |
| …
| |
|
| |
| {| class="wikitable"
| |
| |+ Erklärung der ersten Zeile des Beispieleintrages
| |
| ! Bedeutung !! Wert im Beispiel !! Erläuterung
| |
| |-
| |
| | IP-Adresse || 183.121.143.32 || [[IP-Adresse]] des anfordernden [[Hostrechner|Hosts]]
| |
| |-
| |
| | Unbelegt || – || vorgesehen für RFC-1413-Identität, die jedoch standardmäßig (-) nicht ermittelt wird
| |
| |-
| |
| | Wer || – || Ggf. Nutzername aus einer HTTP-Authentifizierung, sonst „-“
| |
| |-
| |
| | Wann || [18/Mar/2003:08:04:22 +0200] || Zeitstempel (Datum, Uhrzeit, Zeitverschiebung)
| |
| |-
| |
| | Was || "GET /images/logo.jpg HTTP/1.1" || Anforderung, eines Bildes, Übertragungsprotokoll
| |
| |-
| |
| | Ok || 200 || [[HTTP-Statuscode]]s (200=Erfolgreiche Anfrage)
| |
| |-
| |
| | Wie viel || 512 || Ggf. Menge der gesendeten Daten ([[Byte]]), sonst (z. B. bei Umleitungen) „-“
| |
| |-
| |
| | Woher || <nowiki>"http://www.wikipedia.org/"</nowiki> || Von welcher Internetseite (URI) wird angefordert
| |
| |-
| |
| | Womit || "Mozilla/5.0 (X11; U; Linux i686; de-DE; rv:1.7.6)" || Mit welchem [[Webbrowser]]/[[Betriebssystem]]/Oberfläche
| |
| |-
| |
| |colspan="3" |
| |
| |-
| |
| |colspan="3" | <small>Bemerkung: ''Woher?'' und ''Womit?'' entsprechen nicht dem [[Common Logfile Format]].<ref>[http://www.w3.org/Daemon/User/Config/Logging.html#common-logfile-format w3.org]</ref></small>
| |
| |}
| |
|
| |
| Kann man selber auf einem Server mit der eigenen Webpräsenz keine Protokolldateien abrufen, dann ermöglichen verschiedene Webdienste (z. B. Nedstat<ref>{{Webarchiv|url=http://www.nedstat.com/ |wayback=20051024234340 |text=Nedstat - Web analytics |archiv-bot=2019-09-19 20:10:54 InternetArchiveBot }}</ref> oder W3 Statistics<ref>[http://www.w3statistics.com/ W3 Statistics (zuvor W3 Research) :: intelligente Webstatistik und Web-Controlling]</ref>) das Setzen eines kleinen Zählers auf der eigenen Webpräsenz. Dieser Zähler wird immer wieder beim Abrufen der Seite vom Anbieterserver geladen, wo daraufhin eine Auswertung der Zugriffe mithilfe der Zugriffs-Protokolldatei in Form von Tabellen und Grafiken erstellt wird. Hilfsmittel dabei können [[Zählpixel]] und [[HTTP-Cookie]]s sein, wobei es letztere Internetseitenbetreibern durch das Speichern von eindeutigen Seriennummern ermöglichen, Logdateien über einzelne zugreifende Computer über einen längeren Zeitraum zu führen.
| |
|
| |
| == Log-Levels ==
| |
|
| |
| Da das Loggen aller Programmereignisse die für Logdateien verfügbaren Ressourcen innerhalb kurzer Zeit aufbrauchen würde und die Auffindbarkeit bestimmter Ereignisse erschweren würde, werden verschiedene Dringlichkeitsstufen definiert, welche nach Bedarf ein- und ausgeschaltet werden können.
| |
|
| |
| Übliche Definition von Log-Levels:<ref name="loglvl" />
| |
| ; Fatal
| |
| : Fehler, welcher zur Terminierung der Anwendung führt.
| |
| ; Error
| |
| : Laufzeitfehler, welcher die Funktion der Anwendung behindert, oder unerwarteter Programmfehler.
| |
| ; Warning
| |
| : Aufruf einer veralteten Schnittstelle, fehlerhafter Aufruf einer Schnittstelle, Benutzerfehler oder ungünstiger Programmzustand.
| |
| ; Info
| |
| : Laufzeitinformationen wie der Start und Stopp der Anwendung, Benutzeranmeldungen und -abmeldungen, sowie durchgeführte Geschäftstransaktionen.
| |
| ; Debug
| |
| : Informationen zum Programmablauf. Wird im Normalfall nur in der Entwicklung oder zur Nachvollziehung eines Fehlers verwendet.
| |
| ; Trace
| |
| : Detaillierte Verfolgung des Programmablaufs, insbesondere zur Nachvollziehung eines Programmierfehlers.
| |
|
| |
| Wichtig ist hierbei, dass in Logdateien und -datenbanken nur Informationen zum Programmablauf und -zustand erhoben werden sollen, jedoch keine Informationen zu den Benutzern des Programms.
| |
|
| |
| == Zulässigkeit in Deutschland ==
| |
| {{Hauptartikel|Web Analytics#Gesetzliche Zulässigkeit in Deutschland|titel1=„Gesetzliche Zulässigkeit in Deutschland“ im Artikel Web Analytics}}
| |
|
| |
| Nach {{§|15|TMG|buzerx}} des deutschen [[Telemediengesetz]]es dürfen Diensteanbieter personenbezogene Daten eines Nutzers nur erheben und verwenden, soweit dies erforderlich ist, um die Inanspruchnahme von Telemedien zu ermöglichen und abzurechnen. Über das Ende des Nutzungsvorgangs hinaus dürfen [[Nutzungsdaten]] nur gespeichert werden, soweit sie für Zwecke der Abrechnung mit dem Nutzer erforderlich sind. Auf dieser Grundlage hat das Amtsgericht Berlin 2007 entschieden,<ref>{{Internetquelle |url=http://www.daten-speicherung.de/?p=197#ag |werk=Daten-Speicherung.de – minimum data, maximum privacy |titel=Urteil: Vorratsspeicherung von Kommunikationsspuren verboten |datum=2007-10-01 |zugriff=2016-05-03}}</ref> dass die Protokollierung der IP-Adressen der Benutzer eines öffentlich zugänglichen Internetportals ohne deren Einwilligung unzulässig ist.
| |
|
| |
| == Logger ==
| |
| Logger sind Softwarekomponenten für Computerprogramme, welche in eine Logdatei schreiben oder diese auslesen.
| |
|
| |
| '''[[Java (Programmiersprache)|Java]]'''
| |
| * [[Log4j]]
| |
|
| |
| '''[[.NET (Oberbegriff)|.NET]]'''
| |
| * {{Internetquelle
| |
| |url=https://github.com/quozd/awesome-dotnet#logging
| |
| |titel=Awesome .NET Logging
| |
| |kommentar=Liste von .NET Logging-Libraries
| |
| |werk=Github
| |
| |zugriff=2017-03-06}}
| |
| * {{Internetquelle
| |
| |url=https://entlib.codeplex.com/
| |
| |hrsg=[[Microsoft]]
| |
| |werk=[[CodePlex]], patterns & practices
| |
| |titel=Enterprise Library
| |
| |sprache=en
| |
| |zugriff=2013-04-11}}
| |
| * {{Internetquelle
| |
| |url=http://www.theobjectguy.com/dotnetlog/
| |
| |titel=.NET Logging Framework
| |
| |hrsg=The Object Guy
| |
| |sprache=en
| |
| |zugriff=2013-04-11}}
| |
| * {{Internetquelle
| |
| |url=http://www.gurock.com/smartinspect/
| |
| |titel=SmartInspect
| |
| |hrsg=GurockSoftware
| |
| |sprache=en
| |
| |zugriff=2013-04-11}}
| |
|
| |
| '''[[Embarcadero Delphi|Delphi]]'''
| |
| * {{Internetquelle
| |
| |url=http://log4delphi.sourceforge.net/
| |
| |titel=Log4Delphi
| |
| |sprache=en
| |
| |hrsg=Open Source Projekt
| |
| |zugriff=2013-09-19}}
| |
| * [[nxLogging]]
| |
|
| |
| == Abgrenzung zu anderen Technologien ==
| |
| Im Rahmen des [[Application Lifecycle Management]] werden, zusätzlich zu dezentralen Logdateien, auch zentralisierte [[Logging-Datenbank]]en eingesetzt, um eine zentrale Auswertung von Programmfehlern und -informationen zu ermöglichen. Derartige Datenbanken können beispielsweise über ein [[Webservice]] oder mittels [[Log-Scraping]] befüllt werden.
| |
|
| |
| Für eine Echtzeitauswertung sind Logdateien nicht geeignet. Hierfür kommen stattdessen [[Monitoring]]-Mechanismen zum Einsatz, etwa [[Performance Counter (Windows)|Performance Counter]] und [[Event Tracing for Windows]] (ETW) auf Windows-Systemen oder
| |
| [[collectd]] (''{{lang|en|system statistics collection daemon}}'') unter Linux-Systemen.
| |
|
| |
| Eine weitere Technologie sind [[Operations-Datenbank]]en, welche unter anderem eine Auswertung des Zustands von Geschäftsprozessen ermöglicht.
| |
|
| |
| == Siehe auch == | | == Siehe auch == |
| * [[Logging]] | | * [[Logging]] |