Vous êtes ici:

Menu


Surveiller un site Web

Stacks Image 5251
Comment superviser un hébergement mutualisé lorsque vous ne connaissez pas l’adresse IP du serveur ? C’est ce que nous allons voir dans cet article. Nous utiliserons le plugin historique check_http et ensuite le plugin centreon.
Nous en profiterons pour utiliser les templates d’hôtes et de services avec les macros personnalisées. Les commandes clapi seront ajoutées en encart.

1 mise en situation

Nous allons superviser un site Web mutualisé se trouvant sur la toile. Nous utiliserons le protocole http et https. Comme nous ne pouvons pas utiliser le protocole icmp pour la configuration de l’hôte, nous allons créer notre commande spécifique pour les sites Web. Voici le schéma global de notre configuration.
Stacks Image 1195541
schéma de principe
Nous utiliserons le plugin historique check_http et deux commandes check_host_alive_http pour le modèle d’hôte et check_http pour le modèle de service. Ensuite nous aurons deux modèles d’hôtes : le modèle Modele_site_web_http pour une connexion http classique associé au modèle de service SVC_http_80 et le modèle Modele_site_web_https pour une connexion sécurisée en https associé au modèle de service SVC_https_443. Les deux modèles de service sont basés sur le modèle generic_service créé lors de la première configuration de Centreon.

2 Utilisation du plugin check_http

2.1 Création des commandes check_host_alive_http et check_http

Nous allons créer tout d’abord deux commandes. La première commande nous servira pour les modèles d’hôte. Nous nous baserons sur la commande check_host_alive.

2.1a commande check_host_alive_http

Stacks Image 1195414
Création de la commande check_host_alive_http
La ligne de commande ci-dessous :
$USER1$/check_http -H $HOSTADDRESS$ -p $_HOSTPORT$ -c $_HOSTCRITICAL$ -w $_HOSTWARNING$
Pour rendre la commande plus universelle, nous utiliserons des macros personnalisées pour les hôtes :
  • $_HOSTPORT$ pour le protocole http,
  • $_HOSTWARNING$ pour le seuil warning,
  • $_HOSTCRITICAL$ pour le seuil critical.
Centreon-Clapi

centreon -u admin -p password -o CMD -a ADD -v 'check_host_alive_http;check;$USER1$/check_http -H $HOSTADDRESS$ -p $_HOSTPORT$ -c $_HOSTCRITICAL$ -w $_HOSTWARNING$'

2.1b commande check_http

Stacks Image 1195558
Création de la commande check_http
La ligne de commande ci-dessous :
$USER1$/check_http -H $HOSTADDRESS$ -p $_SERVICEPORT$ -c $_SERVICECRITICAL$ -w $_SERVICEWARNING$
Comme pour la commande précédente, nous utiliserons des macros personnalisées mais pour les services :
  • $_SERVICEPORT$ pour le protocole http,
  • $_SERVICEWARNING$ pour le seuil warning,
  • $_SERVICECRITICAL$ pour le seuil critical.
Nous utiliserons le modèle de graphe Latency pour ce service.
Centreon-Clapi

centreon -u admin -p password -o CMD -a ADD -v 'check_http;check;$USER1$/check_http -H $HOSTADDRESS$ -p $_SERVICEPORT$ -c $_SERVICECRITICAL$ -w $_SERVICEWARNING$'
centreon -u admin -p password -o CMD -a setparam -v "check_http;graph;Latency"

2.2 Création des modèles d’hôte

Nous allons créer deux modèles d’hôte, un pour la connexion http classique en port 80 et l’autre pour la connexion sécurisée en https et port 443. Il sera très facile de personnaliser un nouvel hôte qui aurait un port particulier (exemple port 8080) en surchargeant l’hôte avec un nouveau paramètre pour la macro personnalisée PORT du modèle d’hôte. Chaque modèle d’hôte sera associé à un modèle de service que vous découvrirez plus loin.

2.2a modèle Modele_site_web_http

Stacks Image 1195597
Création du modèle Model_site_web_http, onglet Configuration de l’hôte
Stacks Image 1195600
Création du modèle Model_site_web_http, onglet Notification
Centreon-Clapi

