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
Dann schauen wir uns einmal an, welche Cmdlets uns zur Verfügung stehen.
Get-Command -Module WebAdministration
Get-Command -Module WebAdministration -verb get
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
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
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’
Das geänderte Verzeichnis lässt sich auch wieder über die Powershell kontrollieren.
Get-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.directory
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
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’
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
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’
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
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
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
Das Ändern wir jetzt auf maximal 1 GB ab.
Set-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name logfile.truncateSize -Value 1073741824
Deaktivieren lässt sich die Protokollierung mit diesem Befehl.
Set-ItemProperty -Path ‘IIS:\Sites\Default Web Site’ -Name Logfile.enabled -Value $false
Ein Kommentar
Kommentare sind geschlossen.