Supervision HTTPS Response/expected-content (Centreon)

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 :

Voir mes articles sur la supervision systèmes & réseaux :

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

Oracle Manager HTTPS monitoring

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 :

HTTPS Response Monitoring

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 :

HTTPS Expected Content Monitoring

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.

Oracle Enterprise Manager Monitoring

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 :

13 Responses

  1. Marouane dit :

    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;

    • sysadmin dit :

      Bonsoir,
      C’est quoi la commande ?

      • Marouane dit :

        /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’

      • Marouane dit :
        /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'
        
        • sysadmin dit :

          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

  2. Phostavius dit :

    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

    • sysadmin dit :

      Salut, peux-tu poster la commande complète et le résultat.

      • Phostavius dit :

        Bonjour merci pour ton attention 🙂

        Voici la commande :

        ./centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=expected-content --hostname=10.240.0.35 --port=443 --proto=https --method='POST'
         --username=******** --password=*******--urlpath='/RDWeb/pages/fr-FR/login.aspx'
         --ssl-opt="SSL_verify_mode => SSL_VERIFY_NONE" --expected-string='Default.aspx'

        Et le résultat :

        CRITICAL: 411 Length Required | 'time'=0.036s;;;0; 'size'=344B;;;0;

        Qu’en dis-tu ?

      • Phostavius dit :

        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 🙂

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *