Sommaire

Contexte

Le check Certificate Expiration [ $KEY$ ] by WinRM permet de superviser l'expiration

Il est configurable pour renvoyer un status CRITIQUE  /  ATTENTION si le nombre de jours restants avant l'expiration du certificat supervisé passe en dessous des seuils.

Le check utilise une donnée Duplicate Foreach ( DFE ) qui permet de générer plusieurs fois le check pour chaque certificat à superviser.

Paramétrage

$WINDOWS-BY-WINRM__SHINKEN__PLUGINSDIR$/check-windows-certificate-expiration.py
    -H "$HOSTADDRESS$"
    -u "$_HOSTWINDOWS_BY_WINRM__DOMAINUSER$"
    -p "$_HOSTWINDOWS_BY_WINRM__DOMAINPASSWORD$"
    -M "$_HOSTWINDOWS_BY_WINRM__AUTHMETHOD$"
    -m certificate_expiration
    -T "$ARG1$"
    -N "$ARG2$"
    -w "$_SERVICEWINDOWS_BY_WINRM__CERTIFICATE-EXPIRATION__EXPIRATION-WARN$"
    -c "$_SERVICEWINDOWS_BY_WINRM__CERTIFICATE-EXPIRATION__EXPIRATION-CRIT$"

Données utilisées provenant des modèles

Données communes pour les checks des modèles

NomModifiable surValeur par défautDescription
WINDOWS_BY_WINRM__AUTHMETHOD

l'Hôte

( Onglet Données )

ntlm

Méthode d'authentification utilisé.

Valeurs possibles : basic, ntlm

WINDOWS_BY_WINRM__DOMAINPASSWORD

l'Hôte

( Onglet Données )

Ch4nge_Th1s_P4ssw0rd

Mot de passe de l'utilisateur de supervision
WINDOWS_BY_WINRM__DOMAINUSER

l'Hôte

( Onglet Données )

shinken_user

Nom complet de l'utilisateur de supervision utilisé pour exécuter des commandes à distance.
Voici quelques exemples :

  • mon_utilisateur
  • mon_domaine\\mon_utilisateur
  • mon_utilisateur@mon_domaine


WINDOWS_BY_WINRM__PORT

l'Hôte

( Onglet Données )

5985

Port de connexion au serveur WinRM de l'hôte à superviser.
WINDOWS_BY_WINRM__TIMEOUT

l'Hôte

( Onglet Données )

20

Temps maximum sans réponse d'une requête WinRM pour que la sonde renvoi un statut INCONNU.

Données spécifiques pour ce check

NomModifiable surUnitéValeur par défautDescription
WINDOWS_BY_WINRM__CERTIFICATE-EXPIRATION__EXPIRATION-CRIT

l'Hôte

( Onglet Données )

jours30Seuil d'expiration en jours en dessous duquel un status CRITIQUE est déclenché
WINDOWS_BY_WINRM__CERTIFICATE-EXPIRATION__EXPIRATION-WARN

l'Hôte

( Onglet Données )

jours60

Seuil d'expiration en jours en dessous duquel un status ATTENTION est déclenché

Données DFE ( Duplicate Foreach )

DonnéeDescriptionExemple
WINDOWS_BY_WINRM__CERTIFICATE-EXPIRATION__STORE-AND-CERTIFICATE

Définit une paire KEY$(VALUE_A)$$(VALUE_B)$.

  • KEY est utilisé pour adapter dynamiquement le nom du check
  • VALUE_A correspond au magasin de certificat dans lequel chercher le certificat à superviser.
    • Les valeurs possibles sont :
      • LocalMachine
      • CurrentUser
  • VALUE_B correspond au nom du certificat à trouver.

WindowsRootCert$(LocalMachine)$$(Microsoft Root Certificate Authority 2010)$,

Domain$(LocalMachine)$$(MyDomainName.com)$




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.

En cas de difficulté pour identifier les certificats à superviser, ils peuvent être recherchés depuis la console MMC.

https://learn.microsoft.com/en-us/windows-hardware/drivers/install/certificate-stores#how-to-use-the-contents-of-the-certificate-store




Données utilisées provenant du check

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

Données globales

