Настройка потока данных
Чтобы настроить поток данных, выполните следующие действия:
Также можно преобразовать псевдоним индекса в поток данных.
Если вы используете Fleet или Elastic Agent, пропустите этот учебник. Fleet и Elastic Agent настраивают потоки данных за вас. См. документацию по потокам данных в Fleet документацию.
Создать политику жизненного цикла индексов
Хотя это необязательно, мы рекомендуем использовать ILM для автоматизации управления базовыми индексами вашего потока данных. Для ILM требуется политика жизненного цикла индексов.
Чтобы создать политику жизненного цикла индексов в Kibana, откройте главное меню и перейдите к Управление стеком > Политики жизненного цикла индексов. Нажмите Создать политику.
Также можно использовать API для создания политики жизненного цикла.
PUT _ilm/policy/my-lifecycle-policy
{
"policy": {
"phases": {
"hot": {
"actions": {
"rollover": {
"max_primary_shard_size": "50gb"
}
}
},
"warm": {
"min_age": "30d",
"actions": {
"shrink": {
"number_of_shards": 1
},
"forcemerge": {
"max_num_segments": 1
}
}
},
"cold": {
"min_age": "60d",
"actions": {
"searchable_snapshot": {
"snapshot_repository": "found-snapshots"
}
}
},
"frozen": {
"min_age": "90d",
"actions": {
"searchable_snapshot": {
"snapshot_repository": "found-snapshots"
}
}
},
"delete": {
"min_age": "735d",
"actions": {
"delete": {}
}
}
}
}
} Создать шаблоны компонентов
Поток данных требует соответствующего шаблона индекса. В большинстве случаев вы составляете этот шаблон индекса, используя один или несколько шаблонов компонентов. Обычно вы используете отдельные шаблоны компонентов для отображения и настроек индексов. Это позволяет повторно использовать шаблоны компонентов в нескольких шаблонах индексов.
При создании шаблонов компонентов включите:
- Отображение
dateилиdate_nanosдля поля@timestamp. Если вы не укажете отображение, Elasticsearch отобразит поле@timestampкак полеdateс параметрами по умолчанию. - Вашу политику жизненного цикла в настройке индекса
index.lifecycle.name.
Используйте Elastic Common Schema (ECS) при отображении ваших полей. Поля ECS по умолчанию интегрируются со многими функциями Elastic Stack.
Если вы не уверены, как отобразить свои поля, используйте runtime-поля, чтобы извлечь поля из неструктурированного содержимого во время поиска. Например, вы можете проиндексировать сообщение журнала в поле wildcard и позже извлечь IP-адреса и другие данные из этого поля во время поиска.
Чтобы создать шаблон компонента в Kibana, откройте главное меню и перейдите к Управление стеком > Управление индексами. В представлении Шаблоны индексов нажмите Создать шаблон компонента.
Также можно использовать API для создания шаблона компонента.
# Creates a component template for mappings
PUT _component_template/my-mappings
{
"template": {
"mappings": {
"properties": {
"@timestamp": {
"type": "date",
"format": "date_optional_time||epoch_millis"
},
"message": {
"type": "wildcard"
}
}
}
},
"_meta": {
"description": "Mappings for @timestamp and message fields",
"my-custom-meta-field": "More arbitrary metadata"
}
}
# Creates a component template for index settings
PUT _component_template/my-settings
{
"template": {
"settings": {
"index.lifecycle.name": "my-lifecycle-policy"
}
},
"_meta": {
"description": "Settings for ILM",
"my-custom-meta-field": "More arbitrary metadata"
}
} Создать шаблон индекса
Используйте ваши шаблоны компонентов для создания шаблона индекса. Укажите:
- Один или несколько шаблонов индексов, которые соответствуют имени потока данных. Мы рекомендуем использовать нашу схему именования потоков данных.
- Что шаблон поддерживает потоки данных.
- Любые шаблоны компонентов, которые содержат ваши отображения и настройки индексов.
- Приоритет выше, чем
200, чтобы избежать конфликтов со встроенными шаблонами. См. Избегайте конфликтов шаблонов индексов.
Чтобы создать шаблон индекса в Kibana, откройте главное меню и перейдите к Управление стеком > Управление индексами. В представлении Шаблоны индексов нажмите Создать шаблон.
Также можно использовать API для создания шаблона индекса. Включите объект data_stream, чтобы включить потоки данных.
PUT _index_template/my-index-template
{
"index_patterns": ["my-data-stream*"],
"data_stream": { },
"composed_of": [ "my-mappings", "my-settings" ],
"priority": 500,
"_meta": {
"description": "Template for my time series data",
"my-custom-meta-field": "More arbitrary metadata"
}
} Создать поток данных
Запросы индексирования добавляют документы в поток данных. Эти запросы должны использовать op_type из create. Документы должны содержать поле @timestamp.
Чтобы автоматически создать поток данных, отправьте запрос индексирования, который нацелен на имя потока. Это имя должно совпадать с одним из шаблонов индексов вашего шаблона индекса.
PUT my-data-stream/_bulk
{ "create":{ } }
{ "@timestamp": "2099-05-06T16:21:15.000Z", "message": "192.0.2.42 - - [06/May/2099:16:21:15 +0000] \"GET /images/bg.jpg HTTP/1.0\" 200 24736" }
{ "create":{ } }
{ "@timestamp": "2099-05-06T16:25:42.000Z", "message": "192.0.2.255 - - [06/May/2099:16:25:42 +0000] \"GET /favicon.ico HTTP/1.0\" 200 3638" }
POST my-data-stream/_doc
{
"@timestamp": "2099-05-06T16:21:15.000Z",
"message": "192.0.2.42 - - [06/May/2099:16:21:15 +0000] \"GET /images/bg.jpg HTTP/1.0\" 200 24736"
} Также можно вручную создать поток, используя API создания потока данных. Имя потока по-прежнему должно соответствовать одному из шаблонов индексов вашего шаблона.
PUT _data_stream/my-data-stream
Защитить поток данных
Используйте права доступа к индексам, чтобы управлять доступом к потоку данных. Предоставление прав на поток данных предоставляет те же права на его базовые индексы.
Пример см. в разделе о правах доступа к потоку данных.
Преобразовать псевдоним индекса в поток данных
До Elasticsearch 7.9 вы обычно использовали псевдоним индекса с индексом записи для управления данными временных рядов. Потоки данных заменяют эту функциональность, требуют меньше обслуживания и автоматически интегрируются с уровнями данных.
Чтобы преобразовать псевдоним индекса с индексом записи в поток данных с тем же именем, используйте API миграции в поток данных. Во время преобразования индексы псевдонима станут скрытыми базовыми индексами потока. Индекс записи псевдонима станет индексом записи потока. Потоку по-прежнему требуется соответствующий шаблон индекса, поддерживающий потоки данных.
POST _data_stream/_migrate/my-time-series-data
Получить информацию о потоке данных
Чтобы получить информацию о потоке данных в Kibana, откройте главное меню и перейдите к Управление стеком > Управление индексами. В представлении Потоки данных нажмите имя потока данных.
Также можно использовать API получения потока данных.
GET _data_stream/my-data-stream
Удалить поток данных
Чтобы удалить поток данных и его базовые индексы в Kibana, откройте главное меню и перейдите к Управление стеком > Управление индексами. В представлении Потоки данных нажмите значок корзины. Значок отображается только если у вас есть delete_index право доступа к безопасности для потока данных.
Также можно использовать API удаления потока данных.
DELETE _data_stream/my-data-stream
© 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/set-up-a-data-stream.html