Set и Rename

Тема дорожной карты · Elasticsearch

Процессоры Set и Rename — два из наиболее часто используемых утилитарных процессоров в ingest-конвейерах Elasticsearch для добавления, перезаписи и переименования полей документа перед сохранением. Процессор Set добавляет новое поле или перезаписывает существующее с использованием статического значения или выражения на языке Painless: например, добавление {"set": {"field": "environment", "value": "production"}} ко всем документам, проходящим через конвейер. Процессор Rename изменяет имя существующего поля, не затрагивая его значение — это полезно для нормализации непоследовательных имён полей из разных источников данных в единую схему перед индексированием в Elasticsearch. Оба процессора поддерживают опцию ignore_missing (молча пропускает процессор, если указанное поле отсутствует) и условие if (принимающее выражение на Painless для применения процессора только к документам, удовлетворяющим заданному критерию). Эти процессоры часто применяются в сочетании с процессорами Grok и GeoIP в ingest-конвейерах Elasticsearch для построения полных рабочих процессов нормализации полей, обеспечивающих единообразие дашбордов Kibana и поисковых запросов Query DSL по нескольким источникам данных.

Как это работает

Set и Rename: Elasticsearch может трансформировать документы при ingest через Ingest Pipelines — цепочки processors. Распространённые: grok (парсит unstructured text — syslog/nginx access logs), set/rename/remove/copy (манипуляция полями), geoip (enrich IPs), pipeline (compose). Быстрее Logstash для простых трансформ, работает на ES-нодах. Logstash добавляет heavier transforms + multiple outputs + queueing. Beats (Filebeat, Metricbeat) — lightweight shippers для log/metric collection.

Когда применять

Для простых трансформ (field renames, IP enrichment, log parsing) — Ingest Pipelines прямо в ES: меньше moving parts. Logstash для queueing, multiple outputs, сложного enrichment, или где ES-ноды не должны handle ingest CPU. Filebeat — дефолтный log shipper. Тестируйте pipelines через _simulate API до деплоя.

Типичные ошибки

Ловушки Set и Rename: pipelines на dedicated data ноды (CPU contention с queries — dedicated ingest ноды); grok patterns не match (тихие failures); нет failure handlers (pipeline errors глотают данные); не версионируют pipelines (изменение ломает всех consumers).

Связанные понятия

Полезные ресурсы