centreon -u admin -p password -o HTPL -a ADD -v "Modele_site_web_http;Web_http;;;;"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;check_command;check_host_alive_http"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;check_period;24x7"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;notification_period;24x7"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_max_check_attempts;5"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_active_checks_enabled;1"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_passive_checks_enabled;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_checks_enabled;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_obsess_over_host;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_check_freshness;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_event_handler_enabled;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_flap_detection_enabled;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_process_perf_data;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_retain_status_information;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_retain_nonstatus_information;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_notification_interval;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_notification_options;d,u,r,f"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_notifications_enabled;1"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;contact_additive_inheritance;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;cg_additive_inheritance;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_locked;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_register;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_http;host_activate;1"
centreon -u admin -p password -o HTPL -a setmacro -v "Modele_site_web_http;port;80;;':'"
centreon -u admin -p password -o HTPL -a setmacro -v "Modele_site_web_http;critical;4;;''"
centreon -u admin -p password -o HTPL -a setmacro -v "Modele_site_web_http;warning;3;;''"
centreon -u admin -p password -o HTPL -a addcontactgroup -v "Modele_site_web_http;Supervisors"

2.2b modèle Modele_site_web_https

Stacks Image 1195607
Création du modèle Model_site_web_https, onglet Configuration de l’hôte
La configuration de la notification est identique au premier modèle.
Centreon-Clapi

centreon -u admin -p password -o HTPL -a ADD -v "Modele_site_web_https;Web_https;;;;"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;check_command;check_host_alive_http"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;check_period;24x7"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;notification_period;24x7"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_max_check_attempts;5"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_active_checks_enabled;1"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_passive_checks_enabled;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_checks_enabled;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_obsess_over_host;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_check_freshness;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_event_handler_enabled;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_flap_detection_enabled;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_process_perf_data;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_retain_status_information;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_retain_nonstatus_information;2"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_notification_interval;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_notification_options;d,u,r,f"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_notifications_enabled;1"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;contact_additive_inheritance;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;cg_additive_inheritance;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_locked;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_register;0"
centreon -u admin -p password -o HTPL -a setparam -v "Modele_site_web_https;host_activate;1"
centreon -u admin -p password -o HTPL -a setmacro -v "Modele_site_web_https;port;443 -S;;':'"
centreon -u admin -p password -o HTPL -a setmacro -v "Modele_site_web_https;critical;4;;''"
centreon -u admin -p password -o HTPL -a setmacro -v "Modele_site_web_https;warning;3;;''"
centreon -u admin -p password -o HTPL -a addcontactgroup -v "Modele_site_web_https;Supervisors"

2.3 Création des modèles de service

Continuons par les modèles de services. Ils utiliserons la commande check_http.

2.3a modèle SVC_http_80

Stacks Image 1195577
Création du modèle SVC_http_80, onglet Informations générales
Stacks Image 1195583
Création du modèle SVC_http_80, onglet Relations
Centreon-Clapi

centreon -u admin -p password -o STPL -a ADD -v "SVC_http_80;Http_80;generic-service"
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;check_command;check_http
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_is_volatile;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_normal_check_interval;10
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_retry_check_interval;5
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_active_checks_enabled;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_passive_checks_enabled;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_parallelize_check;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_obsess_over_service;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_check_freshness;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_event_handler_enabled;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_flap_detection_enabled;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_process_perf_data;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_retain_status_information;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_retain_nonstatus_information;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_notifications_enabled;2
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;contact_additive_inheritance;0
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;cg_additive_inheritance;0
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_locked;0
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_register;0
centreon -u admin -p password -o STPL -a setparam -v "SVC_http_80;service_activate;1
centreon -u admin -p password -o STPL -a setmacro -v "SVC_http_80;port;80"
centreon -u admin -p password -o STPL -a setmacro -v "SVC_http_80;critical;3"
centreon -u admin -p password -o STPL -a setmacro -v "SVC_http_80;warning;2"
centreon -u admin -p password -o STPL -a addhosttemplate -v "SVC_http_80;Modele_site_web_http"

2.3b modèle SVC_https_443

Stacks Image 1195580
Création du modèle SVC_https_443, onglet Informations générales
Stacks Image 1195586
Création du modèle SVC_https_443, onglet notification

2.4 Création des hôtes « site web »

Maintenant, nous pouvons créer facilement notre supervision de site web. Par exemple, pour superviser un site comme par exemple mon site personnel Sugarbug, il suffira de créer l’hôte suivant en utilisant le modèle d’hôte Modele_site_web_http.
Stacks Image 1195618
Création de l’hôte
Automatiquement, le service check_http sera associé à la création de l’hôte.
Stacks Image 1195623
Création automatique du service
Un site web sécurisé avec une connexion en https se fera de la même manière avec le modèle Modele_site_web_https.
Centreon-Clapi

centreon -u admin -p password -o HOST -a add -v "Site_Sugarbug;Site Web Sugarbug;www.sugarbug.web4me.fr;;Central;"
centreon -u admin -p password -o HOST -a addtemplate -v "Site_Sugarbug;Modele_site_web_http"
centreon -u admin -p password -o HOST -a applytpl -v "Site_Sugarbug"

