Die neuen Funktionen von IIS 8.5 bringen unter anderem neue Logging-Mechanismen. Es gibt zwei neue Verbesserungen im Logging. Nun können zusätzliche Felder mitgespeichert werden und das Logging kann nun in das Windows Ereignisprotokoll geschrieben werden.

Standard-Logging

IIS loggt seit jeher in das Filesystem. Das macht vor allem aus Performance-Gründen Sinn. Die Logging-Einstellungen können nach eigenem Bedarf angepasst werden, auf Serverebene für Web und FTP-Traffic oder dann einzeln pro Website. Zumeist legt man die gewünschten Eigenschaften einmal pro Server fest.

image

Üblicherweise verwendet man meist Logging per Site und das W3C Format – damit können die meisten Webanalyse Tools etwas anfangen – und verwendet “local time”.

image
image

Im Betrieb resultieren diese Einstellungen dann darin, dass pro Site und pro Tag ein Logfile angelegt wird. Der Screenshot zeigt den Speicherort und ein beliebiges Logfile. IIS hält das aktuelle Logfile offen, um rasch Protokollzeilen in das File anhängen zu können. Es kann aber dennoch zum Lesen geöffnet werden. Beim Stoppen des Webs wird es geschlossen.

image

Üblicherweise lesen Webanalyse-Tools dann diese Logdateien, benennen sie um und packen oder verschieben sie in ein Archiv. So weit so gut, das ist Standard seit der ersten Version von IIS – mit ein paar neuen Features, die nach und nach erweitert wurden.

Verbessertes Logging

Im Modul Logging (Protkollierung) können die Eigenschaften wie oben (Art, Format, Speicherort und Encoding) definiert werden. Diese Eigenschaften vererben sich in die darunterliegenden Sites, daher ist es im Regelfall klug, diese auf Serverebene einmal zu setzen.

Neu in IIS 8.5 ist, dass hier mit Select Fields… sog. Custom Fields hinzugefügt werden können.

SNAGHTML5516c4a_thumb[2]

Damit können bestimmte Informationen wie Request Header, Response Header und Server Variablen protokolliert werden.

image_thumb[12]

So kann beispielsweise die CPU-Zeit oder die Dauer eines Webrequests oder HTTP Header wie X-Forwarded-For in das Log gespeichert werden. In Enhanced Logging for IIS 8.5 und im TechNet Video sind weitere Informationen darüber zu finden.

Hinweis: Eine ähnliche Funktionalität konnte auch zuvor durch seperate Module erreicht werden. Nun ist Enhanced Logging jedoch schon in IIS 8.5 eingebaut und vereinfacht die Verwaltung out-of-the-box: “Enhanced logging for IIS 8.5 is only available in IIS 8.5”.

Logging to Event Tracing

In IIS 8.5 können Weblogs auch direkt in das Event Tracing von Windows (ETW) geschrieben werden – sprich in die Ereignisanzeige. Damit können zum Beispiel IIS-Events in Echtzeit ge-monitored werden. Bei klassischen Logfiles kann es je nach Auslastung 30 Sekunden dauern, bis das Ereignis in dem Logfile geschrieben wird. Im Gegensatz zum file-basierten Logging werden die Ereignisse sofort in das Eventlog geschrieben.

Das W3C Protokoll kann nur nach ETW oder in ein Logfile und in das ETW geschrieben werden.

image

Das Format muss W3C sein und das Web muss für die Wirksamkeit einmal restarted werden.

Diese Funktion ist aus meiner Sicht weniger für sehr stark frequentierten Webs sinnvoll, sondern dient vor allem für das Troubleshooting und Debugging von Webs. Man kann damit nachsehen, was in einer Website so alles passiert oder eine zentrale Website-Logging Strategie entwickeln.

Im Event Viewer finden sich die Logzeilen dann gut versteckt im Knoten
Event View (Local) / Applications and Services Logs / Microsoft / Windows / IIS-Logging / Logs.

image

Weitere Infos gibt es in Logging to Event Tracing for Windows in IIS 8.5 und in Configure Logging in IIS.

Wenn ETW Logging benutzt wird, empfiehlt es sich das Tool Microsoft Message Analyzer für die Echtzeit-Analyse zu verwenden, siehe Microsoft Message Analyzer Operating Guide und Hook me up!.

Weiter geht´s dann im nächsten Teil mit Leistungsoptimierung von Websites in IIS 8.5.

Artikelserie, siehe auch