Windows Event Log Baseline
🤖 Generated with Claude Code
Co-Authored-By: Claude (noreply@anthropic.com)
Windows-Events werden via Azure Monitor Agent (AMA / Azure Arc Extension) und Data Collection Rules (DCR) an Log Analytics geliefert. Ziel ist eine betrieblich sinnvolle Startmenge, die Störungen sichtbar macht ohne das Workspace unnötig mit Events zu fluten.
Grundsätze​
| Log | Severity | Erfassen |
|---|---|---|
| System | Critical, Error, Warning | Ja |
| Application | Critical, Error, Warning | Ja |
| Security | — | Nein — nur gezielt per EventID |
| Application | Information | Nein — nur befristet für Troubleshooting |
| Alle | Verbose | Nein |
Pro Serverrolle eine eigene DCR. AMA/DCR unterstĂĽtzt Auswahl nach Severity und XPath-Filter.
Start-Baseline nach Rolle​
Webserver (IIS)​
| Log | Filter |
|---|---|
| System | Critical, Error, Warning |
| Application | Critical, Error, Warning |
Zusätzlich gezielt:
| Provider | EventID | Zweck |
|---|---|---|
Microsoft-Windows-WAS | 5011 | App-Pool-Absturz |
Application Error | 1000 | Anwendungsfehler |
.NET Runtime | 1026 | .NET-Prozessabsturz |
HTTP-Request-Details, Statuscodes und Request-Volumen gehören in IIS-Logs (
W3CIISLog), nicht in Windows Event Logs.
App-Server​
| Log | Filter |
|---|---|
| System | Critical, Error, Warning |
| Application | Critical, Error, Warning |
Zusätzlich gezielt: Application Error / 1000, .NET Runtime / 1026, eigene fachliche Provider der eingesetzten Services (nur wenn Events betrieblich verwertbar).
DB-Server​
| Log | Filter |
|---|---|
| System | Critical, Error, Warning |
| Application | Critical, Error, Warning — möglichst eingeschränkt auf SQL-Provider |
SQL-Provider: MSSQLSERVER bzw. MSSQL$<Instanz>, SQLSERVERAGENT bzw. SQLAgent$<Instanz>.
Erfolgreiche SQL-Agent-Jobs nicht ins Windows Application Log schreiben — erzeugt unnötiges Volumen.
ADFS-Server​
| Log | Filter |
|---|---|
| System | Critical, Error, Warning |
| Application | Critical, Error, Warning |
| AD FS/Admin | Critical, Error, Warning |
Zusätzlich gezielt:
| Provider / Log | EventID | Zweck |
|---|---|---|
AD FS/Admin | 364 | Zertifikat läuft ab (Token-Signing / Decrypting) |
AD FS/Admin | 168 | Relying-Party-Trust-Fehler |
AD FS/Admin | 1021 | Token-Validierung fehlgeschlagen |
AD FS Auditing | 1200 | Token erfolgreich ausgestellt (Sampling — Volume beobachten) |
AD FS Auditing | 1202 | Token-Ausstellung fehlgeschlagen |
AD FS Auditing | 403 | Authentifizierung fehlgeschlagen |
Application Error | 1000 | Anwendungsfehler |
.NET Runtime | 1026 | .NET-Prozessabsturz |
Microsoft-Windows-WAS | 5011 | App-Pool-Absturz (ADFS läuft auf IIS) |
ADFS ist das Authentifizierungs-Gateway — Security-Events (4624, 4625, 4740) haben hier höheren operativen Wert als auf normalen Webservern. Die Security-EventIDs aus dem gemeinsamen Baseline gelten hier ebenfalls, ergänzt um 4624 (erfolgreiche Anmeldung — Sampling bei hohem Volumen).
Security​
Security-Log nicht pauschal nach Severity sammeln. Start mit diesen EventIDs:
| EventID | Bedeutung |
|---|---|
| 1102 | Audit Log gelöscht |
| 4625 | Fehlgeschlagene Anmeldung |
| 4719 | Audit Policy geändert |
| 4740 | Konto gesperrt |
XPath-Filter pro DCR​
Web (dcr-tis-<env>-eventlogs-web)​
System!*[System[(Level=1 or Level=2 or Level=3)]]
Application!*[System[(Level=1 or Level=2 or Level=3)]]
# IIS-spezifisch
System!*[System[Provider[@Name='Microsoft-Windows-WAS'] and (EventID=5011)]]
Application!*[System[Provider[@Name='Application Error'] and (EventID=1000)]]
Application!*[System[Provider[@Name='.NET Runtime'] and (EventID=1026)]]
Security!*[System[(EventID=1102 or EventID=4625 or EventID=4719 or EventID=4740)]]
App (dcr-tis-<env>-eventlogs-app)​
System!*[System[(Level=1 or Level=2 or Level=3)]]
Application!*[System[(Level=1 or Level=2 or Level=3)]]
# Anwendungsfehler und .NET-Absturz
Application!*[System[Provider[@Name='Application Error'] and (EventID=1000)]]
Application!*[System[Provider[@Name='.NET Runtime'] and (EventID=1026)]]
Security!*[System[(EventID=1102 or EventID=4625 or EventID=4719 or EventID=4740)]]
DB (dcr-tis-<env>-eventlogs-db)​
System!*[System[(Level=1 or Level=2 or Level=3)]]
# Application — eingeschränkt auf SQL-Provider
# Bei benannten Instanzen: MSSQL$<Instanz> / SQLAgent$<Instanz> ergänzen
Application!*[System[(Level=1 or Level=2 or Level=3) and (Provider[@Name='MSSQLSERVER'] or Provider[@Name='SQLSERVERAGENT'])]]
Security!*[System[(EventID=1102 or EventID=4625 or EventID=4719 or EventID=4740)]]
ADFS (dcr-tis-prod-eventlogs-adfs)​
System!*[System[(Level=1 or Level=2 or Level=3)]]
Application!*[System[(Level=1 or Level=2 or Level=3)]]
# AD FS Admin — Critical, Error, Warning
AD FS/Admin!*[System[(Level=1 or Level=2 or Level=3)]]
# AD FS Admin — gezielte Events (Zertifikat, RP-Trust, Token-Validierung)
AD FS/Admin!*[System[(EventID=364 or EventID=168 or EventID=1021)]]
# AD FS Auditing — Token-Ausstellung und Auth-Fehler
AD FS Auditing!*[System[(EventID=1200 or EventID=1202 or EventID=403)]]
# IIS-Unterbau (ADFS läuft auf IIS)
System!*[System[Provider[@Name='Microsoft-Windows-WAS'] and (EventID=5011)]]
Application!*[System[Provider[@Name='Application Error'] and (EventID=1000)]]
Application!*[System[Provider[@Name='.NET Runtime'] and (EventID=1026)]]
# Security — gemeinsamer Baseline + 4624 für ADFS
Security!*[System[(EventID=1102 or EventID=4624 or EventID=4625 or EventID=4719 or EventID=4740)]]
Hinweis: EventID 1200 (Token ausgestellt) kann bei hohem Volumen deaktiviert oder per Sampling reduziert werden. Nach 1–2 Wochen Volumen auswerten.
Betriebsmodell​
- Pro Rolle eigene DCR anlegen
- Mit der Minimal-Baseline starten
- Nach 1–2 Wochen: Volumen und operativen Nutzen auswerten
- Events ohne Alarm- oder Diagnosewert entfernen
- Information nur befristet und gezielt fĂĽr Troubleshooting zuschalten