One reviewable file per rule id with a Danish header: what and why, thresholds with config keys and defaults, severity, required rights (never local administrator), supported versions, collector file and member, and the evaluation in plain Danish. The Windows rules use no SQL: their exact CIM/WQL queries, event log XPath and a read-only PowerShell snippet to verify them are in a comment block. SQLI-SYN-001/002 carry the exact SQL a SQL check runs (session settings, transaction that is always rolled back, SELECT 1). A test checks every server and check rule has its file. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
41 lines
2.2 KiB
SQL
41 lines
2.2 KiB
SQL
/*
|
||
SQLI-WIN-008 – En overvåget tjeneste kører ikke
|
||
================================================
|
||
|
||
Hvad og hvorfor
|
||
Tjenester, der er valgt for serveren i SQLInsight Web (fx AOS60$01 for Dynamics AX, W3SVC for IIS, MSSQLSERVER),
|
||
skal køre uanset starttype. Når de ikke gør, er det, de leverer, ikke tilgængeligt. SQLInsight starter aldrig selv tjenester.
|
||
|
||
Tærskler
|
||
Listen pr. server: "Overvågede tjenester" (insight.WindowsServers.WatchedServices), sat i SQLInsight Web eller API v1.
|
||
SQLInsight:Servers:Services:StartupGraceMinutes standard 15 (ingen fund de første minutter efter en genstart)
|
||
|
||
Alvor
|
||
Høj når tjenesten ikke kører; Middel når den ikke findes (eller ikke kan ses).
|
||
|
||
Rettigheder på den overvågede server (db/permissions/grant-windows-server.ps1, aldrig lokal administrator)
|
||
WMI Enable Account/Remote Enable på root\cimv2 + læseret (CC LC RP RC) på Service Control Manager
|
||
WS-Man: Remote Management Users · DCOM: Distributed COM Users
|
||
|
||
Understøttede versioner
|
||
Windows Server 2008 R2 og nyere.
|
||
|
||
Collector
|
||
src/SQLInsight.Servers/CimWindowsServerSource.cs – Session.GetServicesAsync (CimQueries.ServiceQuery), hvert 5. minut fra
|
||
src/SQLInsight.Agent/Servers/ServerMonitor.cs – CollectServicesAsync.
|
||
Regel
|
||
src/SQLInsight.Rules/Servers/WindowsServerRules.cs – WatchedServiceRule
|
||
|
||
Evaluering
|
||
For hvert navn på listen findes tjenesten på navn eller visningsnavn. Findes den ikke: fund (Middel). Er State ikke
|
||
'Running': fund (Høj). Uden liste: "ikke relevant".
|
||
|
||
Reglen bruger ikke SQL. Forespørgslerne mod Windows står herunder; filen indeholder kun kommentarer og ændrer intet.
|
||
|
||
CIM/WQL (namespace root\cimv2):
|
||
SELECT Name, DisplayName, State, StartMode, DelayedAutoStart, ExitCode FROM Win32_Service
|
||
SELECT Name, DisplayName, State, StartMode, ExitCode FROM Win32_Service WHERE Name = '<tjeneste>' (syntetiske tjek)
|
||
|
||
Efterprøv med PowerShell (skrivebeskyttet; kør på agentens server som agentens konto):
|
||
Get-CimInstance -ComputerName SERVER -Query "SELECT Name, DisplayName, State, StartMode, ExitCode FROM Win32_Service WHERE Name = 'AOS60`$01'"
|
||
*/
|