Comment configurer un modèle d'index Elasticsearch

Comment configurer un modèle d'index Elasticsearch
Les indices sont une fonctionnalité Elasticsearch essentielle sans laquelle il ne fonctionnerait probablement pas comme il. Bien que les indices Elasticsearch peuvent varier en fonction de l'utilisation prévue, ils ont tendance à partager des propriétés communes. Compte tenu de cela, il peut être fatigant de créer des propriétés similaires pour tous les indices. Au lieu de cela, il est beaucoup plus efficace de créer un modèle auquel nous pouvons nous référer lors de la création d'un index.

Ce tutoriel vous guidera à travers les intrigues et les aboutissants des modèles d'index Elasticsearch qui vous permettent de définir des modèles ou des plans pour des indices communs. Par exemple, si vous enregistrez constamment des données à partir de sources externes, vous pouvez définir un plan pour tous les indices de journalisation.

NOTE: Avant de commencer, il est bon de noter que le tutoriel se concentre sur la dernière version d'Elasticsearch-7.8 au moment de la rédaction et cela peut varier des autres versions. Nous supposons également que vous avez une recherche sur un système quelque part.

Laissez-nous commencer à travailler avec les modèles d'index Elasticsearch.

Qu'est-ce qu'un modèle d'index Elasticsearch?

Un modèle d'index Elasticsearch est une méthode utilisée pour demander à Elasticsearch de configurer les indices lors de la création. Par exemple, un modèle d'index utilisé sur un flux de données configure les indices de support du flux lors de la création. Un modèle d'index est créé manuellement avant la création d'index. Lors de la création d'un index, le modèle applique les paramètres de configuration pour l'index.

La dernière version d'Elasticsearch a deux types de modèles utilisables. L'un est le modèle d'index, Et l'autre est modèles de composants. Comme nous l'avons déjà établi, les modèles d'index aident à créer des indices Elasticsearch.

Les modèles de composants sont des modules ou des blocs réutilisables utilisés pour configurer les paramètres, la cartographie et les alias. Les modèles de composants ne sont pas appliqués directement aux indices créés mais peuvent aider à créer des modèles d'index.

Certains modèles d'index par défaut utilisés par Elasticsearch incluent: Metrics - * - *, journaux - * - * .

Comment créer un modèle d'index

Pour créer de nouveaux modèles d'index ou mettre à jour ceux existants, nous utilisons l'API du modèle de put. En utilisant le point de terminaison _index_template, nous pouvons envoyer une demande HTTP pour ajouter un modèle.

La syntaxe générale pour créer un modèle est:

Mettre _index_template / template_name

Il est bon de noter que le nom du modèle est un paramètre requis. Considérez la demande ci-dessous qui crée un modèle d'index comme modèle_1

Mettre _index_template / template_1

/ * Définir le modèle d'index * /
"index_patterns": ["te *"],
"Priorité": 1,
/ * Définir les paramètres des indices * /
"modèle":
"paramètres" :
"numéro_of_shards": 2


Pour les utilisateurs de Curl, la commande est:

curl -xput "http: // localhost: 9200 / _index_template / template_1" -h 'contenu-type: application / json' -d '/ * définir le modèle d'index * / "index_patterns": ["te *"], "Priorité": 1, / * Définir les paramètres des indices * / "modèle": "Paramètres": "Number_Of_Shards": 2 '

ElasticSearch utilise un modèle de tableau générique pour correspondre aux noms d'index où les modèles sont appliqués. La modification ou la mise à jour d'un modèle d'index n'affecte pas les indices déjà créés uniquement ceux qui seront créés après avoir utilisé ce modèle.

D'en haut, vous pouvez commenter vos modèles à l'aide de la méthode de commentaire en langue C. Vous pouvez ajouter autant de commentaires que vous le souhaitez, n'importe où dans le corps, sauf l'ouverture des accolades bouclées.

