Spec-Zone.ru › Elasticsearch 7
›Руководство по Elasticsearch [7.17]

Шаблоны индексов

В данном разделе описываются шаблоны индексов, которые можно комбинировать, представленные в Elasticsearch 7.8. Сведения о предыдущих шаблонах индексов см. в документации по старым шаблонам.

Шаблон индекса — это способ указать Elasticsearch, как настроить индекс при его создании. Для потоков данных шаблон индекса настраивает базовые индексы потока при их создании. Шаблоны настраиваются до создания индекса. При создании индекса — вручную или посредством индексирования документа — настройки шаблона используются в качестве основы для создания индекса.

Существует два типа шаблонов: шаблоны индексов и шаблоны компонентов. Шаблоны компонентов — это переиспользуемые строительные блоки, которые настраивают отображения, настройки и алиасы. Хотя вы можете использовать шаблоны компонентов для создания шаблонов индексов, они не применяются непосредственно к набору индексов. Шаблоны индексов могут содержать набор шаблонов компонентов, а также напрямую задавать настройки, отображения и алиасы.

Для шаблонов индексов применяются следующие условия:

  • Составные шаблоны имеют приоритет над старыми шаблонами. Если заданному индексу не соответствует ни один составной шаблон, может быть применён старый шаблон.
  • Если индекс создаётся с явными настройками и также соответствует шаблону индекса, настройки из запроса создания индекса имеют приоритет над настройками, указанными в шаблоне индекса и его шаблонах компонентов.
  • Настройки, указанные в самом шаблоне индекса, имеют приоритет над настройками в его шаблонах компонентов.
  • Если новый поток данных или индекс соответствует нескольким шаблонам индексов, используется шаблон индекса с наивысшим приоритетом.

Избегайте конфликтов шаблонов индексов

Elasticsearch содержит встроенные шаблоны индексов, каждый с приоритетом 100, для следующих шаблонов индексов:

  • logs-*-*
  • metrics-*-*
  • synthetics-*-*

Elastic Agent использует эти шаблоны для создания потоков данных. Шаблоны индексов, созданные интеграциями Fleet, используют аналогичные перекрывающиеся шаблоны индексов и имеют приоритет до 200.

Если вы используете Fleet или Elastic Agent, назначьте своим шаблонам индексов приоритет ниже, чем 100, чтобы избежать переопределения этих шаблонов. В противном случае, чтобы избежать случайного применения шаблонов, выполните одно или несколько следующих действий:

  • Чтобы отключить все встроенные шаблоны индексов и компонентов, установите stack.templates.enabled на значение false, используя API обновления настроек кластера.
  • Используйте шаблон индекса без перекрытий.
  • Назначьте шаблонам с перекрывающимся шаблоном индекса приоритет priority, более высокий, чем 200. Например, если вы не используете Fleet или Elastic Agent и хотите создать шаблон для шаблона индекса logs-*, назначьте вашему шаблону приоритет 500. Это гарантирует, что ваш шаблон будет применён вместо встроенного шаблона для logs-*-*.

Создание шаблона индекса

Используйте шаблоны индексов и шаблоны компонентов, чтобы создавать и обновлять шаблоны индексов. Вы также можете управлять шаблонами индексов из Stack Management в Kibana.

Следующие запросы создают два шаблона компонентов.

PUT _component_template/component_template1
{
  "template": {
    "mappings": {
      "properties": {
        "@timestamp": {
          "type": "date"
        }
      }
    }
  }
}

PUT _component_template/runtime_component_template
{
  "template": {
    "mappings": {
      "runtime": { 
        "day_of_week": {
          "type": "keyword",
          "script": {
            "source": "emit(doc['@timestamp'].value.dayOfWeekEnum.getDisplayName(TextStyle.FULL, Locale.ENGLISH))"
          }
        }
      }
    }
  }
}

Этот шаблон компонента добавляет динамическое поле с именем day_of_week в отображения, когда новый индекс соответствует шаблону.

Следующий запрос создаёт шаблон индекса, составленный из этих шаблонов компонентов.

PUT _index_template/template_1
{
  "index_patterns": ["te*", "bar*"],
  "template": {
    "settings": {
      "number_of_shards": 1
    },
    "mappings": {
      "_source": {
        "enabled": true
      },
      "properties": {
        "host_name": {
          "type": "keyword"
        },
        "created_at": {
          "type": "date",
          "format": "EEE MMM dd HH:mm:ss Z yyyy"
        }
      }
    },
    "aliases": {
      "mydata": { }
    }
  },
  "priority": 500,
  "composed_of": ["component_template1", "runtime_component_template"], 
  "version": 3,
  "_meta": {
    "description": "my custom"
  }
}

© 2023-2025 Elasticsearch
As of September 2024, Elasticsearch is available under a choice of three licenses: the Server Side Public License (SSPL), the Elastic License, or the AGPLv3 (OSI approved).
Elasticsearch and the Elasticsearch logo are trademarks of Elasticsearch B.V., registered in the U.S. and in other countries.
https://www.elastic.co/guide/en/elasticsearch/reference/7.17/index-templates.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API