NomModifiable surUnitéDéfautValeur par défaut à l'installationDescription
USERPLUGINSDIR

Non modifiable

( Sauf Admin Shinken )

--/var/lib/shinken/libexec /var/lib/shinken/libexec

Chemin absolu contenant les sondes installés par Shinken

WINDOWS-BY-WINRM__SHINKEN__VENDOR

Non modifiable

( Sauf Admin Shinken )

--shinken-additional-packs shinken-additional-packs

Dossier fournit par shinken

WINDOWS-BY-WINRM__SHINKEN__PACKNAME

Non modifiable

( Sauf Admin Shinken )

--windows-by-WinRM__shinkenwindows-by-WinRM__shinken

Dossier contenant les sondes

WINDOWS-BY-WINRM__SHINKEN__PLUGINSDIR

Non modifiable

( Sauf Admin Shinken )

--
USERPLUGINSDIR/WINDOWS-BY-WINRM__SHINKEN__VENDOR/WINDOWS-BY-WINRM__SHINKEN__PACKNAME
/var/lib/shinken-user/libexec/shinken-additional-packs/windows-by-WinRM__shinken

Chemin absolu du dossier contenant les sondes du pack windows-by-WinRM__shinken ( non modifiable )

Propriétés de l'hôte

NomModifiable surUnitéDéfautValeur par défautDescription
HOSTADDRESS

l'Hôte

( Onglet Général )

--

Nom de l'hôte Nom de l'hôte

Adresse de l'hôte

Résultat

Exemple

Interprétation

  • Il peut prendre quatre valeurs    OK  /  CRITIQUE  /  ATTENTION   /   INCONNU  

    • Le statut va dépendre du retour de sonde et de la configuration spécifique du check pour les données suivantes :

      • WINDOWS_BY_WINRM__CERTIFICATE-EXPIRATION__EXPIRATION-CRIT
      • WINDOWS_BY_WINRM__CERTIFICATE-EXPIRATION__EXPIRATION-WARN
    • Voici un tableau récapitulatif du statut attendu suivant le retour de sonde :

Le texte de la colonne  "Affichage des seuils" montre les paramètres utilisés et leur valeur définie sur l'équipement supervisé.

Situation

Statut

Exemple

  • La date d'expiration du certificat supervisé est inferieur ou égale à WINDOWS_BY_WINRM__CERTIFICATE-EXPIRATION__EXPIRATION-CRIT

CRITIQUE

  • La date d'expiration du certificat supervisé est inferieur ou égale à WINDOWS_BY_WINRM__CERTIFICATE-EXPIRATION__EXPIRATION-WARN

ATTENTION


  • Aucun certificat n'a été trouvé

INCONNU


  • Le magasin de certificat demandé n'est pas valide

INCONNU

Résultat

Le résultat contient un message indiquant le status et la date d'expiration du certificat supervisé.

Résultat long

Pas de résultat long.

Métriques

Pas de métriques.

Erreurs et pré-requis

Erreurs de connexion ( communes à tous les checks )


UNKNOWN – Transport error : failed to send request: request timed out

L’hôte supervisé a mis trop de temps à répondre à la requête.

Note : ce problème peut également provenir d’un mauvais port configuré, d’un port fermé sur l’hôte supervisé, ou si le service WinRM est stoppé sur l'hôte supervisé.

Résolution :

La commande ci dessous permet de voir l'état du service WinRM :

Get-Service WinRM


Il est possible de le démarrer ou de le configurer pour se lancer automatiquement avec les commandes suivantes :

# Redémarrer le service WinRM :
Restart-Service WinRM

# Configurer le démarrage automatique
Set-Service -Name WinRM -StartupType Automatic

UNKNOWN – Transport error : sent request failed: connection refused

L'hôte à refusé la connection ; ou bien son pare-feu.

  • Il se peut que vôte service WinRM ne soit pas lancé
  • ou que votre pare-feu ne soit pas configuré.


UNKNOWN – Transport error : sent request failed: host is not reachable

L'hôte n'a pas pu recevoir la requête. Vérifiez votre réseau, routeur, pare-feu et nom d'hôte.

UNKNOWN – Transport error : sent request failed: DNS resolution failed

