Contexte
Le check Stats CPU by WinRM va utiliser des commandes à travers le serveur WinRM pour rechercher des informations sur le CPU, tel que le nombre de cœurs, la fréquence, le pourcentage d'utilisation du processeur au cours de la dernière seconde et pour finir, si l'utilisation du processeur est trop importante, les X processus consommant le plus de CPU ( X étant la donnée CPU_MAX_PROCESS modifiable dans la configuration ), permettant de voir quels processus sont les plus consommateurs.
Les processus sont accompagnés leur consommation CPU, ainsi que d’indicateurs en pourcentage ainsi qu'une jauge graphique pour facilement visualiser l'Average CPU % :
- Total CPU % : utilisation cumulée du temps CPU sur l’ensemble des processeurs logiques. Cette valeur peut aller jusqu’à 100 % × nombre de processeurs logiques.
- Average CPU % : moyenne de consommation CPU par cœur logique. Calculée ainsi : Average CPU % = Total CPU % / nombre de processeurs logiques. Elle correspond à la valeur affichée dans le Gestionnaire des tâches de Windows
La somme des mesures individuelles de l'Average CPU% de chaque processus peuvent différer de CPU usage, car ces mesures ne peuvent pas être prises à un seul instant T. Comme ces mesures sont volatiles, on peut alors parfois observer des différences.
Paramétrage
$WINDOWS-BY-WINRM__SHINKEN__PLUGINSDIR$/check_windows_health_by_winrm_rust --check check_stats_cpu
--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$"
-c "$_HOSTWINDOWS_BY_WINRM__STATS-CPU__CRIT$"
-w "$_HOSTWINDOWS_BY_WINRM__STATS-CPU__WARN$"
-m "$_HOSTWINDOWS_BY_WINRM__STATS-CPU__MAX-PROCESS$"
Données utilisées provenant des modèles
Données communes pour les checks des modèles
| 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
| Donnée | Modifiable sur | Unité | Valeur par défaut | Description |
|---|---|---|---|---|
WINDOWS_BY_WINRM__STATS-CPU__CRIT | l'Hôte ( Onglet Données ) | % | 90 | Définit le pourcentage d'utilisation du processeur à partir duquel le check passe en CRITIQUE. |
WINDOWS_BY_WINRM__STATS-CPU__WARN | l'Hôte ( Onglet Données ) | % | 80 | Définit le pourcentage d'utilisation du processeur à partir duquel le check passe en ATTENTION. |
WINDOWS_BY_WINRM__STATS-CPU__MAX-PROCESS | l'Hôte ( Onglet Données ) | -- | 10 | Définit le nombre de processus alarmant à afficher au maximum. |
Afin de récupérer le pourcentage d'utilisation du CPU au cours d'une seconde, le check attendra au moins une seconde, lui permettant de calculer le pourcentage au niveau de celle-ci.
Données DFE ( Duplicate Foreach )
Pas de données DFE pour ce check.
Données utilisées provenant du check
Pas de données provenant du check pour ce modèle
Non modifiable ( Sauf Admin Shinken ) Chemin absolu contenant les sondes installés par Shinken Non modifiable ( Sauf Admin Shinken ) Dossier fournit par shinken Non modifiable ( Sauf Admin Shinken ) Dossier contenant les sondes Non modifiable ( Sauf Admin Shinken ) Chemin absolu du dossier contenant les sondes du pack windows-by-WinRM__shinken ( non modifiable ) l'Hôte ( Onglet Général ) -- Adresse de l'hôteDonnées globales
Nom Modifiable sur Unité Défaut Valeur par défaut à l'installation Description USERPLUGINSDIR
-- /var/lib/shinken/libexec /var/lib/shinken/libexec WINDOWS-BY-WINRM__SHINKEN__VENDOR
-- shinken-additional-packs shinken-additional-packs WINDOWS-BY-WINRM__SHINKEN__PACKNAME
-- windows-by-WinRM__shinken windows-by-WinRM__shinken WINDOWS-BY-WINRM__SHINKEN__PLUGINSDIR
-- USERPLUGINSDIR/WINDOWS-BY-WINRM__SHINKEN__VENDOR/WINDOWS-BY-WINRM__SHINKEN__PACKNAME
/var/lib/shinken-user/libexec/shinken-additional-packs/windows-by-WinRM__shinken Propriétés de l'hôte
Nom Modifiable sur Unité Défaut Valeur par défaut Description HOSTADDRESS
Nom de l'hôte Nom de l'hôte
Résultat
Exemple
Interprétation
Statut
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__STATS-CPU__CRIT
- WINDOWS_BY_WINRM__STATS-CPU__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 |
|---|---|---|
| CRITIQUE |
|
| ATTENTION |
|
Résultat
Le résultat contient un message indiquant le statut ainsi que l'utilisation du CPU en pourcentage, valeur correspondant à la métrique cpu_all_usage.
Résultat Long
Le résultat long contient un tableau qui liste les X processus les plus consommateurs ( le X correspond à la donnée WINDOWS_BY_WINRM__STATS-CPU__MAX-PROCESS ). La mesure d'utilisation CPU est donnée avec Total CPU% et Average CPU%.
Métriques
Définition
| Nom de la métrique | Unité | Description | Seuil d'avertissement | Seuil critique |
|---|---|---|---|---|
| cpu_all_usage | % | Retourne le pourcentage de temps CPU actif au cours de la dernière seconde ( Correspond au % afficher dans le résultat du check ). | WINDOWS_BY_WINRM__STATS-CPU__WARN | WINDOWS_BY_WINRM__STATS-CPU__CRIT |
| cpu_( NUMERO_CPU )_usr | % | Retourne le pourcentage de temps CPU utilisé par les processus en espace utilisateur au cours de la dernière seconde. | -- | -- |
| cpu_( NUMERO_CPU )_priv | % | Retourne le pourcentage de temps CPU utilisé par les processus en mode noyau au cours de la dernière seconde. | -- | -- |
| cpu_( NUMERO_CPU )_idle | % | Retourne le pourcentage de temps CPU inactif au cours de la dernière seconde. | -- | -- |
| cpu_( NUMERO_CPU )_irq | % | Retourne le pourcentage de temps CPU consacré au traitement des interruptions matérielles (périphériques physiques) au cours de la dernière seconde. | -- | -- |
| cpu_( NUMERO_CPU )_dpc | % | Retourne le pourcentage de temps CPU utilisé par les DPC (Deferred Procedure Calls) — routines différées généralement utilisées par les pilotes pour finaliser le traitement d’interruptions au cours de la dernière seconde. | -- | -- |
Toutes les métriques contenant le mot ( NUMERO_CPU ) dans le tableau ci-dessus seront dupliquées en fonction du nombre de processeurs logique présents sur le serveur supervisé.
Exemple ( pour 2 CPUs ) :
- cpu_00_usr
- cpu_00_priv
- ...
- cpu_01_usr
- cpu_01_priv
- ...
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é. 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 du Windows supervisé pour le pack windows-by-WinRM__shinken ). 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 du Windows supervisé pour le pack windows-by-WinRM__shinken ). 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 ). 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 ). 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
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
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
















