Sommaire

Contexte

Le check Network Interfaces by WinRM  permet d'obtenir l'état des interfaces réseau de la machine via le protocole SNMP sur une machine Linux.

  • Chaque interface est présentée avec son état ainsi que ses statistiques de bande passante.

Paramétrage

Le check utilise la ligne de commande suivante :

$WINDOWS-BY-WINRM__SHINKEN__PLUGINSDIR$/check_windows_health_by_winrm_rust --check check_network_interfaces
    --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$"
    --regex "$_HOSTWINDOWS_BY_WINRM__NETWORK-INTERFACES__NET-INTERFACES$"
    --in_warning "$_HOSTWINDOWS_BY_WINRM__NETWORK-INTERFACES__IN-WARN$"
    --in_critical "$_HOSTWINDOWS_BY_WINRM__NETWORK-INTERFACES__IN-CRIT$"
    --out_warning "$_HOSTWINDOWS_BY_WINRM__NETWORK-INTERFACES__OUT-WARN$"
    --out_critical "$_HOSTWINDOWS_BY_WINRM__NETWORK-INTERFACES__OUT-CRIT$"
    --extend "$_HOSTWINDOWS_BY_WINRM__NETWORK-INTERFACES__EXTEND$"
    --shared_winrm_tmp_wf "$_HOSTWINDOWS_BY_WINRM__POLLER-SHARED-WORKING-FOLDER$"

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.

Les données communes pour certain checks

Pour les checks suivants :

  • Network Interfaces by WinRM
  • Stats Disks by WinRM
  • Stats Kernel by WinRM ( en developpement )
  • Stats NFS by WinRM ( en developpement )
NomModifiable surUnitéDéfautDescription
WINDOWS_BY_WINRM__WORKING-FOLDER-BASE-PATH

l'Hôte

( Onglet Données )

--/tmpChemin absolu où sera créé le dossier WINDOWS_BY_WINRM__WORKING-FOLDER-TMP-DIRNAME.
WINDOWS_BY_WINRM__WORKING-FOLDER-TMP-DIRNAME


l'Hôte

( Onglet Données )

--shinkenNom de dossier temporaire où seront stockés les fichiers temporaires générés par les sondes.
Ne peut contenir uniquement des caractères alphanumériques, slash, antislash, espace, guillemet simple et double, tiret et tiret du bas.

Données spécifiques pour ce check

NomModifiable surUnitéDéfautDescription
WINDOWS_BY_WINRM__NETWORK-INTERFACES__NET-INTERFACES

l'Hôte

( Onglet Données )

--
.*
Filtre sur les interfaces présenté sous forme d'expression régulière. Prend toutes les interfaces par défaut.
WINDOWS_BY_WINRM__NETWORK-INTERFACES__IN-WARN

l'Hôte

( Onglet Données )

--
0

Seuil d'AVERTISSEMENT de transfert entrants sur les interfaces (en Kbps).
Utilisez la valeur par défaut 0 pour ignorer le seuil.

WINDOWS_BY_WINRM__NETWORK-INTERFACES__IN-CRIT

l'Hôte

( Onglet Données )

--
0

Seuil CRITIQUE de transfert entrants sur les interfaces (en Kbps).
Utilisez la valeur par défaut 0 pour ignorer le seuil.

WINDOWS_BY_WINRM__NETWORK-INTERFACES__OUT-WARN

l'Hôte

( Onglet Données )

--
0

Seuil d'AVERTISSEMENT de transfert sortant sur les interfaces (en Kbps).
Utilisez la valeur par défaut 0 pour ignorer le seuil.

WINDOWS_BY_WINRM__NETWORK-INTERFACES__OUT-CRIT

l'Hôte

( Onglet Données )

--
0

Seuil CRITIQUE de transfert sortant sur les interfaces (en Kbps).
Utilisez la valeur par défaut 0 pour ignorer le seuil.

WINDOWS_BY_WINRM__NETWORK-INTERFACES__EXTEND

l'Hôte

( Onglet Données )

--falseAffiche un tableau dans le résultat long qui ajoute des informations supplémentaires sur l'utilisation des interfaces réseaux.

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

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

Statut

  • Il peut prendre 4 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__NET-INTERFACES__IN-WARN
      • WINDOWS_BY_WINRM__NET-INTERFACES__IN-CRIT
      • WINDOWS_BY_WINRM__NET-INTERFACES__OUT-WARN
      • WINDOWS_BY_WINRM__NET-INTERFACES__OUT-CRIT
    • Voici un tableau récapitulatif du statut attendu suivant le retour de sonde :


Le check sera automatiquement en INCONNU dès l'installation du pack, il suffit d'attendre que le check récupère les informations suffisantes .

Situation

Statut

Exemple

  • Un ou plusieurs des seuils suivants sont dépassés :
    • WINDOWS_BY_WINRM__NET-INTERFACES__IN-CRIT
    • WINDOWS_BY_WINRM__NET-INTERFACES__OUT-CRIT

CRITIQUE

  • Un ou plusieurs des seuils suivants sont dépassés :
    • WINDOWS_BY_WINRM__NET-INTERFACES__IN-WARN
    • WINDOWS_BY_WINRM__NET-INTERFACES__OUT-WARN
ATTENTION

  • Aucune interface réseau ne correspond à WINDOWS_BY_WINRM__NET-INTERFACES__NET-INTERFACES
INCONNU

  • Les calculs de moyenne des débits ne sont pas disponibles pour le moment.
