Deze zelfstudie leidt u door de ins en outs van Elasticsearch-indexsjablonen waarmee u sjablonen of blauwdrukken voor algemene indices kunt definiëren. Als u bijvoorbeeld voortdurend gegevens uit externe bronnen logt, kunt u een blauwdruk definiëren voor alle logindexen.
OPMERKING: Voordat we beginnen, is het goed om op te merken dat de tutorial zich richt op de nieuwste versie van Elasticsearch-7.8 op het moment van schrijven - en het kan afwijken van andere versies. We gaan er ook vanuit dat Elasticsearch ergens op een systeem draait.
Laten we aan de slag gaan met Elasticsearch-indexsjablonen.
Wat is een Elasticsearch-indexsjabloon??
Een Elasticsearch-indexsjabloon is een methode die wordt gebruikt om Elasticsearch opdracht te geven indexen te configureren bij het maken. Een indexsjabloon dat wordt gebruikt op een gegevensstroom, configureert bijvoorbeeld de backing-indexen van de stroom bij het maken. Er wordt handmatig een indexsjabloon gemaakt voordat de index wordt gemaakt. Bij het maken van een index past de sjabloon de configuratie-instellingen voor de index toe.
De nieuwste versie van Elasticsearch heeft twee soorten bruikbare sjablonen. Een is de is indexsjabloon, en de andere is componentsjablonen. Zoals we al hebben vastgesteld, helpen indexsjablonen bij het maken van Elasticsearch-indexen.
Componentsjablonen zijn herbruikbare modules of blokken die worden gebruikt om instellingen, mapping en aliassen te configureren. Componentsjablonen worden niet rechtstreeks toegepast op de gemaakte indices, maar kunnen helpen bij het maken van indexsjablonen.
Enkele standaardindexsjablonen die door Elasticsearch worden gebruikt, zijn: metrics-*-*, logs-*-* .
Een indexsjabloon maken
Om nieuwe indexsjablonen te maken of bestaande bij te werken, gebruiken we de PUT-sjabloon-API. Met behulp van het eindpunt _index_template kunnen we een HTTP-verzoek sturen om een sjabloon toe te voegen.
De algemene syntaxis voor het maken van een sjabloon is:
PUT _index_template/template_nameHet is goed om te weten dat de sjabloonnaam een vereiste parameter is. Overweeg het onderstaande verzoek waarmee een indexsjabloon wordt gemaakt als template_1
PUT _index_template/template_1/* Definieer het indexpatroon */
"index_patterns" : ["te*"],
"prioriteit" : 1,
/* Definieer instellingen voor de indices*/
"sjabloon":
"instellingen" :
"aantal_scherven" : 2
Voor gebruikers van cURL is de opdracht:
curl -XPUT "http://localhost:9200/_index_template/template_1" -H 'Content-Type: application/json' -d' /* Definieer het indexpatroon */ "index_patterns" : ["te*"], "priority" : 1, /* Definieer instellingen voor de indices*/ "template": "settings" : "number_of_shards" : 2 'Elasticsearch gebruikt een jokertekenpatroon om indexnamen te matchen waar de sjablonen worden toegepast. Het wijzigen of bijwerken van een indexsjabloon heeft geen invloed op reeds gemaakte indices, alleen op de indexen die worden gemaakt na gebruik van die sjabloon.
Van bovenaf kunt u commentaar geven op uw sjablonen met behulp van de C-Language-commentaarmethode. Je kunt zoveel opmerkingen toevoegen als je wilt, overal in het lichaam, behalve de opening van de accolades.
In de hoofdtekst van een indexsjabloon kunt u verschillende definities opnemen, zoals:
- Sjabloon: De sjablooneigenschap (object) definieert welke sjabloon moet worden toegepast; het kan aliassen, toewijzingen en instellingen bevatten - dit is een optionele parameter.
- Bestaande uit: Deze eigenschap definieert een lijst met namen voor componentsjablonen. Eenmaal gedefinieerd, worden componentsjablonen samengesteld in hun specificatievolgorde. Dat betekent dat de laatst gedefinieerde componentsjabloon de hoogste prioriteit heeft.
- Prioriteit: De eigenschap prioriteit definieert de prioriteit van de indexsjabloon bij het maken van een index. Als een prioriteit de hoogste waarde heeft, krijgt deze een hogere prioriteit in vergelijking met lagere waarden. De prioriteitswaarde is niet vereist en is van het type integer. 0 is de standaardwaarde voor niet-gespecificeerde sjablonen.
- Versie: De versieparameter specificeert de versie van de indexsjabloon, wat helpt bij het beheren van de sjablonen.
Er zijn andere eigenschappen die u kunt opnemen in de hoofdtekst van de indexsjabloon. Bekijk de documentatie voor meer informatie.
https://www.elastisch.co/gids/nl/elastisch zoeken/referentie/7.10/index-sjablonen.html
Hieronder vindt u een voorbeeldverzoek om een nieuwe sjabloon te maken met versie 1.0
PUT /_index_template/template_2"index_patterns" : ["remp*", "re*"],
"prioriteit" : 1,
"sjabloon":
"instellingen" :
"aantal_scherven" : 2,
"aantal_replica's": 0
,
"versie 1.0
U kunt niet meer dan één indexsjabloon hebben met een overeenkomend patroon en dezelfde prioriteit. Zorg er daarom voor dat u verschillende prioriteiten toewijst aan patroonsjablonen.
Indexsjabloon verkrijgen
Om informatie over een indexsjabloon te bekijken, stuurt u een GET-verzoek naar de _index_template API. Als u bijvoorbeeld informatie over template_2 wilt bekijken, gebruikt u het verzoek:
GET _index_template/template_2Het cURL-commando is:
curl -XGET "http://localhost:9200/_index_template/template_2"Deze opdracht zou informatie moeten weergeven over template_2
"index_templates" : [
"naam" : "sjabloon_2",
"index_template" :
"index_patterns" : [
"remp*",
"opnieuw*"
],
"sjabloon" :
"instellingen" :
"inhoudsopgave" :
"number_of_shards" : "2",
"aantal_replica's" : "0"
,
"bestaande uit" : [ ],
"prioriteit" : 1,
"versie 1
]
U kunt ook jokertekens gebruiken om overeenkomende sjablonen te krijgen. Overweeg bijvoorbeeld het onderstaande verzoek om alle sjablonen in Elasticsearch te bekijken.
GET _index_template/*Het cURL-commando is.
curl -XGET http://localhost:9200/_index_template/*Deze opdracht zou u informatie moeten geven over alle sjablonen in Elasticsearch
"index_templates" : [
"naam" : "ilm-geschiedenis",
"index_template" :
"index_patterns" : [
"ilm-geschiedenis-3*"
],
"sjabloon" :
"instellingen" :
"inhoudsopgave" :
"formaat" : "1",
"levenscyclus" :
"name" : "ilm-history-ilm-policy",
"rollover_alias" : "ilm-history-3"
,
"verborgen" : "waar",
"number_of_shards" : "1",
"auto_expand_replicas" : "0-1",
"aantal_replica's" : "0"
,
"toewijzingen" :
"dynamisch" : false,
"eigendommen" :
"index_leeftijd" :
"type" : "lang"
,
"@tijdstempel" :
"format" : "epoch_millis",
"type" : "datum"
,
"fout details" :
"typ Text"
,
"succes":
"type" : "booleaans"
,
"inhoudsopgave" :
"type" : "zoekwoord"
,
"staat" :
"dynamisch" : waar,
"type" : "object",
--------------------------UITGANG afgekapt-----------------------------------
Sjablonen verwijderen
Het verwijderen van een sjabloon is net zo eenvoudig als de GET-sjabloon, maar met het DELETE-verzoek als:
VERWIJDER _index_template/template_2U kunt het cURL-commando gebruiken:
curl -XDELETE "http://localhost:9200/_index_template/template_2"Deze opdracht verwijdert automatisch de opgegeven sjabloon.
Conclusie
In deze zelfstudie werd besproken wat Elasticsearch-indexsjablonen zijn, hoe ze werken en hoe u indexsjablonen kunt maken, bekijken en verwijderen. Deze basisinformatie zou u moeten helpen om aan de slag te gaan met het gebruik van Elasticsearch-indexsjablonen.