Spec-Zone.ru › Elasticsearch 8
›Elasticsearch Guide [8.17] ›Конвейеры индексирования ›Справочник по процессорам индексирования

Процессор перенаправления

Процессор reroute позволяет перенаправить документ в другой целевой индекс или потоковый набор данных. Он имеет два основных режима:

При установке опции destination, целевой объект явно задан, и опции dataset и namespace не могут быть установлены.

Если опция destination не установлена, этот процессор работает в режиме потокового набора данных. Обратите внимание, что в этом режиме процессор reroute может использоваться только с потоковыми наборами данных, следующими схеме именования потоковых наборов данных схемы именования потоковых наборов данных. Попытка использовать этот процессор с потоковым набором данных с несоответствующим именем приведет к возникновению исключения.

Имя потокового набора данных состоит из трёх частей: <type>-<dataset>-<namespace>. Более подробную информацию см. в документации по схеме именования потоковых наборов данных.

Этот процессор может использовать как статические значения, так и ссылки на поля из документа для определения компонентов dataset и namespace нового целевого объекта. Более подробную информацию см. в таблице 39 «Опции перенаправления».

Невозможно изменить type потокового набора данных с помощью процессора reroute.

После выполнения процессора reroute все остальные процессоры текущего конвейера пропускаются, включая конечный конвейер. Если текущий конвейер выполняется в контексте конвейера, вызываемый конвейер также будет пропущен. Это означает, что в конвейере может быть выполнен не более одного процессора reroute, что позволяет определить взаимоисключающие условия перенаправления, аналогично условию if, else-if, else-if, ….

Процессор перенаправления гарантирует, что поля data_stream.<type|dataset|namespace> устанавливаются в соответствии с новым целевым объектом. Если документ содержит значение event.dataset, оно будет обновлено, чтобы отразить то же значение, что и data_stream.dataset.

Обратите внимание, что клиент должен иметь разрешения на доступ к окончательному целевому объекту. В противном случае документ будет отклонен с исключением безопасности, которое выглядит так:

{"type":"security_exception","reason":"action [indices:admin/auto_create] is unauthorized for API key id [8-dt9H8BqGblnY2uSI--] of user [elastic/fleet-server] on indices [logs-foo-default], this action is granted by the index privileges [auto_configure,create_index,manage,all]"}

Таблица 39. Опции перенаправления

Имя Обязательно По умолчанию Описание

destination

нет

-

Статическое значение для целевого объекта. Не может быть установлено, когда установлены опции dataset или namespace.

dataset

нет

{{data_stream.dataset}}

Ссылки на поля или статические значения для части набора данных имени потокового набора данных. В дополнение к критериям для имен индексов, не может содержать - и должно быть не длиннее 100 символов. Примеры значений — nginx.access и nginx.error.

Поддерживает ссылки на поля с синтаксисом, похожим на Mustache (обозначается фигурными скобками {{double}} или {{{triple}}}). При разрешении ссылок на поля процессор заменяет недопустимые символы на _. Использует часть имени индекса <dataset> в качестве резервного варианта, если все ссылки на поля разрешаются в null, отсутствуют или не являются строками.

namespace

нет

{{data_stream.namespace}}

Ссылки на поля или статические значения для части пространства имён имени потокового набора данных. См. критерии для имен индексов допустимых символов. Не должно быть длиннее 100 символов.

Поддерживает ссылки на поля с синтаксисом, похожим на Mustache (обозначается фигурными скобками {{double}} или {{{triple}}}). При разрешении ссылок на поля процессор заменяет недопустимые символы на _. Использует часть имени индекса <namespace> в качестве резервного варианта, если все ссылки на поля разрешаются в null, отсутствуют или не являются строками.

description

нет

-

Описание процессора. Полезно для описания цели процессора или его конфигурации.

if

нет

-

Условное выполнение процессора. См. Условное выполнение процессора.

ignore_failure

нет

false

Игнорировать ошибки для процессора. См. Обработка ошибок конвейера.

on_failure

нет

-

Обрабатывать ошибки для процессора. См. Обработка ошибок конвейера.

tag

нет

-

Идентификатор процессора. Полезно для отладки и метрик.

Опция if может быть использована для определения условия, при котором документ должен быть перенаправлен на новый целевой объект.

{
  "reroute": {
    "tag": "nginx",
    "if" : "ctx?.log?.file?.path?.contains('nginx')",
    "dataset": "nginx"
  }
}

Опции dataset и namespace могут содержать либо одно значение, либо список значений, используемых в качестве резервных вариантов. Если ссылка на поле приводит к значению null, поле отсутствует в документе, используется следующее значение или ссылка на поле. Если ссылка на поле приводит к значению, которое не является String, процессор завершается с ошибкой.

В следующем примере процессор сначала попытается разрешить значение для поля service.name, чтобы определить значение для dataset. Если это поле разрешается в null, отсутствует или не является строкой, используется следующий элемент в списке. В этом случае это статическое значение ""generic". Опция namespace настроена только на одно статическое значение.

{
  "reroute": {
    "dataset": [
        "{{service.name}}",
        "generic"
    ],
    "namespace": "default"
  }
}

© 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/8.17/reroute-processor.html

Spec-Zone.ru

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