Aller au contenu principal

Microsoft IIS Server Restapi

Vue d'ensemble​

Internet Information Services (IIS, anciennement Internet Information Server) est un serveur Web extensible créé par Microsoft pour une utilisation sous Windows Server. IIS prend en charge HTTP, HTTP/2, HTTPS, FTP, FTPS, SMTP et NNTP.

Contenu du connecteur de supervision​

Elements supervisés​

  • ApplicationPools
  • Websites

Règles de découverte​

Rule nameDescription
App-IIS-Restapi-ApplicationPools-NameDiscover application pools hosted by your IIS server
App-IIS-Restapi-Websites-NameDiscover websites hosted by your IIS server

Métriques collectées​

Metric nameDescription
statusStatus of the application pool.
applicationpool.requests.persecondNumber of requests per second by application pools. Unit: requests/second

Prérequis​

Configuration IIS​

Pour utiliser ce connecteur de supervision, vous devez activer l'API Microsoft IIS Administration. Microsoft fournit une documentation officielle pour la mise en place : https://docs.microsoft.com/en-us/iis-administration/

Installation​

  1. Installer le Plugin sur tous les collecteurs Centreon supervisant des ressources IIS :
yum install centreon-plugin-Applications-Webservers-Iis-Restapi
  1. Dans l'interface Centreon, installer le connecteur de supervision Microsoft IIS Server Restapi depuis la page Configuration > Gestionnaire de connecteurs de supervision

Configuration​

  • Depuis l'interface Web de Centreon, ajoutez un nouvel Hôte depuis la page "Configuration > Hôtes".
  • Appliquez le modèle "App-Webserver-IIS-Restapi-custom" et configurez toutes les macros :
MandatoryNomDescription
XIISAPIPORTPort used. Default is 55539
XIISAPIPROTOProtocol used. Default is https
XIISAPIUSERNAMEUsername to access to the API.
XIISAPIPASSWORDPassword to access to the API.
XIISTOKENAPIToken to access to the API.
IISAPIEXTRAOPTIONSAny extra option you may want to add to the command (eg. a --verbose flag)

Par défaut IISAPIEXTRAOPTIONS contient les options : --http-backend=curl --curl-opt="CURLOPT_SSL_VERIFYPEER => 0" pour utiliser curl et pour ne pas vérifier le certificat SSL.

Il est recommandé d'utiliser le module de découverte automatique des éléments pour déployer la supervision des application pools/websites. Pour ce faire, allez dans Configuration > Services > Découverte Automatisée > Manuelle puis lancez une découverte

FAQ​

Comment puis-je tester le Plugin et que signifient les options des commandes ?​

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_iis_restapi.pl \ 
--plugin apps::iis::restapi::plugin \
--mode websites \
--hostname='www.int.centreon.com' \
--port='55539' \
--proto='https' \
--api-username='John.Doe' \
--api-password='6fbadZEJbsLG' \
--api-token='ZHppZCWPzREgSb9SDYOegsY0_D4KJKgZ5q8QavEWBPmmi8fgt2-8Cw' \
--http-backend='curl' \
--curl-opt="CURLOPT_SSL_VERIFYPEER => 0" \
--filter-name='^www$' \
--critical-status='%{status} !~ /starting|started/' \
--verbose

Cette commande supervise le statut et l'utilisation du site www (--filter-name=^www$) hébergé sur le serveur IIS www.int.centreon.com (--hostname='www.int.centreon.com').

Un utilisateur (--api-username='John.doe'), un mot de passe (--api-password='6fbadZEJbsLG') et un token API (--api-token='ZHppZCWPzREgSb9SDYOegsY0_D4KJKgZ5q8QavEWBPmmi8fgt2-8Cw') générés depuis l'API IIS Administration API sont utilisés pour se connecter.

Le backend curl (--http-backend='curl') est utilisé par la commande et le certificat SSL du serveur cible n'est pas vérifié (--curl-opt="CURLOPT_SSL_VERIFYPEER => 0").

Cette command déclenchera une alerte CRITIQUE si :

  • le status du website est différent de starting ou started.

La commande retourne le message de sortie ci-dessous:

OK: Website 'www' traffic in: 5.41 Kb/s, traffic out: 59.74 Kb/s, current connections: 0, total connections: 8.05/s | 'www#website.traffic.in.bitspersecond'=5407.86206896552b/s;;;0; 'www#website.traffic.out.bitspersecond'=59744b/s;;;0; 'www#website.connections.current.count'=0;;;0; 'www#website.connections.total.persecond'=8.05/s;;;0;
Website 'www' traffic in: 5.41 Kb/s, traffic out: 59.74 Kb/s, current connections: 0, total connections: 8.05/s

Des seuils peuvent être positionnés à l'aide des options --warning- et --critical- sur les métriques.

Pour chaque mode, les options disponibles peuvent être consultées en ajoutant l'option --help à la commande :

/usr/lib/centreon/plugins/centreon_iis_restapi.pl \ 
--plugin apps::iis::restapi::plugin \
--mode websites \
--help

Vous pouvez afficher tous les modes disponibles à l'aide de la commande suivante :`

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

J'obtiens le message d'erreur suivant:​

UNKNOWN: Cannot load module 'Net::Curl::Easy'​

Ce message d'erreur indique qu'une librairie Perl est manquante pour utiliser le backend curl.

Pour corriger ce problème, installer la librairie Perl Net::Curl::Easy à l'aide de la commande suivante :

yum install perl-Net-Curl

UNKNOWN: curl perform error : Couldn't connect to server​

Lors du déploiement de mes contrôles, j'obtiens le message suivant UNKNOWN: curl perform error : Couldn't connect to server |. Cela signifie que Centreon n'a pas réussi à se connecter à l'API du serveur IIS. La plupart du temps, il faut préciser le proxy à utiliser pour requêter l'API du serveur IIS en utilisant l'option --proxyurl='http://proxy.mycompany:8080'.