INCONNU

  • Les moyenne n'a pas pu être calculé. Les mesures sont trop récentes.
INCONNU 

  • Les moyenne n'a pas pu être calculé. Les mesures sont dépassées.
INCONNU 

  • Dépassement des seuils de trafic entrant et/ou sortant (warning ou critical),

  • Indisponibilité des données nécessaires au calcul des moyennes de débit (mesures absentes),

  • WINDOWS_BY_WINRM__NET-INTERFACES__EXTEND activée (true).

  • Erreur de permission empêchant l’accès à un fichie temporaire d'une interface réseau.

CRITIQUE

Résultat

Le résultat contient un message indiquant le status ainsi que le nombre d'interfaces réseaux trouvées.

Résultat Long

Le résultat long fournit des détails sur chaque interface réseau détectée, incluant son statut ainsi que son débit en Kbps pour les téléchargements et les envois de données.

La donnée WINDOWS_BY_WINRM__NETWORK-INTERFACES__EXTEND configuré à true permet d'afficher un second tableau pour afficher davantage d'informations sur les interfaces réseaux.

Métriques

Definition

Nom de la métriqueUnitéDescriptionSeuil d'avertissementSeuil critique
( NOM_INTERFACE )_in_octetoTotal d'octets émis par l'interface----
( NOM_INTERFACE )_out_octetoTotal d'octets reçus par l'interface----
( NOM_INTERFACE )_in_bit_per_secondb/sDébit entrant moyenWINDOWS_BY_WINRM__NETWORK-INTERFACES__IN-WARN si != 0WINDOWS_BY_WINRM__NETWORK-INTERFACES__IN-CRIT si != 0
( NOM_INTERFACE )_out_bit_per_secondb/sDébit sortant moyenWINDOWS_BY_WINRM__NETWORK-INTERFACES__OUT-WARN si != 0WINDOWS_BY_WINRM__NETWORK-INTERFACES__OUT-CRIT si != 0
( NOM_INTERFACE )_total_in_packetsPaquetTotal des paquets entrants.
Généré uniquement lorsque WINDOWS_BY_WINRM__NETWORK-INTERFACES__EXTEND vaut "true".
----
( NOM_INTERFACE )_total_out_packetsPaquetTotal des paquets sortants.
Généré uniquement lorsque WINDOWS_BY_WINRM__NETWORK-INTERFACES__EXTEND vaut "true".
----
( NOM_INTERFACE )_in_packets_per_secondPaquet/sNombre moyen de paquets entrants par second.
Généré uniquement lorsque WINDOWS_BY_WINRM__NETWORK-INTERFACES__EXTEND vaut "true".
----
( NOM_INTERFACE )_out_packets_per_secondPaquet/sNombre moyen de paquets sortants par seconde.
Généré uniquement lorsque WINDOWS_BY_WINRM__NETWORK-INTERFACES__EXTEND vaut "true".
----
( NOM_INTERFACE )_total_in_packets_errorsPaquetNombre total d’erreurs de paquets entrants.
Généré uniquement lorsque WINDOWS_BY_WINRM__NETWORK-INTERFACES__EXTEND vaut "true".
----
( NOM_INTERFACE )_in_errors_per_secondPaquet/sTaux d’erreur de paquets entrants par seconde.
Généré uniquement lorsque WINDOWS_BY_WINRM__NETWORK-INTERFACES__EXTEND vaut "true".
----

Exemple

Erreurs et pré-requis

Erreurs de configuration du poller shinken ( spécifique à certains checks )

POLLER - BAD STATE – Permission denied

Le poller qui exécutera les checks nécessite un droit d'écriture et de lecture dans le répertoire décrit par WINDOWS_BY_WINRM__POLLER-SHARED-WORKING-FOLDER-BASE-PATH/WINDOWS_BY_WINRM__POLLER-SHARED-WORKING-FOLDER-TMP-DIRNAME, par défaut /tmp/shinken.


Vous pouvez obtenir les erreurs suivante :

Résolution

Remarque

Cette série de commandes ne peut être effectuée qu'en ayant les droits root.

Donc en étant connecté au compte root ou en ayant fait la commande "su" au préalable.

Remarque

Les instructions suivantes sont à exécuter sur le ou les pollers shinken.

Utilisation
shinken_tmp_dirname="shinken"
mkdir --parents /tmp/$shinken_tmp_dirname
chown -R root:shinken /tmp/$shinken_tmp_dirname
chmod -R g+rwx /tmp/$shinken_tmp_dirname

Explication

1.  La commande mkdir --parents /tmp/$shinken_tmp_dirname crée un récursivement un répertoire.

2. La commande chown -R root:shinken /tmp/$shinken_tmp_dirname modifie le groupe du dossier /tmp/shinken.

  • Cela garantit que des droits peuvent être appliqués au groupe shinken sur ce dossier.

3. La commande chmod -R g+rwx /tmp/$shinken_tmp_dirname applique immédiatement les droits nécessaires au dossier /tmp/shinken pour le groupe shinken.

  • Les droits de lecture, d'écriture et d'exécution sont ajoutés au dossier. Cela permet aux sondes de créer et lire des fichiers dans le dossier /tmp/shinken.


Il est nécessaire d'adapter la variable shinken_tmp_dirname si vous avez modifié l'un des deux variables suivantes :

  • WINDOWS_BY_WINRM__POLLER-SHARED-WORKING-FOLDER-BASE-PATH
  • WINDOWS_BY_WINRM__POLLER-SHARED-WORKING-FOLDER-TMP-DIRNAME

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.