Menu

La traduction automatique a été utilisée pour cette page. Certains contenus peuvent ne pas être parfaits. Faites-nous savoir comment nous pouvons nous améliorer.

Partager des commentaires

Architecture Elasticsearch : 7 Key Components

Sommaire

Partager cette page

Yifat Perry
Yifat Perry

Qu’est-ce qu’Elasticsearch?

Elasticsearch est un moteur de recherche et d’analytique gratuit et open-source basé sur Apache Lucene. Elasticsearch est distribué et prend en charge tous les types de données, y compris numériques, textuelles, structurées, non structurées et géospatiales. Elasticsearch est livré avec des API REST simples et fournit des fonctionnalités d’évolutivité et de recherche rapide.

Elasticsearch est un élément important de l’Elastic Stack, qui est un ensemble d’outils open source comprenant l’ingestion de données, le stockage, l’enrichissement, la visualisation et l’analyse. Les outils notables de l’Elastic Stack sont Elasticsearch, Logstash et Kibana (ELK).

L’architecture Elasticsearch s’appuie sur la build d’indexation Lucene et la combine avec un modèle distribué qui sépare l’architecture en petits composants, appelés shards, qui peuvent être répartis sur plusieurs nœuds.

Dans cet article, vous allez apprendre

Quelles sont les principales utilisations d’Elasticsearch ?

Elasticsearch est une solution de recherche et d’analytique évolutive qui prend en charge la multi-location et fournit des recherches en temps quasi réel. Vous pouvez utiliser Elasticsearch pour effectuer des recherches sur tous les types de données et divers emplacements. Le moteur ingère des données provenant de plusieurs emplacements, les stocke et les indexe selon un mappage manuel ou automatisé prédéfini.

Comme Elasticsearch fonctionne avec une architecture distribuée, les utilisateurs peuvent rechercher et analyser d’énormes volumes de données en temps quasi réel. De plus, Elasticsearch introduit l’évolutivité dans le processus de recherche, ce qui vous permet de commencer avec une seule machine et de passer à des centaines.

Vous pouvez utiliser Elasticsearch pour exécuter un cluster de recherche complet (également appelé recherche en texte intégral), tel que la recherche de documents, la recherche de produits et la recherche d’e-mails. Cependant, cela nécessite un haut niveau de compétences et d’expérience. Vous pouvez également utiliser Elasticsearch pour stocker des données en attente d’analyse et de segmentation, ainsi que des données qui doivent être regroupées en catégories, telles que les métriques, les traces et les journaux.

Elasticsearch peut être déployé dans différents environnements cloud ainsi que sur site. Vous pouvez héberger vous-même Elasticsearch ou utiliser un service cloud comme AWS Elasticsearch.

Comment fonctionne Elasticsearch

Elasticsearch utilise des agents d’expédition, appelés beats, pour transférer des données brutes à partir de plusieurs sources dans Elasticsearch. Après que les données ont été envoyées dans Elasticsearch, le moteur exécute des processus d’ingestion de données, qui analysent, normalisent, enrichissent et préparent les données pour l’indexation. Après l’indexation des données, les utilisateurs peuvent exécuter des requêtes complexes et utiliser des agrégations pour récupérer des résumés de données complexes.

Pour la visualisation et la gestion, l'Elastic Stack propose un outil appelé Kibana, qui permet aux utilisateurs de créer des visualisations de données en temps réel, telles que des diagrammes circulaires, des cartes, des graphiques linéaires et des histogrammes. Kibana vous permet également de partager des tableaux de bord, d’utiliser Canvas pour créer des infographies dynamiques personnalisées et d’utiliser Elastic Maps pour visualiser des données géospatiales.


Architecture Elasticsearch : composants clés

L’architecture Elasticsearch est conçue pour l’évolutivité et la flexibilité. Les principaux composants sont les clusters, les nœuds, les shards et les analyseurs.

Cluster Elasticsearch

Un cluster Elasticsearch est composé d’un groupe de nœuds qui stockent des données. Vous pouvez spécifier le nombre de nœuds qui démarrent avec le cluster, ainsi que l’adresse IP du serveur virtuel ou physique. Vous pouvez spécifier ces informations dans le fichier config/elasticsearch.yml, qui contient tous les paramètres de configuration.

Les nœuds d’un cluster Elasticsearch sont connectés les uns aux autres, et chaque nœud contient un petit morceau de données de cluster. Vous pouvez exécuter autant de clusters que nécessaire. Cependant, un seul nœud est suffisant. Le système crée automatiquement un cluster lorsqu’un nouveau nœud démarre. Les nœuds participent aux processus globaux du cluster en charge de la recherche et de l’indexation.

Nœud Elasticsearch

