sqlinsight-pro/docs/fejllog.md
Søren Eggert Lundsteen Olsen e6840e40d7 SQL Server error log without elevated rights (8a)
A five-minute collector reads important error log entries from the best
source the agent's rights allow: the error log itself (xp_readerrorlog,
only with securityadmin), the default trace's ErrorLog and Audit Login
Failed events (optional ALTER TRACE), or the exception and connectivity
ring buffers (VIEW SERVER STATE: numbers and severity, failed logins).
Repetitions are summed per error; the watermark is the newest entry
read, because the default trace is buffered. Stored in
insight.ErrorLogEvents (migration 0013, EventDays), resumed after restart.

Rules SQLI-LOG-001..006: corruption 823/824/825, I/O over 15 s (833),
severe errors (17+), login failure bursts (configurable), stack dumps and
AG errors; rules needing the log text are "not measurable" with the
right to grant. Page /instanser/{navn}/fejllog (menu Overvågning) and
GET /api/v1/instances/{name}/error-log with messages redacted.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
2026-10-02 10:30:41 +02:00

30 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SQL Servers fejllog
SQLInsight Pro læser vigtige hændelser fra SQL Servers fejllog hvert 5. minut og samler gentagelser: samme fejl flere gange bliver én linje med antal, første og seneste tidspunkt og et eksempel. Siden **Fejllog** (menuen Overvågning, eller knappen på instansens side) viser hændelserne for 1–90 dage, og de findes i API'et: `GET /api/v1/instances/{navn}/error-log?days=7` (eksemplet er `[udeladt]` uden `ApiIncludesSensitiveEvidence`).
## Hvad ses, med hvilke rettigheder
Agenten har ikke adgang til selve logfilen. Den bruger den bedste kilde, rettighederne giver:
| Kilde | Rettighed | Hvad ses |
|---|---|---|
| Fejlloggen (`xp_readerrorlog`) | `securityadmin` (gives **ikke** som standard) | Alt, også langsom I/O (833), læsegentagelser (825) og stack dumps |
| Default trace (hændelserne ErrorLog og Audit Login Failed) | `ALTER TRACE` (valgfri i `grant-least-privilege.sql`) | Fejl med severity 20 og derover med tekst, og mislykkede logins med login og klientadresse |
| Ring buffers (`sys.dm_os_ring_buffers`) | `VIEW SERVER STATE` (har agenten altid) | Fejlnumre og severity fra motorens exceptions (fx 823/824, 701) og mislykkede logins (2008+) – uden tekst |
Kan en regel ikke vurderes med den kilde, agenten har, er den "ikke målbar" med årsagen: 833 og stack dumps kræver selve fejlloggen.
## Regler
| Regel | Alvor | Hvornår |
|---|---|---|
| SQLI-LOG-001 | Kritisk (823/824), Høj (825) | Beskadigede sider eller læsninger, der måtte gentages |
| SQLI-LOG-002 | Høj | I/O over 15 sekunder (833) |
| SQLI-LOG-003 | Middel (severity 17–19), Høj (20+) | Andre alvorlige fejl |
| SQLI-LOG-004 | Middel | Mindst 20 mislykkede logins inden for en måling (5 minutter); `SQLInsight:ErrorLog:LoginFailureBurst` |
| SQLI-LOG-005 | Høj | Stack dumps |
| SQLI-LOG-006 | Høj | Fejl i Always On availability groups |
Fund er åbne i et døgn efter seneste forekomst. Fejlmeddelelser kan indeholde loginnavne og klientadresser: eksemplet er en følsom måling, som ikke sendes til SQLInsight Hub. Hændelserne gemmes lokalt i `EventDays` (standard 90 dage).
SQL Server skriver default trace i buffere, så en hændelse kan først blive læsbar et par minutter efter; agenten fortsætter fra den nyeste hændelse, den har læst, så intet springes over.