Denne opplæringen vil lede deg gjennom inn og ut av Elasticsearch indeksmaler som lar deg definere maler eller tegninger for vanlige indekser. Hvis du for eksempel kontinuerlig logger data fra eksterne kilder, kan du definere en blåkopi for alle loggningsindekser.
MERK: Før vi begynner, er det greit å merke seg at opplæringen fokuserer på den nyeste versjonen av Elasticsearch-7.8 i skrivende stund - og det kan variere fra andre versjoner. Vi antar også at du har Elasticsearch som kjører på et system et sted.
La oss komme i gang med Elasticsearch indeksmaler.
Hva er en Elasticsearch indeksmal?
En Elasticsearch indeksmal er en metode som brukes til å instruere Elasticsearch om å konfigurere indekser ved opprettelse. For eksempel konfigurerer en indeksmal som brukes i en datastrøm strømens støtteindekser ved opprettelse. En indeksmal opprettes manuelt før opprettelse av indekser. Når du lager en indeks, bruker malen konfigurasjonsinnstillingene for indeksen.
Den siste versjonen av Elasticsearch har to typer brukbare maler. Den ene er den indeksmal, og den andre er komponentmaler. Som vi allerede har etablert, hjelper indeksmaler med å lage Elasticsearch-indekser.
Komponentmaler er gjenbrukbare moduler eller blokker som brukes til å konfigurere innstillinger, kartlegging og aliaser. Komponentmaler blir ikke brukt direkte på de opprettet indeksene, men kan bidra til å lage indeksmaler.
Noen standardindeksmaler som brukes av Elasticsearch inkluderer: beregninger - * - *, logger - * - * .
Hvordan lage en indeksmal
For å lage nye indeksmaler eller oppdatere eksisterende bruker vi PUT mal API. Ved hjelp av _index_template-sluttpunktet kan vi sende en HTTP-forespørsel om å legge til en mal.
Den generelle syntaksen for å lage en mal er:
PUT _index_template / template_nameDet er greit å merke seg at malnavnet er en obligatorisk parameter. Vurder forespørselen nedenfor som oppretter en indeksmal som template_1
PUT _index_template / template_1/ * Definer indeksmønsteret * /
"index_patterns": ["te *"],
"prioritet": 1,
/ * Definer innstillinger for indeksene * /
"mal":
"innstillinger":
"number_of_shards": 2
For cURL-brukere er kommandoen:
curl -XPUT "http: // localhost: 9200 / _index_template / template_1" -H 'Content-Type: application / json' -d '/ * Definer indeksmønsteret * / "index_patterns": ["te *"], "prioritet": 1, / * Definer innstillinger for indeksene * / "mal": "innstillinger": "number_of_shards": 2 'Elasticsearch bruker et jokertegnmønster for å matche indeksnavn der malene brukes. Endring eller oppdatering av en indeksmal påvirker ikke allerede opprettede indekser bare de som vil opprettes etter bruk av malen.
Ovenfra kan du kommentere malene dine ved å bruke C-Language-kommenteringsmetoden. Du kan legge til så mange kommentarer du vil, hvor som helst i kroppen unntatt åpningen av krøllete bukseseler.
I brødteksten til en indeksmal kan du inkludere forskjellige definisjoner som:
- Mal: Malegenskapen (objekt) definerer hvilken mal som skal brukes; det kan inkludere aliaser, tilordninger og innstillinger - dette er en valgfri parameter.
- Består av: Denne egenskapen definerer en liste med navn for komponentmaler. Når de er definert, blir komponentmaler sammensatt i spesifikasjonsrekkefølgen. Det betyr at den siste komponentmalen som er definert, har høyeste forrang.
- Prioritet: Prioritetsegenskapen definerer indeksmalens forrang når du oppretter en indeks. Hvis noen forrang har den høyeste verdien, får den høyere forrang sammenlignet med lavere verdier. Prioritetsverdien er ikke nødvendig og er av typen heltall. 0 er standardverdien for ikke-spesifiserte maler.
- Versjon: Versjonsparameteren spesifiserer indeksmalversjonen, som hjelper til med å administrere malene.
Det er andre egenskaper du kan inkludere i indeksmalmaten. Vurder dokumentasjonen for å lære mer.
https: // www.elastisk.co / guide / no / elasticsearch / reference / 7.10 / indeks-maler.html
Nedenfor er et eksempel på forespørsel om å opprette en ny mal med versjon 1.0
PUT / _index_template / template_2"index_patterns": ["remp *", "re *"],
"prioritet": 1,
"mal":
"innstillinger":
"number_of_shards": 2,
"number_of_replicas": 0
,
"versjon": 1.0
Du kan ikke ha mer enn en indeksmal med et matchende mønster og samme prioritet. Sørg derfor for å tilordne forskjellige prioriteringer for å matche mønstermaler.
Hvordan få indeksmal
For å se informasjon om en indeksmal, send en GET-forespørsel til _index_template API. For eksempel, for å se informasjon om template_2, bruk forespørselen:
FÅ _index_template / template_2CURL-kommandoen er:
krølle -XGET "http: // localhost: 9200 / _index_template / template_2"Denne kommandoen skal vise informasjon om template_2
"index_templates": [
"navn": "mal_2",
"index_template":
"index_patterns": [
"remp *",
"re *"
],
"mal" :
"innstillinger":
"indeks":
"number_of_shards": "2",
"number_of_replicas": "0"
,
"består av" : [ ],
"prioritet": 1,
"versjon": 1
]
Du kan også bruke jokertegn for å få matchende maler. Vurder for eksempel forespørselen nedenfor for å se alle malene i Elasticsearch.
FÅ _index_template / *CURL-kommandoen er.
krølle -XGET http: // localhost: 9200 / _index_template / *Denne kommandoen skal gi deg informasjon om alle malene i Elasticsearch
"index_templates": [
"name": "ilm-history",
"index_template":
"index_patterns": [
"ilm-history-3 *"
],
"mal" :
"innstillinger":
"indeks":
"format": "1",
"Livssyklus" :
"name": "ilm-history-ilm-policy",
"rollover_alias": "ilm-history-3"
,
"skjult": "sant",
"number_of_shards": "1",
"auto_expand_replicas": "0-1",
"number_of_replicas": "0"
,
"mappings":
"dynamisk": falsk,
"eiendommer" :
"index_age":
"type": "lang"
,
"@timestamp":
"format": "epoch_millis",
"type": "date"
,
"feilmeldingsdetaljer" :
"type": "tekst"
,
"suksess":
"type": "boolsk"
,
"indeks":
"type": "nøkkelord"
,
"stat" :
"dynamisk": sant,
"type": "objekt",
--------------------------UTGANG TRUNKERT-----------------------------------
Hvordan slette maler
Det er like enkelt å slette en mal som GET-malen, men bruke DELETE-forespørsel som:
SLETT _index_template / template_2Du kan bruke cURL-kommandoen:
krøll -XDELETE "http: // localhost: 9200 / _index_template / template_2"Denne kommandoen sletter automatisk den angitte malen.
Konklusjon
Denne opplæringen dekket hva Elasticsearch indeksmaler er, hvordan de fungerer, og hvordan du oppretter, viser og sletter indeksmaler. Denne grunnleggende informasjonen skal hjelpe deg i gang med å bruke Elasticsearch indeksmaler.