L’intégration Overmon/Selenium n’est publié que depuis une semaine, et déjà, vous êtes nombreux à nous féliciter de ce nouvel apport.
Soyez-en remerciés. Ca nous touche, … vraiment … ;o)
Certains parmi vous ne connaissaient pas Selenium.
Cet article a pour but de vous expliquer en détail comment utiliser cette nouvelle fonctionnalité majeure d’Overmon.
Petit rappel de l’objectif : Produire une nouvelle sonde qui sera capable de simuler une activité utilisateur complexe sur n’importe quel site internet. Cette sonde sera ensuite déployée automatiquement vers la plateforme Centreon, qui est inclue dans Overmon.
Pré-requis : vous devez disposer d’une plateforme Overmon opérationnelle, ou avoir souscrit à une offre SaaS. Pour les besoins de cet article, nous allons créer un scénario web en utilisant la plateforme Overmon/SaaS
Trêve de préambules, et place à la magie !
Commencons par lancer l’OAT :
Connectons maintenant l’OAT à la plateforme Overmon/SaaS (en l’occurence => ovs01.overmon.fr).
Patientons quelques secondes, et l’écran principal de l’OAT nous est alors présenté :
Cliquons maintenant sur l’onglet « Selenium » :
C’est à partir de cet écran que nous allons travailler.
Notez à ce stade la présence d’une combo nommée « Moteur » (en haut à gauche de l’écran), qui mérite une explication :
Selenium, contrairement à d’autres produits, ne se contente pas de faire un get sur une suite d’URL pour en analyser le résultat. Selenium émule réellement l’activité d’un utilisateur humain, via l’utilisation d’un navigateur web tel que nous les connaissons tous. Overmon v9 embarque aujourd’hui l’utilisation du navigateur Firefox, mais d’autres viendront plus tard, en fonction des demandes de nos clients.
Puisque Selenium lance une session Firefox à chaque fois qu’il déclenche un scénario, la consommation mémoire induite peut rapidement devenir conséquente.
Nous avons donc décider de positionner les scénarios Selenium sur les Overmon Pollers (OVP).
Car les OVPs sont des satellites, qui peuvent être dupliqués à l’infini (ou presque). Et surtout, il aurait été dangereux de permettre une telle consommation de mémoire sur l’OVS, dont la mission prioritaire doit rester la délivrance aux utilisateurs des différentes interfaces (Centreon, GLPI, etc …)
Cliquons maintenant sur la combo « Moteur », et sélectionnons l’OVP ovp01.overmon.fr :
OAT présente alors la liste des scénarios web disponible sur l’OVP choisi.
Notre but est d’en créer un nouveau. Pour ce faire, cliquons sur le bouton « Enregistrer un scénario Firefox » :
A ce stade, de nouvelles explications sont de nouveau nécessaires …
Cette fenêtre Firefox qui vient d’apparaitre à l’écran N’EST PAS une session de Firefox hébergé sur notre PC. Il s’agit en fait d’une session Firefox qui a été déclenché sur l’OVP, et qui a ensuite été relayée en session X vers notre PC, à travers un outil Xming, qui est embarqué dans l’OAT.
Il est vrai qu’en relisant la dernière phrase, ca pique un peu, mais que voulez-vous : c’est la vocation d’Overmon de rendre simple des implémentations technologiques compliquées … ;o)
Ce Firefox « distant » a la particularité d’avoir été customisé par nos soins. Pour être précis, il embarque un plugin nommé « Selenium IDE » que nous allons utiliser.
Pour ce faire, nous cliquons simplement sur l’icone « Selenium IDE » en haut à droite de l’écran Firefox :
Cet article n’a pas pour vocation de vous former de manière exhaustive sur Selenium, qui est un produit tout à fait exceptionnel par sa capacité, sa richesse.
Nous vous invitons à vous rapprocher de la grande communauté qui s’est formé autour.
Pour les besoins de cet article, nous allons nous contenter de créer un scénario assez basique, qui se connectera sur le site « Le bon coin », qui ira chercher les offres liées à une guitare « Fender », puis qui nous alertera en cas de prix intéressant …
Première chose, définir l’URL de base dans Sélenium IDE, puis cliquer sur le bouton d’enregistrement de scénario (le bouton rouge) :
A partir de maintenant, toute action déclenchée sur la fenêtre Firefox va être enregistrée.
Nous commençons par répercuter l’URL de base :
Admettons maintenant que je souhaite rechercher en Corse. Je clique donc sur l’ile de Beauté … :
Maintenant, nous saisissons dans la zone de recherche « guitare fender », puis nous cliquons sur le bouton « CHERCHER ». Enfin nous cliquons sur « Trier par prix » :
Cliquons maintenant sur la première offre (la moins chère) :
Notez qu’à ce stade, l’ensemble de nos actions sont logguées dans Selenium IDE :
Arrêtons l’enregistrement du scénario.
Nous pouvons maintenant demander à Sélenium de le rejouer pour nous, tout simplement en cliquand sur l’icone vert, en haut à gauche :
A ce moment là, vous constaterez que l’écran Firefox s’anime, et reproduit fidèlement les actions que vous avez enregistré précedemment.
Nous allons maintenant enregistrer notre travail, en cliquant sur « File », puis « Save Test Case » :
puis, nous sauvegardons notre scénario :
Attention à bien suffixer votre fichier avec l’extension .html, sans quoi l’OAT ne le reconnaitra pas.
Bien, nous pouvons maintenant fermer l’écran Firefox. Nous n’en aurons plus besoin.
De retour sur l’OAT, nous cliquons maintenant sur le bouton « Raffraichir » :
Comme vous pouvez le constater, nous retrouvons notre nouveau scénario.
Nous sélectionons se nouveau scénario, puis nous cliquons sur « Ouvrir scénario distant » :
Nous voici maintenant avec un scénario prêt à l’emploi.
Jetons maintenant un oeil avisé sur la zone « arguments » de l’écran …
La sonde que nous allons utiliser utilise 6 arguments :
- criticalavailability : Niveau de disponibilité (en %) sous lequel la sonde produira un statut CRITICAL. Le niveau de disponibilité correspond au pourcentage d’étapes qui se sont bien déroulées, par rapport au nombre total d’étapes dans le scénario
- warningavailability : Niveau de disponibilité (en %) sous lequel la sonde produira un statut CRITICAL
- criticaltimeall : Temps de réponse (en secondes) pour l’ensemble du scénario au-delà duquel la sonde produira un statut CRITICAL
- warningtimeall : Temps de réponse (en secondes) pour l’ensemble du scénario au-delà duquel la sonde produira un statut WARNING
- criticaltime : Temps de réponse (en secondes) chaque étape du scénario au-delà duquel la sonde produira un statut CRITICAL
- warningtime : Temps de réponse (en secondes) chaque étape du scénario au-delà duquel la sonde produira un statut WARNING
Avant de déployer ce Scénario sur Centreon, testons le, en cliquant sur « Tester le scénario » :
Diable ! le scénario tombe en erreur.
Tant pis … cet article n’a pas pour but d’arriver à un scénario opérationnel, mais simplement de vous montrer comment le module Selenium fonctionne …
Notons ici que la sonde nous montre le détail des différentes étapes qui sont rejouées, et qu’elle collecte effectivement les temps de réponses de chacune des étapes.
Sachez également, qu’il est possible, en cliquant sur « Test le scénario en mode visuel » de rejouer le scénario, mais en affichant en session X (comme pour l’enregistrement) la fenêtre Firefox. Ceci peut présenter un intérêt sur les phases de debugging.
Dernière étape, déployons la sonde, en cliquant sur le bouton « Ajouter dans centreon » :
Comme vous pouvez le constater, OAT a bel et bien déployé ce nouveau scénario sur ovp01.overmon.fr, puis redémarré automatiquement ce poller.
Il n’y a plus qu’à contrôler le résultat sur la plateforme Overmon/SaaS :
Comme auparavant, la sonde sort en KO. Ce qui est normal, rappelez-vous … ;o)
Après un certain laps de temps, vous disposerez alors de données métrologiques pertinentes …
… que ce soit au niveau du taux de disponibilité :
… de la durée d’exécution globale :
… que de la durée d’exécution de chaque étape du scénario :
Voilà … à vos claviers, et tous ensemble … supervisons the whole web !!!
L’équipe Overmon
P.S. : Pour vous faire une idée plus précise des possibilités offertes, n’hésitez pas à visionner les vidéos que nous avons produites en relation avec ce sujet. Elles sont disponibles ici