OpenSearch est une suite communautaire de recherche et d’analyse open source dérivée d’Elasticsearch 7.10.2 et de Kibana 7.10.2 sous licence Apache 2.0. Il se compose d’un démon de moteur de recherche, OpenSearch, et d’une interface de visualisation et d’utilisateur, OpenSearch Dashboards. OpenSearch permet aux utilisateurs d’ingérer, de sécuriser, de rechercher, d’agréger, de visualiser et d’analyser facilement des données. Ces fonctionnalités sont populaires pour les cas d’utilisation tels que la recherche d’applications, l’analyse des journaux, etc. Avec OpenSearch, les utilisateurs bénéficient d’un produit open source qu’ils peuvent utiliser, modifier, étendre, monétiser et revendre comme ils le souhaitent. Dans le même temps, OpenSearch continuera de fournir une suite de recherche et d’analyse sécurisée et de haute qualité avec une riche feuille de route de fonctionnalités nouvelles et innovantes. Deplus, OpenSearch est un moteur de recherche et d’analyse distribué basé sur Apache Lucene . Après avoir ajouté vos données à OpenSearch, vous pouvez y effectuer des recherches en texte intégral avec toutes les fonctionnalités auxquelles vous pourriez vous attendre : recherche par champ, recherche dans plusieurs index, amplification des champs, classement des résultats par score, tri des résultats par champ et agrégation des résultats. Sans surprise, les gens utilisent souvent des moteurs de recherche comme OpenSearch comme backend pour une application de recherche, comme Wikipedia ou une boutique en ligne. Il offre d’excellentes performances et peut évoluer à mesure que les besoins de l’application augmentent ou diminuent. Un cas d’utilisation tout aussi populaire, mais moins évident, est l’analyse des journaux, dans laquelle vous prenez les journaux d’une application, les alimentez dans OpenSearch et utilisez la fonctionnalité de recherche et de visualisation enrichie pour identifier les problèmes. Par exemple, un serveur Web défectueux peut générer une erreur 500 0,5 % du temps, ce qui peut être difficile à remarquer à moins que vous n’ayez un graphique en temps réel de tous les codes d’état HTTP que le serveur a générés au cours des quatre dernières heures. Vous pouvez utiliser les tableaux de bord OpenSearch pour créer ces types de visualisations à partir de données dans OpenSearch.
Clusters et nœuds Sa conception distribuée signifie que vous interagissez avec les clusters OpenSearch . Chaque cluster est un ensemble d’un ou plusieurs nœuds , des serveurs qui stockent vos données et traitent les requêtes de recherche. Vous pouvez exécuter OpenSearch localement sur un ordinateur portable (sa configuration système est minimale), mais vous pouvez également faire évoluer un seul cluster vers des centaines de machines puissantes dans un centre de données. Dans un cluster à nœud unique, tel qu’un ordinateur portable, une machine doit tout faire : gérer l’état du cluster, indexer et rechercher des données, et effectuer tout prétraitement des données avant de les indexer. Cependant, au fur et à mesure qu’un cluster grandit, vous pouvez subdiviser les responsabilités. Les nœuds avec des disques rapides et beaucoup de RAM peuvent être excellents pour indexer et rechercher des données, alors qu’un nœud avec beaucoup de puissance CPU et un petit disque peut gérer l’état du cluster. Pour plus d’informations sur la définition des types de nœuds, consultez Formation de cluster .
Index et documents OpenSearch organise les données en index . Chaque index est une collection de documents JSON . Si vous avez un ensemble d’articles d’encyclopédie bruts ou de lignes de journal que vous souhaitez ajouter à OpenSearch, vous devez d’abord les convertir en JSON . Un simple document JSON pour un film pourrait ressembler à ceci :
Lorsque vous ajoutez le document à un index, OpenSearch ajoute certaines métadonnées, telles que l’ identifiant unique du document :
OpenSearch divise les index en fragments pour une distribution uniforme sur les nœuds d’un cluster. Par exemple, un index de 400 Go peut être trop volumineux pour être géré par un seul nœud de votre cluster, mais divisé en dix partitions, chacune de 40 Go, OpenSearch peut répartir les partitions sur dix nœuds et travailler avec chaque partition individuellement. Par défaut, OpenSearch crée un fragment réplique pour chaque fragment primaire . Si vous divisez votre index en dix fragments, par exemple, OpenSearch crée également dix fragments de réplique. Ces fragments de réplique agissent comme des sauvegardes en cas de défaillance d’un nœud (OpenSearch distribue les fragments de réplique à des nœuds différents de leurs fragments principaux correspondants), mais ils améliorent également la vitesse et la vitesse à laquelle le cluster peut traiter les demandes de recherche. Vous pouvez spécifier plusieurs réplicas par index pour une charge de travail intensive en recherche. Bien qu’il s’agisse d’un élément d’un index OpenSearch, chaque fragment est en fait un index Lucene complet – déroutant, nous le savons. Ce détail est cependant important, car chaque instance de Lucene est un processus en cours d’exécution qui consomme du processeur et de la mémoire. Plus de fragments n’est pas nécessairement mieux. Le fractionnement d’un index de 400 Go en 1 000 shards, par exemple, exercerait une pression inutile sur votre cluster. Une bonne règle de base consiste à conserver une taille de partition entre 10 et 50 Go.
API RESTVous interagissez avec les clusters OpenSearch à l’aide de l’API REST, qui offre une grande flexibilité. Vous pouvez utiliser des clients comme curl ou n’importe quel langage de programmation capable d’envoyer des requêtes HTTP. Pour ajouter un document JSON à un index OpenSearch (c’est-à-dire indexer un document), vous envoyez une requête HTTP :
Vous pouvez modifier la plupart des paramètres OpenSearch à l’aide de l’API REST, modifier les index, vérifier la santé du cluster, obtenir des statistiques, presque tout.
Tableaux de bord OpenSearch
OpenSearch Dashboards est l’outil de visualisation par défaut des données dans OpenSearch. Il sert également d’interface utilisateur pour de nombreux plug-ins OpenSearch, notamment la sécurité, les alertes, la gestion de l’état de l’index, SQL, etc.Outils d’ingestion
OpenSearch est compatible avec une variété d’outils d’ingestion et de traitement, notamment beats , fluentbit et fluentd . Le projet maintient également des outils d’ingestion spécifiques :Logstash OSS avec plug-in de sortie OpenSearch
Ce package comprend Logstash open source fourni avec le plug-in de sortie OpenSearch (v1.2.0). Le plug-in de sortie est compatible avec les versions OpenSearch et Open Source d’Elasticsearch (7.10.2 ou inférieure). Le plugin de sortie est également disponible en tant que Ruby Gem .Préparateur de données
Le projet Open Distro regroupait des distributions open source d’Elasticsearch et de Kibana avec des plugins sous licence Apache-2.0 qui offraient aux utilisateurs des fonctionnalités, une sécurité et des outils d’analyse de niveau entreprise. Au cours des deux années qui ont suivi son lancement, les constructeurs du monde entier ont utilisé Open Distro pour alimenter leurs applications. L’open source Elasticsearch et Kibana 7.10.2 arriveront bientôt en fin de vie et ne reçoivent plus de développement actif, de correctifs de sécurité ou de corrections de bogues. Tous les utilisateurs doivent exécuter un logiciel qui reçoit des correctifs de sécurité en temps opportun. Le projet OpenSearch a été lancé pour fournir une voie à suivre aux utilisateurs open source d’Elasticsearch et d’Open Distro qui garantit qu’ils ont toujours accès à la sécurité et aux nouvelles innovations. Il est maintenant temps de migrer vers OpenSearch pour profiter des dernières fonctionnalités, des améliorations de performances, des corrections de bogues et des correctifs de sécurité