MARGO

Actualité

Mise en place d’une plateforme centralisée de gestion des logs avec la suite Elastic

Avoir une vision rapide et claire de ce qui se passe au niveau des applications surveillées

Par Imen Jaouani Software Engineer

04/05/2018

Le volume de données générées par nos systèmes et applications ne cesse de croître, entraînant de fait la multiplication des datacenters et des systèmes de stockage de données.
Devant cette explosion de données et l’investissement engendré en matière de compétences et de ressources, les décideurs ont besoin de disposer d’analyses argumentées et de tableaux de bord sophistiqués leur permettant une bonne gestion des systèmes et des clients.

Dans ce contexte, les consultants Margo ont eu l’occasion de découvrir l’une des solutions répondant à ce besoin dans le cadre des journées Devoxx France 2018 : la suite elastic (Elasticsearch, Logstash, Kibana, Beats, …).
La conférence “Mise en place d’une plateforme centralisée de gestion des logs avec la suite elastic” s’est déroulée le mercredi 18 Avril sous le concept ‘University’ qui est une longue présentation sur une durée de trois heures. Elle était menée par David Pilato, développeur et évangéliste chez elastic.co, et Emmanuel DEMEY, Directeur technique et Formateur Web chez Zenika Lille.

A l’occasion de cette présentation, les conférenciers ont allié théorie et pratique. Ils ont commencé par présenter les dernières fonctionnalités, ainsi que celles à venir pour les différents composants, suivie d’une brève démo et ont fini par une vue architecturale dans la suite elastic.

En s’inspirant de la conférence, nous présenterons la suite elastic dans cet article. Nous avons cependant choisi une approche plus top-down en commençant par une présentation et des cas d’usage. Nous détaillerons l’architecture globale et nous finirons par aborder des produits moins connus comme X-PACK ou Elastic APM.

La suite elastic, qu’est ce que c’est?

Elastic Stack est un groupe de produits open source conçu pour récupérer les données (de n’importe quelle source et dans n’importe quel format), les analyser et les visualiser afin de faire émerger des tendances en temps réel. Ce groupe de produits était historiquement désigné sous l’acronyme ELK (ElasticSearch, Logstash, Kibana). L’ajout d’un quatrième produit nommé “ Beats” a rendu l’acronyme imprononçable, ce qui a donné naissance à la nouvelle appellation Elastic Stack. Ce dernier peut être déployé sur site ou mis à disposition en tant que Software as a Service (SaaS).

Elasticsearch-Portfolio

Parlons pratique, quels sont les cas d’usage de la suite Elastic?

