Einleitung
Natürlich ist ein funktionierendes Backup einer Infrastruktur essentiell. Jedoch ist mir anhand eines virtualisierten Windows-PKI Servers aufgefallen, dass die Protokolldateien (Transaction Logs) in der Anzahl bislang nicht reduziert worden sind. Sprich, die Protokolldateien wachsen unaufhörlich an und verbrauchen mit der Zeit immer mehr Speicherplatz, obwohl täglich eine Vollsicherung des Windows Servers erfolgreich erstellt wird.
In vielen Fällen mag dieser Umstand nicht ersichtlich geworden sein, bzw. bemerkt werden, da das Wachstum der Protokolldateien sich im Gegenzug zu einem Exchange Server, sehr in Grenzen halten kann. Jedoch ist dies Abhängig von der Nutzung der genutzten Windows-PKI.
Hintergrund
Die betreffende Windows-PKI läuft in einer virtualisierten Umgebung und wird täglich 1x durch die Sicherungssoftware von „Veeam“ gesichert. Die Sicherung wird mit dem Status „Success“ erfolgreich abgeschlossen!
Die VSS-Option in dem Veeam Sicherungsjob ist aktiv gesetzt:
Die VSS-Option ist auf anderen Servern ebenfalls aktiv, auf denen Protokolldateien eingesammelt werden müssen.
Ereignis-ID 2005:
Anhand der Windows Ereignisanzeige ist unter dem Protokoll „Anwendung“ ersichtlich, dass der externe Sicherungsjob für den Dienst „certsrv“ täglich 1x gestartet wird. Taucht diese Ereignismeldung mit der Ereignis-ID 2005 nicht in der Ereignisanzeige auf, dann ist vermutlich die VSS-Option in der Sicherungssoftware nicht aktiv gesetzt.
Auswirkung
Trotz einer funktionierenden Windows Server Sicherung und der aktiv gesetzten VSS-Option, werden die JET-Datenbankprotokolldateien der Windows-PKI, nach der Vollsicherung nicht automatisch in ihrer Anzahl reduziert. Somit wachsen die Protokolldateien in der Anzahl unaufhörlich an. Die einzelnen Protokolldateien überschreiten dabei nicht die 1.024KB Dateigröße.
certsrv- Standardspeicherpfad:
%SystemRoot%\System32\CertLog
Auswertung
Ich nutze gerne zur automatisierten Auswertung ein PowerShell-Skript, um mir den Standardpfad, die Anzahl der eventuell vorhandenen Unterverzeichnisse, die Anzahl der enthaltenen Dateien und die Gesamtspeichergröße anzeigen zu lassen.
PowerShell-Skript:
Clear-Host $dir = "C:\Windows\System32\CertLog" Get-ChildItem –force $dir –Recurse -ErrorAction SilentlyContinue | measure Length -s -ErrorAction SilentlyContinue | Select-Object -Property ` @{l='Directory';e={$dir}}, ` @{l='Subfolder';e={(Get-ChildItem $dir -Directory | Measure-Object).count}}, ` @{l='Files';e={(Get-ChildItem $dir -File| Measure-Object).count}}, ` @{l="Size(GB)";e={[math]::Round((($_.Sum)/1GB),2)}}
Ausgabe:
Wie zu sehen ist, ist die Anzahl der enthaltenen Dateien des Standardpfades ungewöhnlich „hoch“. Vor allem in Hinblick darauf, dass die Dateianzahl eigentlich täglich zurückgesetzt werden müssten und eine Windows-PKI hat in der Regel keine Notwendigkeit, innerhalb eines Tages so viele Protokolldateien anzulegen. Zusätzlich ist die Gesamtspeichergröße des Standardpfades ebenfalls deutlich „erhöht“.
Problemlösung (Workaround)
Die Protokolldateien der Windows-PKI können zum Glück ganz simpel, im laufenden Betrieb reduziert werden. Hierzu wird eine Sicherung der Protokolldateien manuell gestartet.
PowerShell-Befehl:
Backup-CARoleService D:\_Backup ` #e.g. 'D:\Backup\certsrv' -Password (Read-Host -prompt "Password:" -AsSecureString)
Nach dem Ausführen des PowerShell-Befehls (mit administrativer Berechtigung), werden alle Protokolldateien eingesammelt und in die *.edb- Datenbank geschrieben. Anschließend werden alle aufgelaufenen Protokolldateien in dem Standardpfad entfernt.
Ergebnis
Ist die Sicherung der Protokolldateien erfolgreich erstellt, dann ist die Anzahl und aber auch die Gesamtgröße des Standardpfads zurückgesetzt, wie im folgenden Ergebnisbeispiel.
Anschließend ist auch die *.edb- Datenbank etwas ihrer Dateigröße angewachsen.
Schlusswort
Das hier beschriebene Problem soll wohl nur Windows Server 2016 und älter betreffen. Ab Windows Server 2019 soll das Verhalten der Protokolldateien geändert worden sein. Sprich, sobald eine Sicherung durchgeführt wird, werden alle nicht verwendeten Protokolldateien bereinigt und gelöscht.
Leider konnte ich bislang hierzu keinerlei offizielle Quelle seitens Microsoft ausfindig machen. Ich habe den einzigen Hinweis aus einem anderen Blog entnehmen können: Backing up ADCS Certificate Authorities (Part 1 of 2) – PKI Solutions Inc.
Aktuell habe ich keinen Zugriff auf einen Windows Server 2019 mit installierter Windows-PKI (Zertifizierungsstelle) zur Hand, um zu prüfen, ob hier das Problem noch immer besteht oder nicht…
Dennoch ist mit dieser einfachen Methode, die Bereinigung der Protokolldateien schnell und unkompliziert erledigt.
VIEL ERFOLG!
!UPDATE! vom 22.03.2022
Seit Veröffentlichung des Beitrages ist mir beim betreffenden Windows-PKI Servers aufgefallen, dass täglich eine neue Protokolldatei mit einer Dateigröße von 1.024KB erstellt wird. Sprich, täglich kommt eine +1 Protokolldatei hinzu.