Aller au contenu principal

Windows NSClient API

Vue d'ensemble​

NSClient++ Rest API fournit sa propre API Rest via le module Webserver et permet d'exploiter au maximum les données de monitoring des serveurs Windows à travers une connexion HTTP sécurisée.

Contenu du connecteur de supervision​

Objets supervisés​

  • Windows Server OS à partir de la version 2003 SP2
  • Windows (postes de travail) à partir de la version XP

Métriques collectées​

Metric nameDescription
Sessions_valueNumber of actived sessions. Unit: Count

Prérequis​

  • Le port TCP 8443 doit être ouvert sur le serveur Windows (port de l'API Rest Nsclient par défaut).

Afin de sécuriser la communication entre le poller et l'agent:

  • Modifier le paramètre port de l'API Rest du fichier nsclient.ini
  • Modifier le paramètre allowed hosts du fichier nsclient.ini en renseignant les adresses IP des collecteurs Centreon afin de n'autoriser que ceux-ci à interroger l'API

Configurer l'accès Rest HTTPS​

Pour vous connecter à l’API de Monitoring NSClient++, vous devez tout d'abord activer le service web de Nsclient:

  • Depuis un shell sous le serveur Windows, executer les commande suivantes en administrateur:

nscp web install

  • Configurer un mot de passe afin de sécuriser la communication.
nscp web password -- -set centreon
Password updated successfully, please restart nsclient++ for changes to affect.
  • Enfin, redémarrer l'agent NSCP
net stop nscp
net start nscp

Installation​

  1. Installer le Plugin sur l'ensemble des collecteurs Centreon supervisant des ressources Windows NSCP Rest:
yum install centreon-plugin-Operatingsystems-Windows-Restapi
  1. Installer le connecteur de supervision depuis la page Configuration > Gestionnaire de connecteurs de supervision

Configuration​

  • Créez un nouvel hôte dans Centreon et appliquez-lui le modèle d'hôte "OS-Windows-NSClient-05-Restapi-custom".
  • Configurez les macros marquées comme obligatoires ci-dessous :
ObligatoireNomDescription
XNSCPRESTAPIPORTPort de l'API Rest NSClient++ (8443 par défaut)
XNSCPRESTAPIPROTOProtocole web utilisé pour la communication avec l'API Rest (HTTPS par défaut)
XNSCPRESTAPILEGACYPASSWORDMot de passe configuré pour l'échange de données via l'api Rest (voir le chapitre "Prérequis")
NSCPRESTAPIEXTRAOPTIONSOptions supplémentaires à passer si nécessaire, par exemple "--timeout=30"

FAQ​

Comment tester et interpréter le plugin NSClient Rest API en ligne de commande?​

Une fois le Plugin installé, vous pouvez tester celui-ci directement en ligne de commande depuis votre collecteur Centreon avec l'utilisateur centreon-engine:

/usr/lib/centreon/plugins//centreon_nsclient_restapi.pl \
--plugin=apps::nsclient::restapi::plugin \
--mode=query --hostname='192.168.1.24' \
--port='8443' \
--proto='https' \
--legacy-password='centreon' \
--command=check_cpu \
--arg="warning=time = '5m' and load > 80" \
--arg="critical=time = '5m' and load > 90" \
--arg=show-all

OK: 5m: 40%, 1m: 42%, 5s: 39% |
'total 5m'=40%;80;90;;
'total 1m'=42%;80;90;;
'total 5s'=39%;80;90;;

La commande ci-dessus requête l'API Rest Nsclient++ (--plugin=apps::nsclient::restapi::plugin) sur le port 8443 (--port='8443') de l'API en utilisant le protocole HTTPS (--proto='https') ainsi que le mot de passe créé précédemment dans la partie Prérequis (--legacy-password='centreon'). Cette commande contrôle l'état actuel de l'activité du processeur (--command=check_cpu).

Les alertes sont appliquées sur l'utilisation en pourcentage de la métrique "5m" (total_5m). Si la métrique 'total 5m' de la charge CPU (sur les 5 dernières minutes) dépasse 80% ou 90% alors l'état du service sera respectivement WARNING ou CRITIQUE.

Tous les modes disponibles peuvent être affichés en utilisant la commande suivante:

/usr/lib/centreon/plugins//centreon_nsclient_restapi.pl \
--plugin=apps::nsclient::restapi::plugin \
--list-mode

Pour toute aide complémentaire, les options des différents modes sont consultables en ajoutant l'argument --help à la commande:

/usr/lib/centreon/plugins//centreon_nsclient_restapi.pl \
--plugin=apps::nsclient::restapi::plugin \
--mode=query
--help

J'obtiens le message d'erreur suivant:​

UNKNOWN: Cannot decode json response: malformed UTF-8 character in JSON string​

Si vous recevez ce message, activez le mode --debug pour visualiser l'exécution détaillée d'un mode:

/usr/lib/centreon/plugins//centreon_nsclient_restapi.pl \
--plugin=apps::nsclient::restapi::plugin \
--mode=query \
--hostname='192.168.1.24' \
--port='8443' \
--proto='https' \
--legacy-password='centreon' \
--http-backend=curl \
--curl-opt="CURLOPT_SSL_VERIFYPEER => 0" \
--timeout=30 \
--command=check_centreon_plugins \
--arg='os::windows::local::plugin' \
--arg='sessions' \
--arg='--filter-sessionname="" \
--config="scripts/centreon/conf/qwinsta.xml" \
--language="fr" \
--debug

UNKNOWN: Cannot decode json response: malformed UTF-8 character in JSON string, at character offset 724 (before "\x{fffd}u0090RIPH\x{fffd}...") at /usr/lib/centreon/plugins//centreon_nsclient_restapi.pl line 133.
== Info: About to connect() to 192.168.1.24 port 8443 (#0)
== Info: Trying 192.168.1.24...
== Info: Connected to 192.168.1.24 (192.168.1.24) port 8443 (#0)
.......
Cannot write statefile '/var/lib/centreon/centplugins/windows_sessions_a181a603769c1f98ad927e7367c7aa51_a181a603769c1f98ad927e7367c7aa51'.
Need write/exec permissions on directory.
  • Le dossier /var/lib/centreon/centplugins n'existe pas sur votre serveur Windows, dans ce cas spécifiez un répertoire Windows existant via l'option --statefile-dir afin de stocker les fichiers de cache du Plugin.

"UNKNOWN: 500 Can't connect to x.x.x.x:8443"​

Si vous recevez ce message, ajoutez l'option '--http-backend=curl' dans la macro d'hôte NSCPRESTAPIEXTRAOPTIONS.

Créer votre propre agent NSClient++​

Il est possible de créer votre propre agent NSClient++ lorsque vous souhaitez ajouter de nouvelles commandes et/ou personnaliser les paramètres du fichier nsclient.ini.

Suivez la documentation officielle accessible publiquement via Github afin de fournir à votre entreprise un Centreon NSClient++ spécifique :

Vous y trouverez la méthode de création utilisée et la liste de tous les Plugins compilés par Centreon dans centreon_plugins.exe