Hello, nous allons voir dans cet article la supervision HTTP/S d’une application web avec Centreon et Centreon Plugin Packs. Dans mon cas, ce sera l’interface web Oracle Manager Enterprise (OEM).
Ce qu’il vous faut :
- Centreon Server : je suis sur cette version mise-a-jour-centreon-19-10-10-vers-20-04-0/
- Centreon plugin packs : installation-mise-a-jour-centreon-plugin-packs/
- Café 🙂
Voir mes articles sur la supervision systèmes & réseaux :
- Supervision Certificat HTTPS/Windows : supervision-des-certificats-https-windows/
- Supervision Web HTTP(S) : supervision-https-response-expected-content-centreon/
- Supervision ORACLE BDD : oracle-database-monitoring-centreon-plugins/
- Supervision EMC VNX : vnx5300-vnx5200-monitoring-centreon/
- Supervision MSSQL : microsoft-sql-server-monitoring/
- Supervision Switch CISCO : switch-cisco-centreon-partie-1-2/
- Supervision VMWARE ESXi : vmware-esxi-6-7-monitoring/
- Supervision EXCHANGE Server : exchange-server-2016-monitoring-actif/
- Supervision Quotas Windows : supervision-des-quotas-windows-nrpe-nsclient/
- Supervision Skype for Business : supervision-microsoft-skype-for-business/
- Supervision HPE Proliant Gen10 : supervision-hpe-proliant-gen10-snmp-restapi/
- Supervision NETAPP SANTricity : supervision-netapp-santricity-storage-restapi/
Documentation Centreon : docs.centreon.com/20.10/fr/
Centreon HTTP/S Monitoring
Nous allons utiliser le plugin Centreon suivant qui permet la supervision HTTP/S.
apps::protocols::http::plugin
Voici les modes disponibles :
[root@hd-centreon plugins]# perl centreon_plugins.pl --plugin=apps::protocols::http::plugin --list-mode Plugin Description: Check HTTP or HTTPS webpage. Global Options: --mode Choose a mode. --dyn-mode Specify a mode with the path (separated by '::'). --list-mode List available modes. --mode-version Check minimal version of mode. If not, unknown error. --version Display plugin version. --pass-manager Use a password manager. Modes Meta: multi Modes Available: expected-content json-content response soap-content [root@hd-centreon plugins]#
Nous allons utiliser le mode Response :
[root@pixelabs plugins]# perl centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=response --help
Et le mode Expected-Content :
[root@pixelabs plugins]# perl centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=expected-content --help
Supervision HTTPS / Response
Supervision en ligne de commande :
[root@pixelabs plugins]# ./centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=response --hostname=oracle-manager --port=7802 --method='POST' --proto=https --urlpath='/em/faces/logon/core-uifwk-console-login' --credentials --username=oracle --password=PixeLabs --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE" OK: Response time 0.086s | 'time'=0.086s;;;0; 'size'=416B;;;0; [root@pixelabs plugins]#
La commande permet de vérifier la page login de l’application web Oracle Entreprise Manager (OEM).
Supervision HTTPS / Expected-Content
Supervision en ligne de commande :
[root@pixelabs plugins]# perl centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=expected-content --hostname=oracle-manager --port=7802 --proto=https --method='POST' --username=sysadmin --password=PixeLabs --urlpath='/em/faces/core-uifwk-console-overview' --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE" --expected-string='p_AFMaximized' OK: HTTP test(s) | 'size'=24478B;;;0; 'time'=0.202s;;;0; [root@pixelabs plugins]#
La commande permet de vérifier après l’authentification si la page web fonctionne bien en vérifiant l’existence d’un code HTML/Class CSS présent sur la page d’accueil. Sur la commande ci-dessus, il s’agit de la classe CSS « p_AFMaximized » présente sur la page web affichée après la connexion.
Vous pouvez afficher le code HTML avec un outil de développement (extension navigateur) d’une page ou simplement à l’aide de l’outil Chrome > Clic-droit > Inspecter
Ou encore via Centreon avec Curl. Si la commande curl ne fonctionne pas, Centreon non plus ne fonctionnera pas.
[root@pixelabs plugins]# curl https://oracle-manager:7802/em/faces/core-uifwk-console-overview --user sysadmin:PixeLabs --negotiate --insecure
Macros personnalisée
Voici les macros nécessaires pour les deux commandes de supervision HTTPS :
- $_SERVICEPLUGIN$
- $_SERVICEMODE$
- $_SERVICEHOST$
- $_SERVICEURL$
- $_SERVICEPORT$
- $_SERVICEPROTO$
- $_SERVICEUSERNAME$
- $_SERVICEPASSWORD$
- $_SERVICESSL$
- $_SERVICESTRING$
- $_SERVICEOPTION$
- $_SERVICEEXTRAOPTIONS$
Création de macro via le menu : Configuration > Collecteurs > Ressources
Plus d’information ici : #Macros_personnalisees
Commandes Centreon Web
Création des deux commandes de supervision HTTPS unique via le menu : Configuration > Commandes > Contrôles
- Nom de commande : Check-https-response-cred
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$_SERVICEHOST$ --urlpath=$_SERVICEURL$ --port=$_SERVICEPORT$ --proto=$_SERVICEPROTO$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --ssl-opt=$_SERVICESSL$ $_SERVICEOPTION$
Exemple de service :
Remarque : pensez à utiliser les modèles de service pour renseigner certains champs qui ne change pas. Ici, les champs orange sont déjà dans le modèle
- Nom de commande : Check-https-expected-content
- Ligne de commande :
$USER2$/centreon_plugins.pl --plugin=$_SERVICEPLUGIN$ --mode=$_SERVICEMODE$ --hostname=$_SERVICEHOST$ --urlpath=$_SERVICEURL$ --port=$_SERVICEPORT$ --proto=$_SERVICEPROTO$ --username=$_SERVICEUSERNAME$ --password=$_SERVICEPASSWORD$ --ssl-opt=$_SERVICESSL$ --expected-string=$_SERVICESTRING$ $_SERVICEEXTRAOPTIONS$
Exemple de service :
Remarque : pensez à utiliser les modèles de services pour renseigner certains champs qui ne change pas. Ici, les champs orange sont déjà dans le modèle
Résultat
Relancer votre collecteur pour prendre les modifications.
Amusez-vous bien 🙂
Bonne journée et à très bientôt.
Supervision Systèmes & Réseaux
Voir mes articles sur la supervision systèmes & réseaux :
- Supervision Certificat HTTPS/Windows : supervision-des-certificats-https-windows/
- Supervision Web HTTP(S) : supervision-https-response-expected-content-centreon/
- Supervision ORACLE BDD : oracle-database-monitoring-centreon-plugins/
- Supervision EMC VNX : vnx5300-vnx5200-monitoring-centreon/
- Supervision MSSQL : microsoft-sql-server-monitoring/
- Supervision Switch CISCO : switch-cisco-centreon-partie-1-2/
- Supervision VMWARE ESXi : vmware-esxi-6-7-monitoring/
- Supervision EXCHANGE Server : exchange-server-2016-monitoring-actif/
- Supervision Quotas Windows : supervision-des-quotas-windows-nrpe-nsclient/
- Supervision Skype for Business : supervision-microsoft-skype-for-business/
- Supervision HPE Proliant Gen10 : supervision-hpe-proliant-gen10-snmp-restapi/
- Supervision NETAPP SANTricity : supervision-netapp-santricity-storage-restapi/
Merci beaucoup pour cet article,
J’ai eu cette erreur :
CRITICAL: 500 Server closed connection without sending any data back | ‘time’=0.076s;0:2000;0:5000;0; ‘size’=59B;;;0;
Bonsoir,
C’est quoi la commande ?
/usr/lib/centreon/plugins/centreon_protocol_http.pl –plugin=apps::protocols::http::plugin –mode=response –hostname=l’adresse du serveur –urlpath=’/’ –warning=’2000′ –critical=’5000′ –port=8124 –ssl-opt=’SSL_verify_mode => SSL_VERIFY_NONE’
Essaie avec la méthode CURL
--http-backend=curl --curl-opt="CURLOPT_SSL_VERIFYPEER => 0"
Ce n’est pas côté Centreon. Si ça ne fonctionne pas avec Curl, centreon non plus ne pourra pas fonctionner.
curl -v https://url:port
ou
curl -v telnet://url:port
J’ai résolu le problème en ajoutant l’option :
Nickel, merci pour le retour.
Super utile ! Merci beaucoup, cependant j’ai un soucis il me demande ma longueur de trame et je ne trouve pas comment la connaître et l’ajouter dans la commande
Salut, peux-tu poster la commande complète et le résultat.
Bonjour merci pour ton attention 🙂
Voici la commande :
Et le résultat :
CRITICAL: 411 Length Required | 'time'=0.036s;;;0; 'size'=344B;;;0;
Qu’en dis-tu ?
J’ai trouvé 🙂
Il s’agissait de l’option –port, ayant un port en 443 et l’option –proto en https ma requête ne partait pas, j’ai eu un log indiquant « unable to join adresse:443:443 »
Si quelqu’un a le même soucis, tentez d’enlever l’option port 🙂
C’est super 😉