В этом руководстве вы познакомитесь с тонкостями шаблонов индексов Elasticsearch, которые позволяют определять шаблоны или схемы для общих индексов. Например, если вы постоянно регистрируете данные из внешних источников, вы можете определить схему для всех индексов журналирования.
ПРИМЕЧАНИЕ: Прежде чем мы начнем, стоит отметить, что в этом руководстве основное внимание уделяется последней версии Elasticsearch-7.8 на момент написания - и он может отличаться от других версий. Мы также предполагаем, что у вас где-то в системе запущен Elasticsearch.
Приступим к работе с шаблонами индекса Elasticsearch.
Что такое шаблон индекса Elasticsearch?
Шаблон индекса Elasticsearch - это метод, используемый для указания Elasticsearch настроить индексы при создании. Например, шаблон индекса, используемый в потоке данных, настраивает индексы поддержки потока при создании. Шаблон индекса создается вручную перед созданием индекса. При создании индекса в шаблоне применяются параметры конфигурации для индекса.
В последней версии Elasticsearch есть два типа используемых шаблонов. Один из них индексный шаблон, а другой шаблоны компонентов. Как мы уже установили, шаблоны индексов помогают создавать индексы Elasticsearch.
Шаблоны компонентов - это повторно используемые модули или блоки, используемые для настройки параметров, сопоставления и псевдонимов. Шаблоны компонентов не применяются непосредственно к созданным индексам, но могут помочь в создании шаблонов индексов.
Некоторые шаблоны индекса по умолчанию, используемые Elasticsearch, включают: метрики - * - *, журналы - * - * .
Как создать шаблон индекса
Для создания новых шаблонов индексов или обновления существующих мы используем API шаблона PUT. Используя конечную точку _index_template, мы можем отправить HTTP-запрос на добавление шаблона.
Общий синтаксис для создания шаблона:
PUT _index_template / template_nameСтоит отметить, что имя шаблона является обязательным параметром. Рассмотрим запрос ниже, который создает шаблон индекса как template_1
PUT _index_template / template_1/ * Определяем шаблон индекса * /
"index_patterns": ["te *"],
«приоритет»: 1,
/ * Определяем настройки индексов * /
"шаблон":
"настройки" :
"number_of_shards": 2
Для пользователей cURL команда:
curl -XPUT "http: // localhost: 9200 / _index_template / template_1" -H 'Content-Type: application / json' -d '/ * Определить шаблон индекса * / "index_patterns": ["te *"], "priority": 1, / * Определение настроек индексов * / "template": "settings": "number_of_shards": 2 'Elasticsearch использует шаблон подстановки для сопоставления имен индексов, к которым применяются шаблоны. Изменение или обновление шаблона индекса не влияет на уже созданные индексы, а только на те, которые будут созданы после использования этого шаблона.
Сверху вы можете комментировать свои шаблоны, используя метод комментирования на языке C. Вы можете добавить столько комментариев, сколько захотите, в любом месте тела, кроме открытия фигурных скобок.
В теле шаблона индекса вы можете включать различные определения, например:
- Шаблон: Свойство шаблона (объект) определяет, какой шаблон будет применен; он может включать псевдонимы, сопоставления и настройки - это необязательный параметр.
- Composed_of: Это свойство определяет список имен для шаблонов компонентов. После определения шаблоны компонентов объединяются в порядке их спецификации. Это означает, что последний определенный шаблон компонента имеет наивысший приоритет.
- Приоритет: Свойство priority определяет приоритет шаблона индекса при создании индекса. Если какой-либо приоритет имеет наивысшее значение, он получает более высокий приоритет по сравнению с более низкими значениями. Значение приоритета не требуется и имеет целочисленный тип. 0 - значение по умолчанию для неуказанных шаблонов.
- Версия: Параметр version указывает версию шаблона индекса, который помогает управлять шаблонами.
Есть и другие свойства, которые вы можете включить в тело шаблона индекса. Изучите документацию, чтобы узнать больше.
https: // www.эластичный.co / guide / en / elasticsearch / ссылка / 7.10 / индекс-шаблоны.html
Ниже приведен пример запроса на создание нового шаблона с версией 1.0
PUT / _index_template / template_2"index_patterns": ["remp *", "re *"],
«приоритет»: 1,
"шаблон":
"настройки" :
"number_of_shards": 2,
"number_of_replicas": 0
,
«версия»: 1.0
У вас не может быть более одного шаблона индекса с совпадающим шаблоном и одинаковым приоритетом. Следовательно, убедитесь, что назначены разные приоритеты для соответствия шаблонам шаблонов.
Как получить шаблон индекса
Чтобы просмотреть информацию о шаблоне индекса, отправьте запрос GET в _index_template API. Например, для просмотра информации о шаблоне_2 используйте запрос:
ПОЛУЧИТЬ _index_template / template_2Команда cURL:
curl -XGET "http: // localhost: 9200 / _index_template / template_2"Эта команда должна отображать информацию о шаблоне_2
"index_templates": [
"имя": "шаблон_2",
"index_template":
"index_patterns": [
"remp *",
"ре *"
],
"шаблон" :
"настройки" :
"индекс" :
"number_of_shards": "2",
"number_of_replicas": "0"
,
"created_of": [],
«приоритет»: 1,
«версия»: 1
]
Вы также можете использовать подстановочные знаки для получения подходящих шаблонов. Например, рассмотрите приведенный ниже запрос, чтобы просмотреть все шаблоны в Elasticsearch.
ПОЛУЧИТЬ _index_template / *Команда cURL.
curl -XGET http: // локальный: 9200 / _index_template / *Эта команда должна предоставить вам информацию обо всех шаблонах в Elasticsearch
"index_templates": [
"name": "ilm-history",
"index_template":
"index_patterns": [
"илм-история-3 *"
],
"шаблон" :
"настройки" :
"индекс" :
"формат": "1",
"жизненный цикл" :
"name": "ilm-history-ilm-policy",
"rollover_alias": "ilm-history-3"
,
"скрытый": "правда",
"number_of_shards": "1",
«auto_expand_replicas»: «0–1»,
"number_of_replicas": "0"
,
"mappings":
"динамический": ложь,
"характеристики" :
"index_age":
"тип": "длинный"
,
"@timestamp":
"формат": "эпоха_миллис",
"тип": "дата"
,
"error_details":
"тип": "текст"
,
"успех":
"тип": "логическое"
,
"индекс" :
"тип": "ключевое слово"
,
"государственный" :
"динамический": правда,
"тип": "объект",
--------------------------ВЫХОД ОБРЕЗАН-----------------------------------
Как удалить шаблоны
Удаление шаблона так же просто, как и шаблон GET, но с использованием запроса DELETE, как:
УДАЛИТЬ _index_template / template_2Вы можете использовать команду cURL:
curl -XDELETE "http: // localhost: 9200 / _index_template / template_2"Эта команда автоматически удаляет указанный шаблон.
Заключение
В этом руководстве рассказывается, что такое шаблоны индекса Elasticsearch, как они работают и как создавать, просматривать и удалять шаблоны индекса. Эта основная информация должна помочь вам начать работу с шаблонами индекса Elasticsearch.