Come configurare un modello di indice Elasticsearch

Come configurare un modello di indice Elasticsearch
Gli indici sono una caratteristica essenziale elasticsearch senza la quale probabilmente non funzionerebbe come fa. Sebbene gli indici di elasticsearch possano variare a seconda dell'uso previsto, tendono a condividere proprietà comuni. Detto questo, può essere noioso creare proprietà simili per tutti gli indici. Invece, è molto più efficiente creare un modello a cui possiamo fare riferimento durante la creazione di un indice.

Questo tutorial ti accompagnerà attraverso i dettagli dei modelli di indici di ElasticSearch che ti consentono di definire modelli o progetti per gli indici comuni. Ad esempio, se si registrano costantemente i dati da fonti esterne, è possibile definire un progetto per tutti gli indici di registrazione.

NOTA: Prima di iniziare, è bene notare che il tutorial si concentra sull'ultima versione di ElasticSearch-7.8 al momento della scrittura e può variare dalle altre versioni. Presumiamo anche che tu abbia elasticsearch in esecuzione su un sistema da qualche parte.

Iniziamo a lavorare con i modelli di indice Elasticsearch.

Cos'è un modello di indice di Elasticsearch?

Un modello di indice di Elasticsearch è un metodo utilizzato per istruire Elasticsearch a configurare gli indici alla creazione. Ad esempio, un modello di indice utilizzato su un flusso di dati configura gli indici di supporto del flusso al momento della creazione. Un modello di indice viene creato manualmente prima della creazione dell'indice. Quando si crea un indice, il modello applica le impostazioni di configurazione per l'indice.

L'ultima versione di Elasticsearch ha due tipi di modelli utilizzabili. Uno è il modello di indice, E l'altro è Modelli di componenti. Come abbiamo già stabilito, i modelli di indice aiutano a creare indici di elasticarch.

I modelli di componenti sono moduli riutilizzabili o blocchi utilizzati per configurare impostazioni, mappatura e alias. I modelli di componenti non vengono applicati direttamente agli indici creati ma possono aiutare a creare modelli di indice.

Alcuni modelli di indice predefiniti utilizzati da ElaSticSearch includono: Metrics-*-*, Logs-*-* .

Come creare un modello di indice

Per creare nuovi modelli di indice o aggiornare quelli esistenti, utilizziamo l'API del modello put. Usando l'endpoint _index_template, possiamo inviare una richiesta HTTP per aggiungere un modello.

La sintassi generale per la creazione di un modello è:

Put _index_template/template_name

È bene notare che il nome del modello è un parametro richiesto. Considera la richiesta di seguito che crea un modello di indice come Template_1

Put _index_template/template_1

/ * Definisci il modello di indice */
"Index_Patterns": ["te*"],
"priorità": 1,
/* Definire le impostazioni per gli indici*/
"modello":
"impostazioni" :
"numero_of_shards": 2


Per gli utenti Curl, il comando è:

Curl -xput "http: // localhost: 9200/_index_template/template_1" -h 'content -type: applicazione/json' -d '/*Definisci il modello indice*/"index_patterns": ["te*"], "priorità": 1, /* Definisci le impostazioni per gli indici* / "modello": "impostazioni": "numero_of_shards": 2 '

ElasticSearch utilizza uno schema jolly per abbinare i nomi degli indici in cui vengono applicati i modelli. Modifica o aggiornamento di un modello di indice non influisce su indici già creati solo quelli che verranno creati dopo aver utilizzato quel modello.

Dall'alto, puoi commentare i tuoi modelli usando il metodo di commento in lingua C. Puoi aggiungere tutti i commenti che desideri, ovunque nel corpo tranne l'apertura di Burly Braces.