Le nom de l’hôte n’a pas pu être résolu. Vérifiez que l’adresse renseignée est correcte et que le serveur DNS est accessible.

UNKNOWN – Transport error : failed to build request: given uri is invalid

Le nom de l’hôte n'est pas une URI valide. Vérifiez que l’adresse renseignée est correcte.

UNKNOWN – Authentication NTLM failed : NTLM is not supported by the server

NTLM n'est pas activé sur l'hôte à superviser.

Résolution :

Vous pouvez :

  • Activer NTLM sur l'hôte supervisé avec la commande suivante :

    winrm set winrm/config/service/auth '@{Negotiate="true"}'
  • Choisir un autre mode d'authentification, en modifiant la donnée "WINDOWS_BY_WINRM__AUTHMETHOD"

UNKNOWN – Authentication NTLM failed : Unauthorized

La connexion NTLM n'a pas été autorisé. Les raisons possibles sont :

  • Le couple utilisateur / mot de passe n'est pas valide
  • L'utilisateur n'existe pas
  • Winrm n'a pas été configuré avec la commande :

    winrm quickconfig
  • L'utilisateur n'appartient pas aux groupes nécessaires aux permissions WinRM


Résolution :


Il faut s'assurer d'avoir correctement appliqué les configurations décrites dans les sections "Configuration de WinRM" et "Configuration de l'utilisateur" ( Voir la page Configuration du Windows supervisé pour le pack windows-by-WinRM__shinken ).

UNKNOWN – Authentication Basic failed : Basic is not supported by the server

L'authentification basic n'est pas activé sur l'hôte à superviser.

Résolution :

Vous pouvez :

  • Activer Basic sur l'hôte supervisé avec la commande suivante, et autoriser les communications non chiffrées :

    winrm set winrm/config/service/auth '@{Basic="true"}'
    winrm set winrm/config/service '@{AllowUnencrypted="true"}'
  • Choisir un autre mode d'authentification, en modifiant la donnée "WINDOWS_BY_WINRM__AUTHMETHOD"

UNKNOWN – Authentication Basic failed : Unauthorized

La connexion basic n'a pas été autorisé. Les raisons possibles sont :

  • Le couple utilisateur / mot de passe n'est pas valide
  • L'utilisateur n'existe pas
  • Winrm n'a pas été configuré avec la commande :

    winrm quickconfig
  • L'utilisateur n'appartient pas aux groupes nécessaires aux permissions WinRM


Résolution :


Il faut s'assurer d'avoir correctement appliqué les configurations décrites dans les sections "Configuration de WinRM" et "Configuration de l'utilisateur" ( Voir la page Configuration du Windows supervisé pour le pack windows-by-WinRM__shinken ).

Erreurs de configuration de l'hôte à superviser ( communes à tous les checks )

UNKNOWN – Response fault error: Code: s:Sender, Subcode: w:AccessDenied, Reason: Access is denied.

L'utilisateur utilisé n'a pas accès à l'éxécution de commandes à distances.

Résolution :

Il est important de donner les accès "Read" et "Invoke" à l'utilisateur de supervision afin qu'il puisse lire des ressources et éxécuter des commandes sur l'hôte supervisé.

Il faut s'assurer d'avoir correctement appliqué la configuration décrite dans la section "Permissions WinRM pour l'utilisateur" ( Voir la page Configuration du Windows supervisé pour le pack windows-by-WinRM__shinken ).

MONITORED HOST - BAD STATE – Command execution Failed. Permission denied.

L'utilisateur utilisé n'a pas accès aux objets CIM, necessaire à la supervision de la machine.

Résolution :

Il est necessaire de donner les accès à distance aux objets CIMv2 et StandardCimv2.

Il faut s'assurer d'avoir correctement appliqué la configuration décrite dans la section "Autorisation aux objets CIM" ( Voir la page Configuration du Windows supervisé pour le pack windows-by-WinRM__shinken ).

UNKNOWN – Command execution Failed. [...] Provider failure

L'utilisateur utilisé n'a pas accès aux objets CIM. Les permissions sont en cours d'application.

Résolution :


L'erreur survient après la modification des droits aux objets CIM de l'utilisateur. Il suffit d'attendre ou de redémarrer la machine afin que les permissions s'actualisent.