Les cas d’usage de la suite elastic sont nombreux. Nous citons à titre d’exemple la correction d’un dysfonctionnement applicatif par la récupération des erreurs explicites (exception, message d’erreur ..etc) et le suivi de la charge d’une application (mémoire consommée, CPU ..etc), ce qui permet d’avoir une vision globale de la production. De même au niveau métier, il est possible d’exploiter la suite pour valider une chaîne de workflow par l’extraction des données spécifiques et leurs analyses.
Si vous souhaitez voir plus de cas d’usage, elastic.co cite quelques témoignages de ses clients qui ont opté pour la suite elastic pour tirer parti de leurs données. (Voir https://www.elastic.co/fr/use-cases)

L’architecture globale de la suite Elastic

Ci-dessous une vue globale de l’ensemble des composants et de leurs relations :

Margo - L’architecture globale de la suite Elastic

Les différents composants de la suite elastic ont été conçus pour fonctionner et interagir entre eux sans avoir à opérer beaucoup de configurations spécifiques. Cependant, la mise en place initiale dépendra grandement de votre environnement et du cadre d’utilisation.

La suite elastic : quels composants ?

Elasticsearch:

logo elasticsearchElastic search est au coeur de la suite elastic et exerce un rôle central. Il se présente comme un moteur de recherche RESTful moderne complètement open source reposant sur Apache Lucene. Il permet de rechercher et d’indexer des documents dans divers formats. Nous parlons souvent d’un cluster Elasticsearch qui est un groupe d’une ou plusieurs instances de nœuds Elasticsearch connectées ensemble. La puissance d’un cluster Elasticsearch réside dans la distribution des tâches, la recherche et l’indexation, sur tous les nœuds du cluster. Pour plus de détails sur les différents types de nodes existants, voir ce lien: https://www.elastic.co/guide/en/elasticsearch/reference/current/modules-node.html
Parmi les nouveautés présentées lors de la conférence : la nouvelle expérience de mise à jour avec zero-downtime, la réduction de l’espace de stockage utilisé et l’amélioration des réplications. Pour les prochaines versions, de nouvelles fonctionnalités sont prévues telles que l’ajout d’une Rollup API pour Elasticsearch, la suppression des types ou encore le support de SQL.

Kibana:

Logo kibanaKibana est une plate-forme d’analyse et de visualisation open source conçue pour fonctionner avec Elasticsearch. Son interface simple, basée sur un navigateur, vous permet de créer et partager rapidement des tableaux de bord dynamiques en temps réel, facilitant la compréhension de gros volumes de données.
Lors de la démonstration, nous avons pu remarquer la simplicité de configuration de Kibana. Vous pouvez installer Kibana et commencer à explorer vos indices Elasticsearch en quelques minutes – pas de code ni d’infrastructure supplémentaire requise.
De nouvelles fonctionnalités sont également à venir dans les prochaines versions telles que : l’auto-completion (KQL Syntax), waffle maps, Rollups UI et la Vega visualization. Cette dernière permet aux utilisateurs de créer des visualisations personnalisées en utilisant simplement un langage déclaratif basé sur JSON open source et appelé Vega, ou sa version simplifiée appelée Vega-Lite.

vega-lite elastic

Beats (Wire Data, Log Files, Metrics)

Margo - Beats suite Elastic

Beats est la plateforme regroupant des solutions légères de transfert installés sur nos serveurs afin de collecter les données et les centraliser dans Elasticsearch. Si nous souhaitons davantage de puissance de traitement, les Beats peuvent également transférer ces données vers Logstash, qui se chargera de les transformer et de les analyser. Il faut préciser qu’il existe plusieurs types de beats selon le type de données. Dans la présentation, les conférenciers ont traité le PacketBeat qui est un analyseur de paquets réseau léger, par l’envoi des données vers Logstash ou bien Elasticsearch directement ce qui permet le suivi des activités en cours sur nos différentes applications.

Elastic packetbeat protocols

Par la suite, les présentateurs ont mis l’accent sur le FileBeat. Ce dernier se présente tout simplement comme un agent léger permettant le transfert et la centralisation des logs quels que soient leurs nombres, tailles et sources (serveurs, machines virtuelles, conteneurs qui génèrent des logs). En cas d’indisponibilité d’une application ou d’interruption, filebeat reprend sa lecture ou son transfert là où il s’était arrêté, au retour de la connexion. De plus, Filebeat s’adapte au logstash lors de l’envoi des données, en cas de ralentissement ou de congestion, grâce à son protocole de régulation de flux.

Elastic filebeat inputs

Vers la fin de la présentation, les conférenciers ont mis en valeur le MetricBeat, un agent de transfert léger de statistiques comme les indicateurs du CPU, de mémoire, de Redis ou NGINX, et ce, directement depuis nos systèmes et services avec la possibilité de configurer l’intervalle de récupération des statistiques.

Elastic metricbeat modules

Il est possible d’afficher les graphiques correspondant à ces métriques sur Kibana grâce au plugin MetricBeat.

Logstash:

logstash

Logstash est un pipeline open source chargé d’agréger des données provenant d’une multitude de sources, de les traiter et de les envoyer dans le pipeline, généralement pour être directement indexées dans Elasticsearch.

Inputs:

L’une des choses qui rend Logstash si puissant est sa capacité à agréger les journaux et les événements de diverses sources tout en utilisant plus de 50 plugins d’entrée pour différentes plateformes, bases de données et applications.
Les entrées les plus courantes sont les suivantes: fichier, temps, syslog, http, tcp, udp et stdin, mais vous pouvez ingérer des données provenant de nombreuses autres sources.

Filters:

Le rôle essentiel que joue Logstash dans la suite est de permettre aux utilisateurs de filtrer et façonner les données pour en faciliter la compréhension. Pour ce faire, logstash prend en charge un certain nombre de plugins de filtrage extrêmement puissants qui vous permettent de manipuler, mesurer et créer des événements. C’est la puissance de ces filtres qui fait de Logstash un outil très polyvalent et précieux.
Le filtre date, par exemple, est souvent utilisé pour préciser quelle date est utilisée pour l’événement correspondant au log généré. Cette date est récupérée à partir du log et permet l’alimentation du champ @timestamp. Le filtre geoip permet ensuite d’ajouter des informations de géolocalisation à travers une adresse IP (ou hostname) en exploitant la base de données GeoCityLite.

Elastic filter

Outputs:

Logstash supporte plusieurs plugins de sortie qui vous permettent de pousser vos données vers différents emplacements, services et technologies. Le grand nombre de combinaisons d’entrées et de sorties dans Logstash en fait un transformateur d’événements vraiment polyvalent.

En conclusion, nous notons la possibilité de mettre en place plusieurs pipelines selon le besoin. Nous pouvons par exemple distinguer le pipeline des logs d’accès de celui des erreurs.

Pour en savoir plus sur la différence entre logstash et les Beats, nous vous invitons à voir ce lien: https://logz.io/blog/filebeat-vs-logstash/

Les produits les moins connus de la suite elastic

X-Pack

X-Pack se présente comme une extension de la suite elastic qui regroupe des nouvelles fonctionnalités dans un seul package, facile à installer, avec la possibilité d’activer ou de désactiver la fonctionnalité souhaitée. Cette nouveauté a fait de la suite elastic une solution complète d’analyse et de monitoring. Dans le schéma ci-dessous, vous trouverez une vue générale de ces différentes fonctionnalités.

x-pack elastic

Durant la présentation, les conférenciers sont principalement revenus sur trois thèmes : la sécurité, l’alerting et brièvement le machine learning.

Dans cet article, nous aborderons seulement la sécurité et le Machine Learning. Commençons par le X-Pack Security qui nous permet de sécuriser facilement un cluster et de protéger nos données. Cette fonctionnalitée est assurée en empêchant l’accès non autorisé, à travers une protection par mot de passe et un contrôle d’accès basé sur les rôles et le filtrage IP. De même, il est possible d’implémenter des mesures de sécurité plus avancées, telles que le cryptage des communications pour préserver l’intégrité des données ou encore l’audit pour tracer les actions opérées sur les données que votre cluster stocke.

Dans la capture ci-dessous, nous pouvons voir un exemple de définition d’un rôle clicks_admin:

clicks_admin suite Elastic

Nous finissons par le X-Pack Machine Learning qui présente un ensemble d’outils permettant aux utilisateurs d’exploiter les indicateurs relatifs à leurs données Elasticsearch, de détecter des anomalies dans les données temporelles et de recevoir une alerte automatique dans ce cas. Il est également possible de définir des jobs machine learning sur Kibana pour automatiser l’évolution de milliers d’indicateurs et de prédire le futur grâce à l’API Forecast.

APM (Application Performance Monitoring)

Elastic APM est la solution qui fournit des informations sur les performances au niveau applicatif et permet de déboguer rapidement et de corriger les erreurs en cas de problèmes de production. La solution est composée de trois éléments: une interface, un agent et un serveur. Ce dernier indexe les informations dans Elasticsearch, cependant l’interface facilite le monitoring à travers Kibana.

Le schéma ci-dessous donne un aperçu sur la manière dont s’intègre la solution de monitoring APM dans l’architecture globale.

Elastic Application Performance Monitoring

L’ajout d’un agent APM à une nouvelle application est simple et ne nécessite que quelques lignes de code. Une fois le serveur et les agents installés, il est possible d’accéder aux données de performance et d’utiliser les tableaux de bord personnalisables et préconfigurés fournis avec le serveur.

Conclusion

La suite Elastic est à la fois un ensemble de produits simples et complexes. Dans cet article, nous avons expliqué les concepts de base, détaillé l’architecture globale et présenté quelques exemples de produits moins connus.
Nous espérons par cet article vous offrir une meilleure compréhension et le plus important vous inspirer à expérimenter la suite Elastic qui est un outil d’analyse de données riche donnant une vision rapide et claire de ce qui se passe au niveau des applications surveillées. Cependant, il faut noter qu’une étude de besoin est toujours nécessaire avant d’opérer un choix de solutions et que ce dernier dépendra de votre contexte projet.

Références:


Par Imen Jaouani Software Engineer
Big Data
Data
Elasticsearch
Machine Learning
Actualité

La Data Science appliquée au monde du retail : les 10 use-cases incontournables

La Data Science impacte de plus en plus les business model dans toutes les industries, et notamment dans la vente de détail. Selon IBM, 62% des détaillants déclarent que l'utilisation de techniques relatives au Big Data leur donne un sérieux avantage compétitif. Savoir ce que veut votre client et à quel moment est aujourd’hui à portée de main grâce à la data science. Pour cela il suffit d’avoir les bons outils et les bons processus en place pour les utiliser. Nous présentons dans cet article 10 applications essentielles de la data science au domaine du retail.

18/05/2018 Découvrir 
Actualité

Introduction aux Chatbots avec Dialogflow

DialogFlow est un très bon outil pour apprendre à créer des Chatbots qui pourront ensuite être intégrés dans vos propres sites web ou applications. Dans cet article, je commencerai par introduire quelques notions sur Dialogflow et les Chatbots, puis je vous expliquerai comment créer simplement un Chatbot sur cette plateforme.

07/05/2018 Découvrir 
Actualité

Introduction aux systèmes réactifs

Les systèmes réactifs sont un style d’architecture permettant à de multiples applications individuelles de se fondre en une seule unité, en réagissant à leur environnement, tout en restant conscientes les unes des autres. La première formalisation de ce terme a vu le jour avec la création du « Reactive Manifesto » en 2013 par Jonas Boner qui, en rassemblant certains des esprits les plus brillants dans l’industrie des systèmes distribués, souhaitait clarifier la confusion autour de la réactivité (qui est devenu un « buzz-word ») et construire une base solide pour un style de développement viable.

04/05/2018 Découvrir 
Actualité

Introduction à TensorFlow sur le datalab de Google Cloud Platform

TensorFlow est une librairie logicielle, open source depuis 2015, de calcul numérique développée par Google. Dans ce mini-tutoriel, nous allons vous apprendre comment utiliser datalab sur GCP et écrire votre premier programme en TensorFlow.

04/05/2018 Découvrir 
Actualité

Les horloges de Lamport et le pattern de l’Idempotent Producer (Kafka)

Connaissez-vous les horloges de Lamport ? Devoxx France 2018 était l’occasion, lors du très intéressant talk de DuyHai DOAN, de découvrir ou redécouvrir cet algorithme formalisé par Leslie Lamport en 1978, plus que jamais utilisé aujourd’hui dans le domaine des systèmes distribués, et qui aurait notamment inspiré les développeurs de Kafka dans l’implémentation du pattern de l’Idempotent Producer.

26/04/2018 Découvrir 
Actualité

Salon Big Data 2018 : ce qu’il faut en retenir

Selon l’IDC, le marché du Big Data devrait atteindre 203 milliards de dollars de chiffre d’affaires en 2020, contre 130,1 milliards de dollars en 2016. C’est dans ce contexte de forte croissance que 15 200 participants se sont retrouvés au palais des Congrès pour le salon Big data 2018 : deux jours consacrés à la valorisation de la donnée. Les équipes Margo étaient présentes et vous proposent un compte-rendu de ce qu’il faut en retenir.

30/03/2018 Découvrir