Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Make by tools (01.00.01) - action=clean_corrupted_html
Scroll Ignore
scroll-pdftrue
scroll-officetrue
scroll-chmtrue
scroll-docbooktrue
scroll-eclipsehelptrue
scroll-epubtrue
scroll-htmlfalse
Panel
titleSommaire

Table of Contents
stylenone

Contexte

Le check Services Matching Service [ $KEY$ ] State by WinRM permet de vérifier le status d’un service Windows. Il permet ainsi de s’assurer que les services supervisés sont bien dans l’état attendu.

Le check utilise une donnée Duplicate Foreach qui permet de générer automatiquement le check pour chaque service à superviser.


Panel

Image RemovedImage Added

Paramétrage

Code Block
languagebash
themeEmacs
$WINDOWS-BY-WINRM__SHINKEN__PLUGINSDIR$/check_windows_health_by_winrm_rust --check check_servicesservice_matchingstate
    --hostname "$HOSTADDRESS$"
    --port "$_HOSTWINDOWS_BY_WINRM__PORT$"
    --username "$_HOSTWINDOWS_BY_WINRM__DOMAINUSER$" 
    --password "$_HOSTWINDOWS_BY_WINRM__DOMAINPASSWORD$"
    --auth_method "$_HOSTWINDOWS_BY_WINRM__AUTHMETHOD$"
    --timeout "$_HOSTWINDOWS_BY_WINRM__TIMEOUT$"
    -n "$ARG1$"
    -e "$_SERVICEWINDOWS_BY_WINRM__SERVICES-MATCHING__EXPECTED-STATE$$ARG2$"

Données utilisées provenant des modèles

Données communes pour les checks des modèles

Excerpt Include
Modèle windows-by-WinRM__base
Modèle windows-by-WinRM__base
nopaneltrue

Données spécifiques pour ce check

Aucune données spécifique pour ce check.

Données DFE ( Duplicate Foreach )

DonnéeDescriptionExemple
NomModifiable surUnitéValeur par défautDescription
No Format
WINDOWS_BY_WINRM__
SERVICES
SERVICE-
MATCHING
STATE__
EXPECTED
SERVICE-TO-
STATE

l'Hôte

( Onglet Données )

-

RunningDéfinit
CHECK

Définit une paire KEY$(VALUE)$.

  • KEY correspond au nom du service à superviser.
  • VALUE correspond à l'état attendu du service
. Elle peut prendre une des valeurs suivantes
  • à superviser.
    • Les valeurs possibles sont :
      • Stopped
      • Start Pending
      • Stop Pending
      • Running
      • Continue Pending
      • Pause Pending
      • Paused
Données DFE

WinRM$(

Duplicate Foreach )
DonnéeDescriptionExemple
No Format
WINDOWS_BY_WINRM__SERVICES-MATCHING__SERVICES-TO-CHECK

Définit une paire KEY$(VALUE)$, la KEY correspond à la description du service à vérifier et la VALUE au nom du service.

Cette valeur accepte les wildcards* 

win$(WinRM)Running)$




Note
iconfalse

Modifier les données accrochées à l'hôte affectera l'ensemble des checks dupliqués.
Afin de paramétrer individuellement chaque checks, il est possible de surcharger les données des checks.

Info

En cas de difficulté pour identifier les services à superviser, il est possible de rechercher leur noms depuis l'application services.msc.
Les services ont un nom unique, et un nom d'affichage. Les étapes ci-dessous expliquent comment récupérer le nom unique, qui est utilisé pour configurer le check.

  • Ouvrir la fenêtre d'exécution avec le raccourcis "Windows" + "R"
  • Rentrer "services.msc" puis cliquer sur OK.

    Panel

    Image Added

  • Une nouvelle fenêtre s'affiche avec l'ensemble des services supervisable sur votre machine.
  • Recherche le service voulu parmis la liste
  • Une fois trouvé, cliquer droit dessus, puis "propriétés"
  • Le nom de service unique apparait en première propriété de l'onglet Général

    Panel

    Image Added

Données utilisées provenant du check

Pas de données provenant du check pour ce modèle.

Excerpt Include
Uptime by WinRM
Uptime by WinRM
nopaneltrue

Résultat

Exemple

Panel
Image Removed

Image Added

Interprétation

  • Il peut prendre trois valeurs    OK  /  CRITIQUE  /   INCONNU  

    • Voici un tableau récapitulatif du statut attendu suivant le retour de sonde :