En général, le terme nœud fait référence à un serveur qui fonctionne comme partie du cluster. Dans Elasticsearch, un nœud est une instance — ce n’est pas une machine. Cela signifie que vous pouvez exécuter plusieurs nœuds sur une seule machine. Une instance Elasticsearch se compose d’un ou de plusieurs nœuds basés sur le cluster. Par défaut, lorsqu’une instance Elasticsearch démarre, un nœud démarre également.

Voici les trois principales options pour configurer un nœud Elasticsearch :

  • Nœud maître Elasticsearch—contrôle le cluster Elasticsearch—traite un état de cluster à la fois et diffuse cet état à tous les autres nœuds. Le nœud maître est responsable de toutes les opérations à l’échelle du cluster, y compris la création et la suppression d’index.
  • Nœud de données Elasticsearch—contient les données et l’index inversé. Il s’agit de la configuration par défaut pour les nœuds.
  • Nœud client Elasticsearch : sert d’équilibreur de charge qui achemine les requêtes entrantes vers différents nœuds de cluster.

Les ports 9200 et 9300

L’architecture Elasticsearch utilise deux ports principaux pour la communication :

  • Port 9200—utilisé pour filtrer les requêtes provenant de l’extérieur du cluster. Ce processus répond aux requêtes arrivant via les API REST utilisées pour l’interrogation, l’indexation et plus encore.
  • Port 9300— utilisé pour la communication inter-nœuds. Cela se produit dans la couche de transport.

Shards Elasticsearch

Il n’y a pas de limite au nombre de documents que vous pouvez stocker sur chaque index. Cependant, si un index dépasse les limites de stockage du serveur d’hébergement, Elasticsearch peut planter. Pour éviter ce problème, les index sont divisés en petits morceaux appelés shards.

Les shards sont des unités d’indexation petites et évolutives qui servent de blocs de construction de l’architecture Elasticsearch. Les shards vous permettent de répartir les opérations et d’améliorer les performances globales. Après avoir créé un index, vous pouvez créer autant de shards que nécessaire. Chaque shard fonctionne comme un index Lucene indépendant, que vous pouvez héberger n’importe où dans le cluster.

Réplicas Elasticsearch

Dans Elasticsearch, les réplicas sont des copies de partitions d’index. Les réplicas sont utilisés comme mécanisme de sécurité pour la sauvegarde et la restauration. Les réplicas ne sont jamais placés sur le nœud contenant les partitions (primaires) d’origine.

Pour garantir la disponibilité, les réplicas sont stockés à différents emplacements. Vous pouvez définir les réplicas après la création de l’index et créer autant de réplicas que nécessaire. Cela signifie que vous pouvez stocker plus de réplicas que de shards principaux.

Analyseurs Elasticsearch

Les analyseurs sont chargés d’analyser les phrases et les expressions en termes constitutifs. Cela se produit pendant le processus d’indexation. Chaque analyseur est composé d’un tokenizer et de plusieurs filtres de tokens. Lorsqu’il rencontre une certaine expression, le tokenizer peut diviser une chaîne en termes prédéfinis.

Documents Elasticsearch

L’architecture Elasticsearch est conçue pour prendre en charge la récupération de documents, qui sont stockés sous forme d’objets JSON. Elasticsearch prend en charge les structures imbriquées, ce qui aide à gérer des données et des requêtes complexes. Pour suivre les informations, Elasticsearch utilise des clés précédées d’un trait de soulignement, ce qui représente les métadonnées.

Stockage Elasticsearch avec Cloud Volumes ONTAP

NetApp Cloud Volumes ONTAP, la solution de gestion du stockage de niveau entreprise leader, fournit des services de gestion du stockage sécurisés et éprouvés sur AWS, Azure et Google Cloud. Cloud Volumes ONTAP prend en charge une capacité allant jusqu’à 368TB et prend en charge divers cas d’utilisation tels que les services de fichiers, les bases de données, DevOps ou toute autre charge de travail exigeante, avec un ensemble complet de fonctionnalités, notamment la haute disponibilité, la protection des données, l’efficacité du stockage, l’intégration Kubernetes, et plus encore.

Cloud Volumes ONTAP prend en charge des fonctionnalités avancées pour la gestion du stockage SAN dans le cloud, répondant aux systèmes de base de données NoSQL, ainsi qu’aux partages NFS pouvant être accessibles directement depuis les clusters d’analytique Big Data cloud.

En outre, Cloud Volumes ONTAP fournit des fonctionnalités d’efficacité du stockage, notamment l’allocation dynamique, la compression des données et la déduplication, réduisant l’encombrement et les coûts du stockage jusqu’à 70 %.

Pour en savoir plus sur l’optimisation du déploiement d’Elasticsearch avec NetApp, téléchargez dès aujourd’hui notre eBook gratuit Optimiser les performances et les coûts d’Elasticsearch avec Cloud Volumes ONTAP.

Drift chat loading