Contexte
Le check No Files Matching [$KEY$] by WinRM va vérifier qu'aucun fichier ne soit présent dans un répertoire en fonction d'un filtre spécifique. Les requêtes s'effectuent via le protocole WinRM.
Paramétrage
Le check utilise la ligne de commande suivante :
$WINDOWS-BY-WINRM__SHINKEN__PLUGINSDIR$/check_windows_health_by_winrm_rust --check check_files
--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$"
--path "$ARG1$"
--filter "$ARG2$"
-n
Données utilisées provenant du modèle
Données communes pour les checks du modèle
| Nom | Modifiable sur | Valeur par défaut | Description |
|---|---|---|---|
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.
|
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
Les données DFE ( Duplicate Foreach )
| Nom | Modifiable sur | Valeur par défaut | Description |
|---|---|---|---|
WINDOWS_BY_WINRM__EMPTY_FOLDER | l'Hôte ( Onglet Données ) | exemple1$(D:\Users\old-user)$$(*)$ | Chemin vers le répertoire à vérifier et filtre à appliquer, exemple :
|
Données utilisées provenant du check
Pas de données provenant du check
Données globales
| Nom | Modifiable sur | Unité | Défaut | Valeur par défaut à l'installation | Description |
|---|---|---|---|---|---|
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__shinken | windows-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
| Nom | Modifiable sur | Unité | Défaut | Valeur par défaut | Description |
|---|---|---|---|---|---|
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
Statut
Il peut prendre trois valeurs OK / CRITIQUE / INCONNU .
- Voici un tableau récapitulatif du statut attendu suivant le retour de sonde :
| Situation | Statut | Exemple |
|---|---|---|
| CRITIQUE |
|
| CRITIQUE |
|
Résultat
Renvoie le nombre de fichiers détectés ainsi que le répertoire ciblé et le filtre utilisé :
Résultat Long
Pas de résultat long pour ce check.
Métriques
Définition
Nom | Unité | Description | Seuil d'avertissement | Seuil critique |
|---|---|---|---|---|
files_count_( NOM_DOSSIER )( VALEUR_FILTRE ) | -- | Retourne le nombre de fichiers détectés dans le répertoire qui correspondent au filtre indiqué. | -- | -- |
Exemple
Erreurs et pré-requis
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 : Il est possible de le démarrer ou de le configurer pour se lancer automatiquement avec les commandes suivantes : L'hôte à refusé la connection ; ou bien son pare-feu.
L'hôte n'a pas pu recevoir la requête. Vérifiez votre réseau, routeur, pare-feu et nom d'hôte.
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.
Le nom de l’hôte n'est pas une URI valide. Vérifiez que l’adresse renseignée est correcte.
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 : La connexion NTLM n'a pas été autorisée. Les raisons possibles sont : Le mot de passe du compte de supervision a expiré, ou un changement est imposé à la prochaine ouverture de session.
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 de WinRM et du compte de supervision sur une seule machine Windows pour le pack windows-by-WinRM__shinken ). Si la configuration WinRM est correcte, penchez pour une expiration du mot de passe ou un changement imposé. Sur l'hôte supervisé, en session administrateur, exécuter : Repérer les lignes portant le nom du compte de supervision, puis interpréter : Compte expiré (le compte lui-même, pas son mot de passe) Horloges désynchronisées entre l’hôte et le contrôleur de domaine Anomalie Windows connue, sans conséquence (à ignorer) ATTENTION : les deux codes doivent être lus ensemble La cause n’est pas portée par le même champ selon les cas : il faut relever le Status et le Sub Status, et faire correspondre la paire complète au tableau ci-dessus. Si la cause est une expiration ou un changement imposé : Si le code est 0xC000015B : La configuration de l’hôte est incomplète : le compte existe et son mot de passe est valide, mais il n’a pas le droit d’ouverture de session sur cette machine. Rejouez Configure-Host.ps1 en workgroup, ou vérifiez l’application des GPO en domaine. Si le code est 0xC0000133 : Vérifiez la synchronisation horaire de l’hôte supervisé. Le check Ntp Sync by WinRM du pack surveille précisément ce point. 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 : La connexion basic n'a pas été autorisé. Les raisons possibles sont : Winrm n'a pas été configuré avec la commande :
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 de WinRM et du compte de supervision sur une seule machine Windows pour le pack windows-by-WinRM__shinken ). Si la configuration WinRM est correcte, penchez pour une expiration du mot de passe ou un changement imposé. Sur l'hôte supervisé, en session administrateur, exécuter : Repérer les lignes portant le nom du compte de supervision, puis interpréter : Compte expiré (le compte lui-même, pas son mot de passe) Horloges désynchronisées entre l’hôte et le contrôleur de domaine Anomalie Windows connue, sans conséquence (à ignorer) ATTENTION : les deux codes doivent être lus ensemble La cause n’est pas portée par le même champ selon les cas : il faut relever le Status et le Sub Status, et faire correspondre la paire complète au tableau ci-dessus. Si la cause est une expiration ou un changement imposé : Si le code est 0xC000015B : La configuration de l’hôte est incomplète : le compte existe et son mot de passe est valide, mais il n’a pas le droit d’ouverture de session sur cette machine. Rejouez Configure-Host.ps1 en workgroup, ou vérifiez l’application des GPO en domaine. Si le code est 0xC0000133 : Vérifiez la synchronisation horaire de l’hôte supervisé. Le check Ntp Sync by WinRM du pack surveille précisément ce point. 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 de WinRM et du compte de supervision sur une seule machine Windows pour le pack windows-by-WinRM__shinken ). 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 de WinRM et du compte de supervision sur une seule machine Windows pour le pack windows-by-WinRM__shinken ). 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.Erreurs de connexion ( communes à tous les checks )
UNKNOWN – Transport error : failed to send request: request timed out
Get-Service WinRM
# 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
UNKNOWN – Transport error : sent request failed: host is not reachable
UNKNOWN – Transport error : sent request failed: DNS resolution failed
UNKNOWN – Transport error : failed to build request: given uri is invalid
UNKNOWN – Authentication NTLM failed : NTLM is not supported by the server
winrm set winrm/config/service/auth '@{Negotiate="true"}'
UNKNOWN – Authentication NTLM failed : Unauthorized
winrm quickconfig
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
ForEach-Object {
$p = $_.Properties
"{0} account={1,-20} status=0x{2:X8} substatus=0x{3:X8}" -f `
$_.TimeCreated, $p[5].Value, $p[7].Value, $p[9].Value
}
Status Sub Status Cause 0xC000006D 0xC000006A Mot de passe incorrect 0xC000006D 0xC0000064 Le compte n'existe pas 0xC000006E 0xC0000071 Mot de passe EXPIRÉ 0xC0000224 0x00000000 Changement de mot de passe imposé a la prochaine ouverture de session 0xC000015B 0x00000000 Le compte n'a pas le droit « Accéder à cet ordinateur depuis le réseau » 0xC0000234 0x00000000 Compte verrouillé 0xC000006E 0xC0000072 Compte désactivé 0xC0000193 0x00000000 0xC0000133 0x00000000 0xC0000225 0x00000000 UNKNOWN – Authentication Basic failed : Basic is not supported by the server
winrm set winrm/config/service/auth '@{Basic="true"}'
winrm set winrm/config/service '@{AllowUnencrypted="true"}'
UNKNOWN – Authentication Basic failed : Unauthorized
winrm quickconfig
Get-WinEvent -FilterHashtable @{LogName='Security'; Id=4625} -MaxEvents 20 |
ForEach-Object {
$p = $_.Properties
"{0} account={1,-20} status=0x{2:X8} substatus=0x{3:X8}" -f `
$_.TimeCreated, $p[5].Value, $p[7].Value, $p[9].Value
}
Status Sub Status Cause 0xC000006D 0xC000006A Mot de passe incorrect 0xC000006D 0xC0000064 Le compte n'existe pas 0xC000006E 0xC0000071 Mot de passe EXPIRÉ 0xC0000224 0x00000000 Changement de mot de passe imposé a la prochaine ouverture de session 0xC000015B 0x00000000 Le compte n'a pas le droit « Accéder à cet ordinateur depuis le réseau » 0xC0000234 0x00000000 Compte verrouillé 0xC000006E 0xC0000072 Compte désactivé 0xC0000193 0x00000000 0xC0000133 0x00000000 0xC0000225 0x00000000 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.
MONITORED HOST - BAD STATE – Command execution Failed. Permission denied.
UNKNOWN – Command execution Failed. [...] Provider failure















