Montreal Monitoring

Second meetup : Présensation du projet Kaji et exemple métier



Sébastien Coavoux

sebastien.coavoux@savoirfairelinux.com

version PDF

Programme de ce soir

  • Présentation de Kaji
  • Exemple de supervision : site web par scénario

Kaji : Comment cuisiner un gâteau open-source

_images/saint-honore1.jpg

Ingrédient de base : Shinken

  • Framework de supervision :
    • Il agit comme la pâte du gâteau
    • Il est très flexible, les modules permettent d’exporter / importer des données n’importe où
  • Repond au besoin d’un noyau “brut” de supervision avec de grandes capabilités

Pâte à choux : Adagios

  • Interface utilisateur pour le web : c’est la partie principale du gâteau
  • Répond au besoin d’une interface pour afficher et configurer la supervision

Crême patissière : InfluxDB

  • Les bases de données timeseries sont la chose la plus douce (sucrée) pour la supervision. Influx agit comme la vanille
  • Répond au besoin d’un modèle de données particulier à la supervision
  • La vanille a besoin de lait et de sucre : ajoutons mod-influxdb pour Shinken et aussi Rekishi pour Adagios dans le mélange !

Crême fouettée : Grafana

  • Grafana enjolive le gateau avec des graphs
  • Il répond au besoin d’outil de dashboard possédant une intégration native avec InfluxDB

Caramel : Nagvis

  • Ajoute une autre touche sucrée à la recette, l’intégration à Adagios est transparente
  • Répond au besoin d’avoir une vue carthographique, il permet de créer des cartes à l’aide de fonds personnalisés.

Packaging : packaging

  • Maintenant que notre gâteau est prêt, il ne reste plus qu’à lui trouver une boîte pour l’emballer
  • Kaji est déja packagé pour de nombreuses distribution linux (rpm / deb), un dépot est disponible pour une maintenance facile.

Un nom pour ce gâteau : Kaji

  • Le nom de ce gateau (le vrai) est Saint-Honoré, sa structure rappelle le coté modulaire de Kaji
  • Il existe plusieurs type de Saint Honoré, comme il existe plusieurs applications pour Kaji
_images/saint-honore2.jpg _images/saint-honore3.jpg _images/saint-honore4.jpg

Questions ?


"Je ne peux rien pour qui ne se pose pas de questions." - Confucius

Demo

Il est maintenant temps de montrer Kaji en action!

Demo

Exemple d'architecture modulaire

_images/PocSAAS.png

Avantages

  • Chaque client est isolé, cela permet de contourner les limitation actuelles d’adagios en matière de gestion des droits des utilisateurs.
  • Le confinement est plus grand que s’il y avait une seul interface : les données lives sont dans la VM pour le client (influxdb)
  • Tout est dans une seule VM, l’architecture est donc “jetable”. Si le client part, il faut supprimer la VM.

Inconvénients

  • Architecture plus complexe dans Shinken
  • L’authentification Apache est limitée (changement de mot de passe)
  • Ne resout pas le problème de différents type d’utilisateurs

C'est l'heure de la pause!

On se revoit dans 5-10 minutes? :)

Et si on supervisait des sites webs?

Supervision web

  • Standard
    • check_http
  • Historique
    • WebInject
  • Nouveautés
    • Selenium
  • Autres possibilités
    • PhantomJS, CasperJS

Supervision basique

Plugin Nagios standard check_http

Basique

./check_http -H shop.lego.com

En spécfiant une IP

./check_http -H shop.lego.com -I 171.20.70.113

En suivant la redirection web

./check_http -H shop.lego.com -I 171.20.70.113 -f follow

Scénario Web

WEBINJECT

  • Permet de créer des scénarios Web

  • Pour créer un scénario, il faut soit :
    • Connaître le fonctionnement du site
    • Faire rétroingénierie du site
  • Liens
    • http://www.webinject.org
    • https://github.com/sni/Webinject

WebInject

config.xml

<globalhttplog>onfail</globalhttplog>

lego.xml

<testcases repeat="1">
    <case
        id             = "1"
        description1   = "Lego store home page"
        method         = "get"
        url            = "http://shop.lego.com/fr-CA/"
        verifypositive = "Du Nouveau"
        label          = "homepage"
    />
</testcases>

Lancement du test

perl bin/webinject.pl -c config.xml lego.xml -r nagios

Supervision avec Selenium

  • Outil d’intégration continue pour le développement web

  • Permet de créer des scénarios Web
    • À l’aide d’une interface graphique
  • Pour créer un scénario, il faut :
    • Savoir utiliser Selenium IDE
  • Liens
    • http://sfl-monitoring-tools.readthedocs.org/en/latest/plugins/check-selenium/plugin-check_selenium.html

Démonstration

Lancer le plugin

Debug

python check_selenium -S scenarios/ -s lego -d
OK: Scenario execution time: 16.03 seconds|time=16.03s;;;0.0;

Pour Nagios/Shinken

python check_selenium -S scenarios/ -s lego -f
OK: Scenario execution time: 16.03 seconds|time=16.03s;;;0.0;

Autres possibilités

  • PhantomJS
    • CheckmyWS
      • https://checkmy.ws
    • PhantomJS-nagios
      • https://github.com/hggh/phantomjs-nagios

Merci

Au plaisir de vous revoir au prochain meetup!

⇑⇑ savoirfairelinux.github.io/presentations/meetup/2015-03-02 ⇑⇑

Sources

Images :