Cas Utilisateur

La Suite Elastic : une boîte de Lego avec une imprimante 3D

Il y a 2 ans, en tant qu’architecte de l’infrastructure des sauvegardes des systèmes Windows, Linux et Unix chez PSA (Peugeot, Citroën Automobile sans oublier DS), on m’a demandé de regarder ce que faisait PSA avec Elasticsearch (i.e. stockage et recherche de logs multilignes pour la fabrication). L’idée était de déterminer comment en généraliser l’utilisation pour en faire un service d’infrastructure centralisé et mutualisé.

Elasticsearch est utilisé depuis 2 ans chez PSA et il se substitue à toutes écritures de fichiers log. Après quelques recherches sur Internet, que ne fut pas ma surprise de découvrir les autres briques de cet écosystème. La Suite Elastic se compose d’Elasticsearch, Logstash et Kibana.

  • Logstash est, pour moi, un véritable couteau suisse du traitement des logs. Il peut en déterminer les différents formats mais aussi dialoguer directement suivant des protocoles très variés. Il détient également un composant essentiel appelé Grok : champion des expressions régulières.
  • Elasticsearch, offre une mise en œuvre initiale hyper-rapide et hyper-simple tout en étant un outil hyper-scalable.
  • Kibana est, selon moi, la brique la plus satisfaisante. Elle offre la possibilité de plonger, naviguer et rechercher des informations dans cet océan de logs à partir des métadonnées ajoutées par Logstash. Par exemple: choisir un mot, puis un autre, suivre leurs apparitions dans les messages via l’histogramme coloré.

kibana_dashboard_PSA.png

Figure 1 : Histogramme Kibana permettant de suivre l'apparition des message en temps réel

Ou encore, vérifier l’équilibrage de la charge sur un cluster applicatif par l’ajout d’un camembert qui fait apparaître un 50/50, 33/33/34, 13/13/13/13/13/13/13/13 et permet de vérifier d'un coup d’œil que tout va bien.

pie_chart_kibana_PSA.png

Figure 2 : Camembert Kibana permettant de vérifier l'équilibrage des cluster

Ou au contraire un 13/13/13/30/30 qui montre que, suite au dernier changement, un ou plusieurs nœuds sont soit mal desservis, soit il existe un chemin réseau anormal.



pie_chart_2_kibana_PSA.png

Figure 3 : Camembert Kibana montrant un déséquilibre de la charge des clusters

kibana_dashboard_2_PSA.png

kibana_dashboard_3_PSA.png

Figure 4 et 5 : Histogrammes Kibana montrant un déséquilibre de la charge des clusters

J’étais un peu frustré au moment de vouloir exporter ce dashboard (c’est son nom) avant de faire une capture d’écran ou un copier/coller vers Excel et de découvrir que ça marche (Eureka !). J’ai aussi découvert la documentation en ligne et le blog, journal du matin à lire avant la météo et avant la surveillance des clusters Elasticsearch et des applications qui l’utilisent. C’est comme recevoir sa première boite de Lego à Noël! Faire la première construction c’est déjà bien mais on veut surtout tout essayer!

Après cette première étape, j’enrichis les logs. Au passage je découvre les vidéos éternelles de Shay Banon, Jordan Sissel et Rashid Khan et la démonstration sur Raspéry PI et la vision du downscale applicatif.

Je commence par la normalisation des dates. Puis j’utilise Grok, le scalpel du formatage des logs avec son dictionnaire de format prédéfini qu’il est possible de compléter, permettant ainsi l’automatisation de l’ajout de sens à ses messages et la reconnaissance des champs numériques. Dès lors, je passe les logs dans Kibana avec un panel au format table ou camembert et un historique qui permet de suivre l’évolution des grandeurs numériques. Du coup, au lieu d’avoir uniquement les logs avec l’accès à un site apache, j’ai aussi une vision centralisée de ces logs qui me permet de suivre la qualité de ce site.

kibana_dashboard_4_PSA.png

Figure 6 : Dashboard Kibana montrant les indicateurs de performance et de qualité du site

Sans oublier l’utilisation de geoip pour identifier le pays de connexion d’un internaute.

kibana_geoip_PSA.png

Figure 7 : Carte Kibana utilisant la géolocalisation pour identifier le pays de connexion des internautes

Au même moment, je découvre Splunk. Cependant, pour naviguer dans les données avec cet outil, il faut définir sa sélection de données, définir sa visualisation, puis placer ses visualisations dans un dashboard. C’est un outil très très puissant, mais le parcours utilisateur est très sclérosé. Sans parler d’une licence indéxée sur le volume quotidien de données. Résultat: seulement 6 à 10 utilisateurs chez PSA, là où Kibana a déjà conquis 20 utilisateurs en seulement 6 mois.

Et là au détour d’un Meetup je découvre la facilité de créer des plugins pour Logstash :

  1. Faire un input plugin qui capture une image via la webcam
  2. Faire un filter plugin qui compare cette image à la précédente ou à une image de référence
  3. Faire un output plugin qui utilise la synthèse vocale pour diffuser un message d’alerte

Donc non seulement on a la boîte de Lego mais aussi l’imprimante 3D pour créer de nouvelles pièces. Et là, quitte à copier un slogan déjà utilisé : s’il vous manque quelque chose… Just Do It!

Sans parler de...


L’équipe dynamique
.

Des meetups. Lieux d’échange conviviaux où se retrouvent vieux développeurs barbus, jeunes loups aux dents longues avides de la dernière techno à la mode, experts systèmes d’entreprise à la recherche de toujours plus d’automatisation pour pallier au manque de ressources. A cette occasion, je devais faire une présentation de 20 minutes puis 10 minutes de Q&A, mais ça a duré 45 minutes (désolé pour le suivant) et ensuite 2h de questions autour d’un buffet.

L’occasion de présenter l’expérience PSA mais aussi ma lettre au Père Noël. Nous avions notamment le besoin d’un heartbeat dans Logstash et 6 mois plus tard cette fonction est disponible même étendue par une analyse fonctionnelle poussée.

Ensuite tel un pasteur, j’ai fait mon premier discours et ma première démonstration en comité restreint. Devant l’accueil et la satisfaction de tous, j’ai entamé une longue route pour évangéliser les différentes BU (Business Units) de l’entreprise - ce qui a d’ailleurs rencontré un grand succès. Que dire de plus si ce n’est qu’en 2 ans la Suite Elastic chez PSA c’est 92 applications opérationnelles ou en cours de mise en œuvre.

suivi_projet_PSA.png

Figure 8 : Répartition des différents projets utilisant la suite Elastic chez PSA

Pour plus de détails concernant les applications de la Suite Elastic chez PSA, vous pouvez visionner ma présentation "Kibana l'efficience à PSA" que j'ai effectué à l'occasion du Elastic{ON} Tour Paris 2015.


PSA_2.JPG

Alexandre Fricker est architecte de l’infrastructure technique chez PSA Peugeot Citroën. Après 15 ans à gérer l’infrastructure des sauvegardes des systèmes Windows, Linux et Unix, il a découvert Elasticsearch en septembre 2013 et, par la suite, Logstash, Kibana, Redis et Marvel. Aujourd’hui, après avoir mis en place 60 projets pilotes, il est devenu spécialiste du traitement des logs.