Situation Statut Exemple
Le service est dans l’état attendu défini par la variable WINDOWS_BY_WINRM__
SERVICES
SERVICE-
MATCHING
STATE__
EXPECTED
SERVICE-TO-
STATE
CHECK. ($VALUE2$)OK
Panel
Image Removed

Image Added

Le service n’est pas dans l’état attendu défini par la variable WINDOWS_BY_WINRM__
SERVICES
SERVICE-
MATCHING
STATE__
EXPECTED
SERVICE-TO-
STATE
CHECK. ($VALUE2$)CRITIQUE  
Panel

Image Removed

Le service n’a pas été trouvé sur le système cible. INCONNU 
Panel

Image Removed

Accès refusé lors de la tentative d’interrogation du service. INCONNU 
Panel

Image Removed

Image Added

Résultat

Le résultat contient un message indiquant le statut du check.

Résultat Long

Pas de résultat long.

Métriques

Aucune métrique n'est renvoyée pour ce check.

Erreurs et pré-requis

Erreurs de configuration de l'hôte supervisé ( spécifique à ce check )

Excerpt
Section

MONITORED HOST - BAD STATE - Access denied

Section

L'utilisateur de supervision ne dispose pas des droits nécessaires pour interroger l’état du service cible.


Panel

Image RemovedImage Added



Section
Résolution
Modifier le SDDL ( Security Descriptor Definition Language )
CC → SERVICE_QUERY_CONFIG
LC → SERVICE_QUERY_STATUS
SW → SERVICE_ENUMERATE_DEPENDENTS
LO → SERVICE_INTERROGATE
RC → READ_CONTROL
Ces permissions correspondent aux droits de lecture du service (équivalent à GENERIC_READ). Les scripts de configuration fournis appliquent automatiquement cette permission afin de permettre au check d’interroger correctement le statut d'un service. Pour avoir plus d'informations sur ces permissions, consulter la documentation officielle de Microsoft en cliquant ici.Appliquer la nouvelle configuration.
Une fois le SDDL modifié, l’appliquer avec :
Section
Info

La résolution de ce problème doit se faire en mode Administrateur sur un terminal PowerShell.

Récupérer le SID de l'utiliateur ou du groupe associé à la supervision.
Executer la commande suivante : 
Code Block
languagetext
themeEmacs
(New-Object System.Security.Principal.NTAccount("DOMAINE\Utilisateur")).Translate([System.Security.Principal.SecurityIdentifier]).Value
Info
  • Pour un compte Active Directory, remplacer DOMAINE\Utilisateur par la valeur appropriée.

  • Pour un compte local, utiliser :

    • NomDuServeur\UtilisateurLocale
    • ou simplement UtilisateurLocale

Conserver le SID retourné, il sera utilisé dans les étapes suivantes. 

Exemple :
Panel

Image Removed

Afficher la configuration de sécurité du service :
Exécuter :
Code Block
languagetext
themeEmacs
sc.exe sdshow "NomDuService"
Exemple :
Panel

Image Removed

La commande retourne le SDDL complet du service. 

Modifier la DACL du service.
Copier le résultat retourné parsc.exe sdshow.
Dans la section commençant par "D:", ajouter l’entrée suivante juste avant la section "S:"
Code Block
languagetext
themeEmacs
(A;;CCLCSWLORC;;;<USER_SID>)
Remplacer <USER_SID> par le SID récupéré précedement.

Exemple de SDDL modifié :

Panel

D:(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;LC;;;S-1-5-21-2583679208-1579500244-1739850223-1006)(A;;CCLCSWLORC;;;S-1-5-21-2583679208-1579500244-1739850223-1009)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)

Info
Code Block
languagetext
themeEmacs
sc.exe sdset "NomDuService" "<SDDL_MODIFIE>"
Exemple :
Panel

Image Removed

Warning

Attention : une erreur dans le SDDL peut rendre le service inaccessible. Nous vous recommandons donc de conserver l'ancien SDDL afin de pouvoir revenir en arrière si nécessaire.


L'utilisateur de supervision doit avoir accès en lecture au service supervisé.

Dans le pack sont livrés des scripts permettant l'opération : Configuration du Windows supervisé pour le pack windows-by-WinRM__shinken

Section

MONITORED HOST - BAD STATE - Service "..." does not exist as an installed service.

Section
Le service n’a pas été trouvé sur le système cible.


Panel

Image RemovedImage Added

Excerpt Include
Erreurs du pack windows-by-WinRM__shinken
Erreurs du pack windows-by-WinRM__shinken
nopaneltrue

...