Come creare indici Elasticsearch

Come creare indici Elasticsearch
Elasticsearch è una parte del popolare stack di Elk utilizzato per l'analisi dei registri e la ricerca. Applicazioni e sistemi registrano costantemente dati che possono essere molto utili per la risoluzione dei problemi e il monitoraggio dei problemi. Usando lo stack di Elk, hai gli strumenti migliori per eseguire queste attività in modo rapido e molto semplice.

In questo rapido tutorial, esamineremo Elasticsearch, in particolare come creare indici nel motore Elasticsearch. Sebbene non hai bisogno di alcuna conoscenza completa sugli Elk Stack per seguire questo tutorial, avere una comprensione di base dei seguenti argomenti potrebbe essere vantaggioso:

  • Usando il terminale, in particolare, arriccia
  • Conoscenza di base delle API e JSON
  • Fare richiesta HTTP

NOTA: Questo tutorial presuppone inoltre che tu abbia elasticsearch installato e in esecuzione sul tuo sistema.

Cosa sono gli indici di ElasticSearch?

Senza semplificare o complomettere eccessivamente le cose, un indice ElasticSearch è una raccolta di documenti JSON correlati.

Come menzionato in un precedente post, gli indici di ElasticSearch sono oggetti JSON considerati l'unità base di archiviazione in Elasticsearch. Questi documenti JSON correlati sono archiviati in una singola unità che costituisce un indice. Pensa ai documenti di ElasticSearch come tabelle in un database relazionale.

Passiamo un indice ElasticSearch come database nel mondo SQL.

  • Mysql => database => tables => colonne/righe
  • ElaSticSearch => indici => types => JSON documenti con proprietà

Come creare un indice Elasticsearch

Elasticsearch utilizza un'API di riposo potente e intuitiva per esporre i suoi servizi. Questa funzionalità consente di utilizzare le richieste HTTP per eseguire operazioni sul cluster di Elasticsearch. Pertanto, useremo l'API Crea Index per creare un nuovo indice.

Per questa guida, useremo Curl per inviare le richieste e preservare l'integrità e l'usabilità per tutti gli utenti. Tuttavia, se si incontrano errori con Curl, prendi in considerazione l'uso della console Kibana.

La sintassi per la creazione di un nuovo indice nel cluster di Elasticsearch è:

METTERE /

Per creare un indice, tutto ciò che devi fare è passare il nome dell'indice senza altri parametri, che crea un indice utilizzando le impostazioni predefinite.

È inoltre possibile specificare varie caratteristiche dell'indice, come nel corpo dell'indice:

  • Le impostazioni per l'indice
  • Alias ​​indicizzati
  • Mapping per i campi di indice

Il nome dell'indice è un parametro richiesto; Altrimenti, otterrai un errore per l'URIL (/)

Curl -x Put "LocalHost: 9200"
"Errore": "Metodo HTTP errato per Uri [/] e metodo [put], consentito: [elimina, testa, get]", "status": 405

Per creare un nuovo indice con il nome single_index, passiamo la richiesta:

Put /single_index

Per Curl, usa il comando:

Curl -x Put "LocalHost: 9200/single_index?bello"

Questo comando dovrebbe comportare lo stato HTTP 200 OK e un messaggio con riconosciuto: True come:


"Riconosciuto": vero,
"shards_acknowledged": vero,
"INDICE": "single_index"

La richiesta sopra crea un indice singolo_index con impostazioni predefinite in quanto non abbiamo specificato alcuna configurazione.

Regole di denominazione dell'indice

Quando si creano nomi per gli indici di Elasticsearch, è necessario aderire ai seguenti standard di denominazione:

  1. Il nome dell'indice deve essere solo in minuscolo.
  2. I nomi dell'indice non possono iniziare con un Dash (-), un sottocore (_) o un segno di addizione (+)
  3. I nomi non possono essere . O…
  4. I nomi degli indici non possono includere caratteri speciali come: \, /, *, ?, “,,, |," (personaggio spaziale), ,, #
  5. La durata dei nomi dell'indice deve essere inferiore a 255 byte. I caratteri multi-byte contano nella lunghezza totale del nome dell'indice. Ad esempio, se un singolo carattere ha una lunghezza di 8 byte, la lunghezza totale rimanente del nome è 255 - 8
  6. Nell'ultima versione di Elasticsearch, nomi che iniziano con un . sono riservati agli indici nascosti e agli indici interni utilizzati dai plug -in Elasticsearch.

Come creare un corpo indice

Quando si utilizza la richiesta put per creare un indice, è possibile passare vari argomenti che definiscono le impostazioni per l'indice che si desidera creare. I valori che puoi specificare nel corpo includono:

  • Alias: Specifica i nomi degli alias per l'indice che si desidera creare; Questo parametro è facoltativo.
  • Impostazioni: Questo definisce le opzioni di configurazione per l'indice che si desidera creare. Se non si specifica i parametri, l'indice viene creato utilizzando le configurazioni predefinite.
  • Mapping: Questo definisce la mappatura per i campi nell'indice. Le specifiche che puoi includere nelle mappature includono:
    • Il nome del campo
    • Il tipo di dati
    • Il parametro di mappatura

Per un esempio di creazione di un indice con configurazioni del corpo, considerare la richiesta di seguito:

Put /single_index_with_body

"impostazioni":
"numero_of_shards": 2,
"Number_of_replicas": 2
,
“Mappings”:
"proprietà":
"field1": "type": "oggetto"


Per una richiesta equivalente al ricciolo:

Curl -xput "http: // localhost: 9200/single_index_with_body" -h 'content -type: applicazione/json' -d '"impostazioni": "numero_of_shards": 2, "numero_of_replicas": 2, "mappings" : "Properties": "field1": "type": "oggetto" '

La richiesta sopra crea un nuovo indice con il nome single_index_with_body con 2 numeri di frammenti e 2 repliche. Crea anche una mappatura con un campo di nome field1 e digita come oggetto JSON.

Una volta inviata la richiesta, otterrai una risposta con lo stato della richiesta come:


"Riconosciuto": vero,
"shards_acknowledged": vero,
"INDICE": "single_index_with_body"

"Riconosciuto" mostra se l'indice è stato creato correttamente nel cluster, mentre "shards_acknowledged" mostra se il numero richiesto di copie di frammenti è stato avviato per ogni frammento nell'indice specificato prima del timeout.

Come visualizzare l'indice ElasticSearch

Per visualizzare le informazioni sull'indice creato, utilizzare una richiesta simile a quella della creazione di un indice, ma utilizzare il metodo HTTP anziché mettere come:

Get /single_index_with_body

Per ricciolo,

Curl -Xget “http: // localhost: 9200/single_index_with_body”

Questo comando ti fornirà informazioni dettagliate sull'indice richiesto come:


"single_index_with_body":
"Aliases": ,
"Mappings":
"proprietà" :
"field1":
"tipo": "oggetto"


,
"impostazioni" :
"indice":
"Routing":
"Allocazione":
"includere" :
"_tier_preference": "data_content"


,
"NUMBER_OF_SHARDS": "2",
"fornito_name": "single_index_with_body",
"Creation_date": "1611045687208",
"Number_of_replicas": "2",
"UUID": "3TRKO7XMQCSUOOGTB6PXVA",
"Versione":
"Creato": "7100299"




Conclusione

Questa guida ha discusso di come lavorare con Elasticsearch per creare API indice per creare nuovi indici. Abbiamo anche discusso di come creare nomi adeguati per gli indici e le impostazioni di configurazione.

Utilizzando questa guida, ora è possibile creare e visualizzare gli indici utilizzando l'API ElasticSearch.