Faire du code-review, mettre en place de l’intégration continue et effectuer des tests automatiques font partie des bonnes pratiques permettant d’améliorer la qualité des sites que nous livrons. Pour compléter tout ça nous avons souhaité nous attaquer à la mise en place de monitoring évolué sur ces sites.

En effet, il est crucial d’identifier rapidement tout comportement anormal sur nos sites :

  • indisponibilité, erreur 500, 404, …
  • baisse significative du nombre de commandes enregistrées
  • commande massive sur un produit unique pendant une très courte durée

Cette liste n’étant pas exhaustive, regardons comment elk nous permet d’effectuer cette tâche.

ELK est une pile de logiciels composée de Elasticsearch, LogStash et Kibana pour la mise en place d’une solution de supervision/monitoring.


Elasticsearch

Elasticsearch est un service de base de données où le mappage des données est fluctuant, c’est-à-dire que le mapping peut évoluer ( shema-free ).

Que permet Elasticsearch ?

  • Data en temps réel (dès que vous ajoutez des données, elles sont disponibles. Cela le rend efficace dans un contexte de supervision)
  • Possibilité de mise en cluster incluse par defaut et extrêmement simple (gestion automatique des shards et équilibrage des shards et réplicat sur les differents noeuds)
  • Base de données de type document, NoSQL, dont le schéma est libre et évolutif (schema-free)
  • Interopérabilité (accès via une API RESTful)
    • Facilité d’intégration d’alertes
    • Librairies disponibles pour de nombreux langages

Logstash

Logstash est un pipe permettant de collecter, parser et stocker des logs à l’aide d’entrées, de filtres et de sorties (input, filter, output).

Nous n’utilisons actuellement pas cet élément de la pile ELK, aussi nous ne développerons pas plus ce sujet.

Kibana

Pour la petite histoire, Kibana a commencé comme interface à Logstash et est aujourd’hui l’interface officielle d’Elasticsearch.

C’est une interface qui va vous permettre d’exploiter les données présentes dans Elasticsearch de plusieurs manières :

Que permet Kibana ?

Kibana va vous permettre :

  • De mettre en place des graphiques (pour analyser l’évolution des nouveaux clients par exemple)
  • D’effectuer du requêtage spécifique (% de création de comptes / commandes)
  • De mettre en œuvre des interfaces graphiques (la mise en place de tableaux de bord s’effectue par une interface web permettant de choisir l’affichage désiré)

Pour résumer, Kibana permet de :

  • Requêter
  • Visualiser
  • Faire des statistiques et mettre en corrélation des données

ELK

Cette pile logicielle « ELK » est mise à disposition soit sur le site de Elasticsearch via des paquets spécifiques à votre OS (RPM, DEB…), soit directement depuis des dépôts officiels. (Multi-OS)

Nous pouvons désormais logger et agréger toutes les informations de nos sites e-commerces et en synthétiser les données à notre bon vouloir (graphique, supervision, … notification, alerte, … ).

Nous pouvons maintenant obtenir la date de la dernière commande effectuée sur nos sites, mais également obtenir un graphique de l’évolution du nombre de commandes en fonction du temps.

Autes mises en place envisagées

Les évolutions envisagées sont nombreuses. L’idée est d’ajouter le maximum d’indicateurs afin de remonter des alertes dès qu’un comportement potentiellement anormal se produit :

  • Si nous détectons une masse importante de commandes sur un produit en particulier : peut-être s’agit il d’une erreur de prix sur ce produit ?
  • Si nous détectons une baisse du volume de commandes suite à un déploiement en production : peut-être qu’une regression est passée au travers des tests ?
  • Nous pourrions également quantifier le gain de CA suite à la livraison d’une nouvelle fonctionnalité.

Conclusion

L’utilisation de cette pile logiciel présente de multiples avantages, le plus important étant le peu de limites imposées.

Nous sommes dans une approche big-data. La première opération consiste à récolter le maximum de données. Les suivantes vont être de mettre en place des indicateurs, de créer des corrélations, etc.

A nous d’imaginer, avec nos clients, les usages les plus pertinents afin de leur apporter une véritable valeur ajoutée au travers de l’utilisation de ces outils sur nos plateformes.

Pour aller plus loin…

D’autres produits pourront venir compléter cette suite de monitoring par la suite, nous pouvons citer :