Dans le corps d'un modèle d'index, vous pouvez inclure diverses définition telles que:

  • Modèle: La propriété de modèle (objet) définit le modèle à appliquer; Il peut inclure des alias, des mappages et des paramètres - ce paramètre facultatif.
  • Composé de: Cette propriété définit une liste de noms pour les modèles de composants. Une fois défini, les modèles de composants sont composés dans leur ordre de spécification. Cela signifie que le dernier modèle de composant défini prend la plus haute priorité.
  • Priorité: La propriété prioritaire définit la priorité du modèle d'index lors de la création d'un index. Si une priorité a la valeur la plus élevée, elle augmente la priorité par rapport aux valeurs plus faibles. La valeur de priorité n'est pas requise et est de type entier. 0 est la valeur par défaut pour les modèles non spécifiés.
  • Version: Le paramètre de version spécifie la version du modèle d'index, qui aide à gérer les modèles.

Il existe d'autres propriétés que vous pouvez inclure dans le corps du modèle d'index. Considérez la documentation pour en savoir plus.

https: // www.élastique.co / guide / en / elasticsearch / référence / 7.10 / Index-Templates.html

Vous trouverez ci-dessous un exemple de demande pour créer un nouveau modèle avec la version 1.0

Put / _index_template / template_2

"index_patterns": ["remp *", "re *"],
"Priorité": 1,
"modèle":
"paramètres" :
"numéro_of_shards": 2,
"numéro_of_replicas": 0

,
"version 1.0

Vous ne pouvez pas avoir plus d'un modèle d'index avec un modèle de correspondance et la même priorité. Par conséquent, assurez-vous d'attribuer différentes priorités pour faire correspondre les modèles.

Comment obtenir le modèle d'index

Pour afficher les informations sur un modèle d'index, envoyez une demande GET à l'API _index_template. Par exemple, pour afficher des informations sur Template_2, utilisez la demande:

Get _index_template / template_2

La commande curl est:

curl -xget "http: // localhost: 9200 / _index_template / template_2"

Cette commande doit afficher des informations sur Template_2


"index_templates": [

"nom": "template_2",
"index_template":
"index_patterns": [
"REMP *",
"concernant*"
]],
"modèle" :
"paramètres" :
"index":
"numéro_of_shards": "2",
"numéro_of_replicas": "0"


,
"composé de" : [ ],
"Priorité": 1,
"version 1


]]

Vous pouvez également utiliser les jokers pour obtenir des modèles correspondants. Par exemple, considérez la demande ci-dessous pour afficher tous les modèles dans Elasticsearch.

Obtenir _index_template / *

La commande curl est.

curl -xget http: // localhost: 9200 / _index_template / *

Cette commande devrait vous donner des informations sur tous les modèles dans Elasticsearch


"index_templates": [

"Nom": "Ilm-histoire",
"index_template":
"index_patterns": [
"Ilm-history-3 *"
]],
"modèle" :
"paramètres" :
"index":
"format": "1",
"cycle de vie" :
"Nom": "Ilm-History-ilm-Policy",
"Rollover_alias": "ilm-history-3"
,
"caché": "vrai",
"numéro_of_shards": "1",
"auto_expand_replicas": "0-1",
"numéro_of_replicas": "0"

,
"Mappings":
"dynamique": faux,
"propriétés" :
"index_age":
"Type": "Long"
,
"@timestamp":
"format": "epoch_millis",
"Type": "Date"
,
"détails de l'erreur" :
"type": "texte"
,
"succès":
"Type": "booléen"
,
"index":
"type": "mot-clé"
,
"État" :
"dynamique": vrai,
"type": "objet",
--------------------------Sortie tronquée-----------------------------------

Comment supprimer des modèles

La suppression d'un modèle est tout aussi simple que le modèle Get, mais en utilisant la demande de suppression que:

Supprimer _index_template / template_2

Vous pouvez utiliser la commande curl:

curl -xdelete "http: // localhost: 9200 / _index_template / template_2"

Cette commande supprime automatiquement le modèle spécifié.

Conclusion

Ce tutoriel a couvert ce que sont les modèles d'index Elasticsearch, comment ils fonctionnent et comment créer, afficher et supprimer les modèles d'index. Ces informations de base devraient vous aider à commencer à utiliser les modèles d'index Elasticsearch.