Microsoft IIS Logging per Powershell konfigurieren

IIS Logging managen

IIS Logging per Powershell konfigurieren

Mit der Powershell lässt sich das IIS Logging und seine Funktionen sehr gut verwalten. In diesem Artikel geht es um die Protokolldateien, deren Speicherort, und Größe.

Für die Verwaltung müssen wir zuerst sicherstellen, das wir das entsprechende Powershell Modul (WebAdministration) geladen haben.

Import-Module -Name WebAdministration

Import-Module -Name WebAdministration

Dann schauen wir uns einmal an, welche Cmdlets uns zur Verfügung stehen.

Get-Command -Module WebAdministration
Get-Command -Module WebAdministration -verb get

Get-Command -Module WebAdministration

Mit Get-ItemProperty lesen wir die wichtigsten Informationen zur IIS Konfiguration aus. Wir sehen das aktuelle Log-Verzeichnis in dem die Logs abgelegt werden. Die periodische Erstellung der Log-Files sowie z.B. das Log-Format.

Get-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile

Get-ItemProperty logfile

Um uns alle Logs der “Default Web Site” anzeigen zu lassen, setzen wir diese Befehle ab.

$LogfileDirectory = (Get-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile).directory
$LogfileFolder = [System.Environment]::ExpandEnvironmentVariables(“$LogfileDirectory”)
Get-ChildItem -Path $LogfileFolder -Recurse

Logs der Default Web Site

Wenn wir den Speicherort der Logs verschieben wollen, dann gehen wir wie folgt vor.

Set-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.directory -Value ‘C:\IISLogs’

Set new IIS Log Path

IIS Protokollierung Verzeichnis

Das geänderte Verzeichnis lässt sich auch wieder über die Powershell kontrollieren.

Get-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.directory

Query IIS Log Path

Wenn wir wissen möchte in welchen Format die Logs geschrieben werden, dann erfahren wir das mit diesem Befehl.

Get-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.logformat

Query IIS Log Format

Möchten wir das ausgebende Format ändern, so stehen uns 3 feste Formate (IIS, NCSA und W3C) zur Verfügung. Das Format wurde geändert und lässt sich im Anschluss kontrollieren.

Set-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.logFormat -Value ‘IIS’

Set IIS Log Format to IIS

Zusätzlich zu den Einträgen die ins IIS Log geschrieben werden, haben wir die Möglichkeit diese an das ETW (Event Tracing for Windows) zu senden. Dafür muss das Format aber auf W3C eingestellt sein.

Zu Anfang prüfen die aktuelle Einstellung. Aktuell wird nur in die Protokolldatei geschrieben.

Get-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.logTargetW3C

Query IIS Log Target

Damit diese auch an das ETW gesendet werden, setzen wir diesen Befehl ab.

Set-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.logTargetW3C -Value ‘File,ETW’

Set Log Target File ETW

In der Regel wird nur einmal am Tag eine Logdatei erstellt. Zur Überprüfung der aktuellen Konfiguration.

Get-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.period

Query IIS Log File period

Das lässt sich aber ändern, entweder in stündlich, wöchentlich oder monatlich.

Set-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.period -Value weekly

Set IIS Log Period

Wir sind fast am Ende der Reihe angekommen. Jetzt ändern wir die Protokollgröße. Wie immer fragen wir zuerst die aktuelle Konfiguration ab. Diese steht auf 2 GB.

Get-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.truncateSize.value

Query IIS Log File Size

Das Ändern wir jetzt auf maximal 1 GB ab.

Set-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.truncateSize -Value 1073741824

Set IIS max Log size

Deaktivieren lässt sich die Protokollierung mit diesem Befehl.

Set-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name Logfile.enabled -Value $false

Disable IIS Logging

 

Ein Kommentar

Kommentare sind geschlossen.