Nel corpo di un modello di indice, è possibile includere varie definizioni come:

  • Modello: La proprietà del modello (oggetto) definisce quale modello da applicare; Può includere alias, mappature e impostazioni: questo è un parametro opzionale.
  • Composto da: Questa proprietà definisce un elenco di nomi per i modelli di componenti. Una volta definiti, i modelli di componenti vengono aggravati nel loro ordine di specifica. Ciò significa che l'ultimo modello di componente definito prende la massima precedenza.
  • Priorità: La proprietà prioritaria definisce la precedenza del modello di indice durante la creazione di un indice. Se qualsiasi precedenza ha il valore più alto, ottiene una precedenza maggiore rispetto ai valori più bassi. Il valore prioritario non è richiesto ed è di tipo intero. 0 è il valore predefinito per modelli non specificati.
  • Versione: Il parametro della versione specifica la versione del modello indice, che aiuta a gestire i modelli.

Ci sono altre proprietà che puoi includere nel corpo del modello di indice. Considera la documentazione per saperne di più.

https: // www.elastico.CO/GUIDA/EN/ELASTICHEARCH/RIFERIMENTO/7.10/INDICE-TEMPlates.html

Di seguito è una richiesta di esempio per creare un nuovo modello con la versione 1.0

Put /_index_template /template_2

"Index_Patterns": ["Remp*", "Re*"],
"priorità": 1,
"modello":
"impostazioni" :
"numero_of_shards": 2,
"Number_of_Replicas": 0

,
"Versione": 1.0

Non puoi avere più di un modello di indice con uno schema di abbinamento e la stessa priorità. Quindi, assicurarsi di assegnare priorità diverse per abbinare i modelli di pattern.

Come ottenere il modello di indice

Per visualizzare le informazioni su un modello di indice, invia una richiesta GET all'API _index_template. Ad esempio, per visualizzare le informazioni su Template_2, utilizzare la richiesta:

Ottieni _index_template/template_2

Il comando Curl è:

Curl -Xget "http: // localhost: 9200/_index_template/template_2"

Questo comando dovrebbe visualizzare informazioni su template_2


"Index_templates": [

"nome": "template_2",
"Index_Template":
"Index_Patterns": [
"Remp*",
"Rif*"
",
"modello" :
"impostazioni" :
"indice":
"NUMBER_OF_SHARDS": "2",
"Number_of_replicas": "0"


,
"composto da" : [ ],
"priorità": 1,
"Versione": 1


"

Puoi anche usare i caratteri jolly per ottenere modelli di abbinamento. Ad esempio, considera la richiesta di seguito per visualizzare tutti i modelli in Elasticsearch.

Ottieni _index_template/*

Il comando Curl è.

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

Questo comando dovrebbe fornirti informazioni su tutti i modelli in Elasticsearch


"Index_templates": [

"Nome": "Ilm-story",
"Index_Template":
"Index_Patterns": [
"ILM-History-3*"
",
"modello" :
"impostazioni" :
"indice":
"Formato": "1",
"ciclo vitale" :
"Nome": "ILM-History-ILM-Policy",
"Rollover_alias": "ILM-History-3"
,
"nascosto": "vero",
"NUMBER_OF_SHARDS": "1",
"Auto_Expand_Replicas": "0-1",
"Number_of_replicas": "0"

,
"Mappings":
"dinamico": falso,
"proprietà" :
"index_age":
"Tipo": "Long"
,
"@timestamp":
"Formato": "Epoch_Millis",
"tipo": "data"
,
"dettagli circa l'errore" :
"tipo": "testo"
,
"successo":
"Tipo": "Boolean"
,
"indice":
"Digita": "Parola chiave"
,
"stato" :
"dinamico": vero,
"tipo": "oggetto",
--------------------------Output troncato-----------------------------------

Come eliminare i modelli

Eliminare un modello è semplice come il modello Ottieni ma utilizzando la richiesta di Elimina come:

Elimina _index_template/template_2

Puoi usare il comando Curl:

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

Questo comando elimina automaticamente il modello specificato.

Conclusione

Questo tutorial ha riguardato quali sono i modelli di indici di Elasticsearch, come funzionano e come creare, visualizzare ed eliminare i modelli di indice. Queste informazioni di base dovrebbero aiutarti a iniziare a utilizzare i modelli di indice ElaSticSearch.