Ingest Pipelines

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

Ingest-конвейеры в Elasticsearch предоставляют встроенный ETL-уровень, трансформирующий и обогащающий документы на узлах приёма перед записью в поисковый индекс, избавляя от необходимости в отдельном уровне обработки данных для типовых преобразований. Фреймворк конвейеров поддерживает более 40 встроенных процессоров: Grok (разбор полей по регулярным выражениям), GeoIP (обогащение IP-адреса геолокацией), Date (нормализация форматов временных меток), Convert (приведение типов), Set (добавление или перезапись полей), Remove (удаление полей) и другие, которые можно объединять в цепочку в любом порядке в рамках одного конвейера. Ingest-конвейеры в Elasticsearch хранятся как ресурсы уровня кластера через PUT /_ingest/pipeline/<id> и могут указываться по имени из любой конфигурации вывода Beats или Logstash, из Bulk API через параметр ?pipeline= или как конвейер по умолчанию, заданный непосредственно в индексе. Обработка ошибок внутри ingest-конвейеров управляется блоками on_failure на уровне конвейера или процессора, позволяя направлять неудавшиеся документы в специальный индекс мёртвых писем или записывать ошибку в журнал без потери документа. Kibana предоставляет визуальный редактор Ingest Pipelines в Stack Management, упрощающий добавление, переупорядочивание и тестирование процессоров без необходимости писать сырой JSON против API Elasticsearch.

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

Ingest Pipelines: 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 до деплоя.

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

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

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

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