Tutoriel ELK Stack : Kibana, Logstash et Elasticsearch

โšก Rรฉsumรฉ intelligent

ELK Stack combine trois outils open source : Elasticsearch, Logstashet Kibana โ€” pour collecter, stocker, rechercher et visualiser les donnรฉes machine, offrant aux รฉquipes d'ingรฉnierie une journalisation centralisรฉe et des analyses en temps rรฉel pour un dรฉpannage plus rapide sur les serveurs et les applications.

  • ๐Ÿงฉ Rรดles de la pile : Elasticsearch stocke et indexe les donnรฉes, Logstash Kibana traite et enregistre les journaux de bord des processus et des navires, et visualise les rรฉsultats.
  • ???? Recherche รฉlastique : Un moteur de recherche NoSQL basรฉ sur Lucene qui indexe des donnรฉes hรฉtรฉrogรจnes et renvoie des rรฉsultats en texte intรฉgral quasi temps rรฉel via une API REST.
  • ๏ธ Logstash: Un pipeline qui ingรจre, filtre et transforme les journaux provenant de nombreuses sources avant de les intรฉgrer ร  Elasticsearch.
  • (I.e. Kibana : Un tableau de bord web qui transforme les donnรฉes indexรฉes en graphiques, cartes et diagrammes interactifs pour une exploration rapide.
  • ๐Ÿ“ฆ Pile รฉlastique : Les expรฉditeurs Beats lรฉgers collectent des donnรฉes en pรฉriphรฉrie, ce qui a conduit Elastic ร  renommer ELK en Elastic Stack.
  • (I.e. Utilisation en production : NetflixLinkedIn et Medium utilisent ELK sur de grands clusters pour la journalisation, la sรฉcuritรฉ et la surveillance.
  • ๏ธ ELK contre Splunk : ELK est gratuit et open source, tandis que Splunk est une plateforme commerciale offrant un traitement plus rapide et des intรฉgrations plus larges.

Architecture ELK Stack montrant comment Kibana, LogstashElasticsearch et d'autres systรจmes fonctionnent de concert pour la journalisation et l'analyse centralisรฉes.

La suite ELK est l'une des solutions open source les plus utilisรฉes pour la journalisation centralisรฉe et l'analyse des journaux. Ce tutoriel sur la suite ELK explique le rรดle d'Elasticsearch. Logstash, et Kibana sont, comment les trois outils s'articulent et oรน la plateforme est utilisรฉe dans le travail de surveillance et d'observabilitรฉ du monde rรฉel.

Qu'est-ce que la pile ELK ?

Le ELK Stack est une collection de trois produits open source : Elasticsearch, LogstashKibana offre une journalisation centralisรฉe qui facilite l'identification des problรจmes liรฉs aux serveurs ou aux applications en permettant de rechercher tous les journaux en un seul endroit. Elle permet รฉgalement de corrรฉler les journaux de plusieurs serveurs sur une pรฉriode donnรฉe.

  • E signifie Elasticsearch : utilisรฉ pour stocker les journaux.
  • L qui veut dire Logstash: utilisรฉ pour les naviresping, le traitement et le stockage des journaux.
  • K reprรฉsente Kibana : un outil de visualisation (une interface web) hรฉbergรฉe via Nginx ou Apache.

Elasticsearch, LogstashKibana et d'autres plateformes sont dรฉveloppรฉes, gรฉrรฉes et maintenues par une sociรฉtรฉ nommรฉe ร‰lastique.

L'ensemble de la suite ELK est conรงu pour permettre aux utilisateurs de rรฉcupรฉrer des donnรฉes provenant de n'importe quelle source, dans n'importe quel format, puis de rechercher, d'analyser et de visualiser ces donnรฉes en temps rรฉel.

ELK Stack Architecture

Maintenant que vous savez ce qu'est la pile, cette section explique l'architecture ELK et comment les donnรฉes circulent entre les composants.

Le pipeline ELK suit une sรฉquence claire dans laquelle chaque outil a une tรขche dรฉdiรฉe :

  • Journaux Les journaux du serveur qui doivent รชtre analysรฉs ont รฉtรฉ identifiรฉs.
  • Logstash: Collecte les journaux et les donnรฉes d'รฉvรฉnements, puis les analyse et les transforme.
  • Recherche รฉlastique : Les donnรฉes transformรฉes par Logstash est stockรฉe, recherchรฉe et indexรฉe.
  • Kibana : Utilise la base de donnรฉes Elasticsearch pour explorer, visualiser et partager des informations.

Cependant, un quatriรจme composant, nommรฉ Beats, est souvent ajoutรฉ pour la collecte de donnรฉes. Les Beats sont des modules d'expรฉdition lรฉgers installรฉs sur les serveurs ; leur ajout a conduit Elastic ร  renommer ELK en Elastic Stack.

Schรฉma d'architecture ELK Stack montrant le LogstashFlux de donnรฉes Elasticsearch et Kibana

Lorsque vous traitez de trรจs grandes quantitรฉs de donnรฉes, vous pouvez ajouter Kafka ou RabbitMQ en amont du pipeline pour la mise en mรฉmoire tampon et la rรฉsilience.

Pour plus de sรฉcuritรฉ, un proxy inverse tel que Nginx peut รชtre placรฉ devant la pile.

Architecture ELK Stack avec ajout de Beats pour la collecte de donnรฉes

Compte tenu de cette architecture, les sections suivantes examinent plus en dรฉtail chaque produit open source de la pile.

Qu'est-ce qu'Elasticsearch ?

Elasticsearch est un Base de donnรฉes NoSQL Basรฉ sur le moteur de recherche Lucene et conรงu avec des API RESTful, ce systรจme offre un dรฉploiement simple, une grande fiabilitรฉ et une gestion aisรฉe. De plus, il centralise le stockage de toutes vos donnรฉes, vous permettant ainsi d'effectuer des requรชtes avancรฉes et des recherches documentaires rapides.

Elasticsearch permet รฉgalement de stocker, de rechercher et d'analyser de grands volumes de donnรฉes. Il est le plus souvent utilisรฉ comme moteur sous-jacent des applications aux exigences de recherche รฉlevรฉes.

Grรขce ร  ses fonctionnalitรฉs d'analyse et ร  ses nombreuses options avancรฉes qui s'ajoutent ร  une recherche rapide, Elasticsearch a รฉtรฉ largement adoptรฉ par les plateformes de recherche des applications web et mobiles modernes.

Fonctionnalitรฉs d'Elasticsearch

Elasticsearch offre un ensemble riche de fonctionnalitรฉs pour l'indexation et la recherche de donnรฉes :

  • Un serveur de recherche open source รฉcrit en Java.
  • Capable d'indexer tout type de donnรฉes hรฉtรฉrogรจnes.
  • Fournit une interface web API REST avec sortie JSON.
  • Recherche en texte intรฉgral.
  • Recherche quasi temps rรฉel (NRT).
  • Un systรจme de stockage de documents JSON partitionnรฉ, rรฉpliquรฉ et interrogeable.
  • Systรจme de stockage de documents distribuรฉ, sans schรฉma, basรฉ sur REST et JSON.
  • Prise en charge multilingue et de la gรฉolocalisation.

Avantages d'Elasticsearch

  • Stocke des donnรฉes sans schรฉma et peut รฉgalement crรฉer un schรฉma pour vos donnรฉes.
  • Permet de manipuler les enregistrements un par un ร  l'aide d'API multi-documents.
  • Permet de filtrer et d'interroger vos donnรฉes pour en extraire des informations pertinentes.
  • Basรฉ sur Apache Lucene et fournissant une API RESTful.
  • Offre une รฉvolutivitรฉ horizontale, une fiabilitรฉ et une capacitรฉ multi-locataire pour l'indexation en temps rรฉel et une recherche plus rapide.
  • Permet de mettre ร  l'รฉchelle verticalement et horizontalement.

Le tableau ci-dessous explique les principaux termes que vous rencontrerez lorsque vous travaillerez avec Elasticsearch :

Long Utilisation
Cluster Un cluster est un ensemble de nล“uds qui contiennent vos donnรฉes et offrent des capacitรฉs combinรฉes d'indexation et de recherche.
Nล“ud Un nล“ud correspond ร  une instance Elasticsearch unique. Il est crรฉรฉ au dรฉmarrage de l'instance Elasticsearch.
Sommaire Un index est un ensemble de documents partageant des caractรฉristiques similaires, comme des donnรฉes clients ou un catalogue de produits. Il est utile pour les opรฉrations d'indexation, de recherche, de mise ร  jour et de suppression, et il est possible de dรฉfinir plusieurs index au sein d'un mรชme cluster.
Documents Un document est l'unitรฉ d'information de base pouvant รชtre indexรฉe. Il est exprimรฉ sous forme de paire clรฉ-valeur JSON, et chaque document est associรฉ ร  un type et ร  un identifiant unique.
Tesson Chaque index peut รชtre divisรฉ en plusieurs fragments pour rรฉpartir les donnรฉes. Un fragment est l'unitรฉ de base d'un index et peut รชtre rรฉparti sur l'ensemble du cluster ร  mesure que vous ajoutez des nล“uds.

Qu'est-ce que le Logstash?

Logstash est l'outil de collecte de donnรฉes de la suite. Il collecte les donnรฉes d'entrรฉe et les intรจgre ร  Elasticsearch, rassemblant ainsi tous types de donnรฉes provenant de diffรฉrentes sources et les rendant disponibles pour une utilisation ultรฉrieure.

Logstash Cette solution permet d'unifier des donnรฉes provenant de sources disparates et de les normaliser pour les destinationes de votre choix. Vous pouvez ainsi nettoyer et dรฉmocratiser toutes vos donnรฉes pour une vaste gamme d'applications d'analyse et de visualisation.

Il se compose de trois รฉlรฉments :

  • Entrรฉes : Il reรงoit les journaux et les convertit en un format lisible par machine.
  • Filtres: un ensemble de conditions qui effectuent une action particuliรจre sur un รฉvรฉnement.
  • Sortie : le dรฉcideur qui achemine chaque รฉvรฉnement ou journal traitรฉ.

Caractรฉristiques Logstash

Logstash comprend plusieurs fonctionnalitรฉs qui rendent le traitement des journaux flexible :

  • Les รฉvรฉnements transitent par chaque phase via des files d'attente internes.
  • Permet diffรฉrentes entrรฉes pour vos journaux.
  • Permet de filtrer et d'analyser vos journaux.

Avantages de Logstash

  • Centralise le traitement de vos donnรฉes.
  • Analyse une grande variรฉtรฉ de donnรฉes et d'รฉvรฉnements structurรฉs et non structurรฉs.
  • Propose des plugins permettant de se connecter ร  de nombreux types de sources d'entrรฉe et de plateformes.

Quโ€™est-ce que Kibana ?

Kibana est l'outil de visualisation de donnรฉes qui complรจte la suite ELK. Il permet de visualiser les documents Elasticsearch et aide les dรฉveloppeurs ร  comprendre rapidement leurs donnรฉes grรขce ร  des diagrammes interactifs, des donnรฉes gรฉospatiales et des graphiques qui simplifient la comprรฉhension des requรชtes complexes.

Vous pouvez utiliser Kibana pour rechercher, visualiser et interagir avec les donnรฉes stockรฉes dans les index Elasticsearch. Il vous permet รฉgalement d'effectuer des opรฉrations avancรฉes. l'analyse des donnรฉes et prรฉsentez vos donnรฉes sous forme de tableaux, de graphiques et de cartes variรฉs.

Kibana prend en charge plusieurs mรฉthodes de recherche dans vos donnรฉes. Les types de recherche les plus courants sont รฉnumรฉrรฉs ci-dessous :

Type de recherche Utilisation
Recherches de texte libre Utilisรฉ pour rechercher une chaรฎne de caractรจres spรฉcifique.
Recherches au niveau du champ Utilisรฉ pour rechercher une chaรฎne de caractรจres dans un champ spรฉcifique.
Dรฉclarations logiques Utilisรฉ pour combiner des recherches en une instruction logique.
Recherches de proximitรฉ Utilisรฉ pour rechercher des termes ร  proximitรฉ d'un caractรจre spรฉcifique.

Kibana offre รฉgalement un certain nombre de fonctionnalitรฉs puissantes pour explorer les donnรฉes indexรฉes :

  • Un tableau de bord frontal performant qui visualise les informations indexรฉes provenant du cluster Elasticsearch.
  • Permet la recherche en temps rรฉel d'informations indexรฉes.
  • Permet de rechercher, de visualiser et d'interagir avec les donnรฉes stockรฉes dans Elasticsearch.
  • Exรฉcute des requรชtes sur les donnรฉes et visualise les rรฉsultats sous forme de graphiques, de tableaux et de cartes.
  • Un tableau de bord configurable pour segmenter et analyser les donnรฉes. Logstash journaux dans Elasticsearch.
  • Fournit des donnรฉes historiques sous forme de graphiques, de tableaux, etc.
  • Offre des tableaux de bord en temps rรฉel faciles ร  configurer.

Avantages et inconvรฉnients de Kibana

Comme tout outil, Kibana possรจde des atouts indรฉniables qui expliquent sa popularitรฉ :

  • Visualisation facile des donnรฉes.
  • Entiรจrement intรฉgrรฉ ร  Elasticsearch.
  • Il sert d'outil de visualisation dรฉdiรฉ.
  • Offre des fonctionnalitรฉs d'analyse, de reprรฉsentation graphique, de synthรจse et de dรฉbogage en temps rรฉel.
  • Offre une interface intuitive et conviviale.
  • Permet de partager des instantanรฉs des journaux que vous avez consultรฉs.
  • Permet d'enregistrer et de gรฉrer plusieurs tableaux de bord.

Il convient รฉgalement de garder ร  l'esprit quelques limitations :

  • Il fonctionne uniquement avec Elasticsearch comme source de donnรฉes.
  • La crรฉation et le rรฉglage de tableaux de bord complexes peuvent nรฉcessiter un apprentissage approfondi.

Pourquoi l'analyse des journaux ?

Dans les infrastructures basรฉes sur le cloud, la performance et l'isolation sont primordiales.

Les performances des machines virtuelles dans le cloud peuvent varier en fonction des charges spรฉcifiques, des environnements et du nombre d'utilisateurs actifs ; la fiabilitรฉ et les pannes de nล“uds peuvent donc devenir des problรจmes importants.

A plateforme de gestion des journaux peut surveiller tous ces problรจmes. Il peut รฉgalement traiter les journaux du systรจme d'exploitation, les journaux des serveurs Web Nginx et IIS pour l'analyse du trafic, les journaux d'application et les journaux gรฉnรฉrรฉs sur AWS (Amazon Services Web).

En fin de compte, la gestion des journaux est utile DevOps Les ingรฉnieurs et les administrateurs systรจme prennent de meilleures dรฉcisions, fondรฉes sur les donnรฉes. C'est pourquoi l'analyse des journaux via Elastic Stack ou des outils similaires est devenue essentielle.

ELK contre Splunk

Une question frรฉquente est de savoir comment la suite ELK se compare ร  Splunk, une alternative commerciale populaire. Le tableau ci-dessous rรฉsume les principales diffรฉrences :

WAPITI Splunk
ELK est un outil open-source. Splunk est un outil commercial.
ELK n'offre pas Solaris portabilitรฉ grรขce ร  Kibana. Offres Splunk Solaris portabilitรฉ.
La vitesse de traitement est strictement limitรฉe. Offre un traitement prรฉcis et rapide.
ELK est une pile technologique crรฉรฉe ร  partir de la combinaison d'Elasticsearch, Logstashet Kibana. Splunk est un outil propriรฉtaire qui propose des solutions sur site et dans le cloud.
Dans ELK, la recherche, l'analyse et la visualisation ne sont possibles qu'une fois la pile configurรฉe. Splunk est une solution complรจte de gestion des donnรฉes prรชte ร  l'emploi.
ELK offre une intรฉgration intรฉgrรฉe limitรฉe avec d'autres outils. Splunk est utile pour configurer des intรฉgrations avec d'autres outils.

ร‰tudes de cas

De nombreuses entreprises renommรฉes utilisent la suite ELK pour gรฉrer la journalisation et l'analyse ร  grande รฉchelle. Les exemples ci-dessous illustrent son utilisation en production.

Netflix

Netflix L'entreprise s'appuie fortement sur la suite ELK pour surveiller et analyser les journaux de sรฉcuritรฉ de ses opรฉrations de service client. La plateforme permet Netflix Indexer, stocker et rechercher des documents sur plus de quinze clusters composรฉs d'environ 800 nล“uds.

LinkedIn

Le rรฉseau social professionnel LinkedIn utilise la suite ELK pour surveiller ses performances et sa sรฉcuritรฉ. Son รฉquipe a intรฉgrรฉ ELK ร  Kafka pour gรฉrer la charge en temps rรฉel, et l'exploitation s'รฉtend sur plus de 100 clusters rรฉpartis dans six centres de donnรฉes.

Tripwire

Tripwire, fournisseur mondial de solutions de gestion des informations et des รฉvรฉnements de sรฉcuritรฉ (SIEM), utilise la suite ELK pour prendre en charge l'analyse des journaux de paquets d'informations.

Moyenne

Medium, la plateforme de publication de blogs populaire, utilise la suite ELK pour dรฉboguer les problรจmes de production et dรฉtecter les anomalies. DynamoDB Points d'intรฉrรชt. Cette infrastructure permet ร  l'entreprise de prendre en charge 25 millions de lecteurs uniques et des milliers de nouveaux articles chaque semaine.

Avantages et inconvรฉnients de la pile ELK

Avantages

La suite ELK offre plusieurs avantages qui expliquent sa large adoption :

  • Il fonctionne de maniรจre optimale lorsque les journaux des diffรฉrentes applications d'une entreprise convergent vers une seule instance ELK.
  • Elle offre une analyse approfondie ร  partir d'un seul enregistrement et รฉlimine la nรฉcessitรฉ de se connecter ร  des centaines de sources de donnรฉes distinctes.
  • Installation rapide sur site.
  • Facile ร  dรฉployer et รฉvolutif aussi bien verticalement qu'horizontalement.
  • Elastic propose de nombreux clients linguistiques, dont Ruby, PythonPHP, Perl, .NET, Java et JavaScรฉnario.
  • Des bibliothรจques sont disponibles pour de nombreux langages de programmation et de script.

Dรฉsavantages

Malgrรฉ ses atouts, la suite ELK prรฉsente quelques inconvรฉnients ร  prendre en compte :

  • La gestion des diffรฉrents composants peut devenir difficile ร  mesure que l'on passe ร  une configuration plus complexe.
  • Il y a une vรฉritable courbe d'apprentissage, alors attendez-vous ร  quelques essais et erreurs au fur et ร  mesure que vous gagnerez en expรฉrience.

FAQ

Beats est un outil lรฉger et open source d'envoi de donnรฉes, installรฉ comme agent sur les serveurs. Filebeat transfรจre les fichiers journaux et Metricbeat collecte les mรฉtriques systรจme. Ils envoient les donnรฉes directement ร  Elasticsearch ou viaโ€ฆ LogstashL'ajout de Beats pour la collecte de donnรฉes a conduit Elastic ร  renommer la suite ELK en Elastic Stack.

ELK signifie Elasticsearch, Logstashet Kibana. Lorsque Elastic a ajoutรฉ Beats, sa suite d'outils lรฉgers d'expรฉdition de donnรฉes, le produit combinรฉ a รฉtรฉ renommรฉ Elastic Stack. Elastic Stack dรฉsigne donc les trois mรชmes outils, auxquels s'ajoutent Beats et des fonctionnalitรฉs supplรฉmentaires telles que la sรฉcuritรฉ et l'apprentissage automatique.

Oui. Elasticsearch, LogstashElasticsearch et Kibana sont tรฉlรฉchargeables gratuitement. Depuis 2024, Elastic propose Elasticsearch et Kibana sous licence open source AGPLv3, en plus des licences SSPL et Elastic License. Les fonctionnalitรฉs avancรฉes, telles que l'apprentissage automatique et les alertes, nรฉcessitent un abonnement payant.

Elasticsearch est une base de donnรฉes NoSQL orientรฉe documents et flexible en termes de schรฉma, construite sur Apache Lucene et interrogรฉe via une API REST. Contrairement aux bases de donnรฉes relationnelles qui utilisent des tables et des lignes fixes, ainsi que le langage SQL avec transactions ACID, Elasticsearch est optimisรฉ pour la recherche plein texte et l'analyse quasi temps rรฉel, plutรดt que pour une stricte cohรฉrence transactionnelle.

Les nล“uds de production nรฉcessitent gรฉnรฉralement au moins 16 Go de RAM, la mรฉmoire JVM รฉtant allouรฉe ร  environ 50 % de la mรฉmoire totale et ne devant pas dรฉpasser 30 Go. Les petites configurations de test ou autonomes fonctionnent avec moins de mรฉmoire. Beats et Logstash nรฉcessitent beaucoup moins de ressources qu'Elasticsearch.

Grok est un Logstash Plugin de filtrage qui analyse les lignes de journal non structurรฉes et les transforme en champs structurรฉs et nommรฉs ร  l'aide de modรจles rรฉutilisables basรฉs sur des expressions rรฉguliรจres. Il est largement utilisรฉ pourโ€ฆtracles horodatages, les adresses IP et les codes d'รฉtat des journaux du serveur Web et de l'application avant leur indexation dans Elasticsearch.

Elasticsearch intรจgre un systรจme d'apprentissage automatique qui modรฉlise le comportement normal des journaux et signale automatiquement les anomalies. Ces fonctionnalitรฉs d'AIOps regroupent les messages similaires, dรฉtectent les volumes inhabituels et accรฉlรจrent l'analyse des causes profondes, rรฉduisant ainsi le dรฉlai moyen de rรฉsolution. Il est toutefois recommandรฉ aux ingรฉnieurs d'examiner les รฉvรฉnements signalรฉs avant d'intervenir.

Oui. Des outils tels que ChatGPT et Copilote GitHub peut rรฉdiger Logstash Comprenez les modรจles Grok, le DSL des requรชtes Elasticsearch et les paramรจtres Kibana en quelques clics. Testez systรฉmatiquement les pipelines gรฉnรฉrรฉs, car l'IA peut utiliser des noms de champs obsolรจtes ou une syntaxe dรฉprรฉciรฉe.

Rรฉsumez cet article avec :