3 Test de l’hôte avec le plugin check_http

Appliquez la configuration et attendez quelques minutes pour obtenir un graphique.
Stacks Image 1195441
Graphe du site Sugarbug
Et là, vous me dites, mais c’est un encéphalogramme plat ! En fait les deux métriques size et time récupérées avec les données de performances ne sont pas à la même échelle. la métrique time affiche les secondes et la métrique size affiche des octets et fatalement des grandeurs totalement différentes. Dans notre graphique nous avons un facteur de 10000 entre la valeur time et la valeur size. Il est donc normal que vous ne pouvez pas visualiser la latence du site Web. Pour remédier à ce problème, première solution, séparer les métriques du graphe en cochant la case à cocher split.
Stacks Image 1195632
Graphe du site Sugarbug
Deuxième solution plus élégante, nous allons cacher la métrique size. Celle-ci n’a pas trop d’intérêt pour vérifier la latence de notre site. Pour réaliser cette opération, sélectionnez le menu administration / parameters. Cliquez sur le lien data de la section Performance Management.
Stacks Image 5307
Filtrez par le nom de l’hôte recherché. Ensuite, cliquez sur le service pour obtenir les métriques.
Stacks Image 1195456
Cochez le métrique que vous voulez effacer.
Stacks Image 1195641
Sélectionnez l’action « Hide graphs of selected Services »
Stacks Image 1195646
La métrique size est positionnée à Hidden=yes.
Stacks Image 1195651
Le graphe n’affichera qu’une seule courbe, la plus représentative pour mesurer les latences du site Web. Il n’y a plus besoin de cocher la case.
Stacks Image 1195654
Autre avantage, le graphe s’affiche avec une seule courbe dans la vue temps réels.

4 Utilisation du plugin Centreon

4.1 Exemples d’utilisation

Nous allons utiliser maintenant le plugin réalisé par Centreon, vous trouverez les explications de base avec cet article les nouveaux plugins Centreon. Nous aurons besoin du plugin apps::protocols::http::plugin, celui-ci contient plusieurs modes comme vous pouvez le constater :
cd /usr/lib/nagios/plugins/
./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.

Modes Available:
   expected-content
   json-content
   response
   soap-content
Le mode qui nous intéresse se nomme response. Pour obtenir les mêmes spécificités que le plugin check_http, voici la ligne de commande et son résultat :
./centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=response --hostname=127.0.0.1
OK: Response time 0.447s | 'time'=0.447s;;;0; 'size'=11104B;;;0;
De plus ce plugin nous permet de supprimer la métrique size qui ne nous intéresse pas comme le montre la commande ci-dessous :
./centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=response --hostname=127.0.0.1 --filter-perfdata=time
OK: Response time 0.521s | 'time'=0.521s;;;0;
Stacks Image 1195686
le graphe récupéré à partir de ce plugin
Pour un site en https, il suffira de saisir cette commande :
./centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=response --hostname=192.168.0.240 --proto=https --port=443
OK: Response time 0.429s | 'time'=0.429s;;;0; 'size'=579B;;;0;

4.2 adaptation de la commande Centreon

Il est très facile de modifier la commande précédente.
Stacks Image 1195471
La commande check_http modifiée
La ligne de commande ci-dessous :
$USER1$/centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=response --hostname=$HOSTADDRESS$ --filter-perfdata=time --port=$_SERVICEPORT$ --critical=$_SERVICECRITICAL$ --warning=$_SERVICEWARNING$

4.3 autre utilisation du plugin

On peut utiliser le plugin pour tester une authentification à une application web. Par exemple, prenons le cas de phpmyadmin, nous pouvons tester une authentification d’un utilisateur. Nous utiliserons la commande suivante :
./centreon_plugins.pl --plugin=apps::protocols::http::plugin --mode=expected-content --hostname=192.168.0.250  --method='POST' --post-param='pma_username=root' --post-param='pma_password=password’  --cookies-file='/tmp/lwp_cookies.dat' --urlpath='/phpmyadmin/index.php' --expected-string='pma_navigation’
Résultat
OK: 'pma_navigation' is present in content. | 'time'=0.980s;;;0; 'size'=50948B;;;0;
Je vous conseille d’utiliser un navigateur avec des outils de développement pour trouver les paramètres nécessaires pour l’authentification. Le paramètre --debug est très utile pour afficher la réponse du serveur et adapter le paramètre --expected-string. Il faut trouver une chaîne de caractères exploitable qui sera renvoyé par le serveur Web seulement lorsque l’authentification est réussie.
comments powered by Disqus
 Vous êtes ici: