Logstash и Beats

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

Logstash и Beats — это два основных компонента приёма данных в Elastic Stack, передающих данные в Elasticsearch для индексирования, поиска и аналитики. Beats — лёгкие специализированные агенты отправки данных, написанные на Go: Filebeat отправляет файлы журналов, Metricbeat — системные метрики и метрики сервисов, Packetbeat перехватывает сетевые данные, Winlogbeat собирает журналы событий Windows; все они настраиваются через YAML и предназначены для запуска непосредственно на мониторируемых серверах с минимальными накладными расходами. Logstash — серверный конвейер обработки данных, принимающий ввод из множества источников (Beats, syslog, баз данных, Kafka), применяющий преобразования через цепочку плагинов-фильтров (включая Grok для разбора логов, Mutate для работы с полями и GeoIP для обогащения) и затем отправляющий обогащённые события в Elasticsearch через плагин вывода elasticsearch. В большинстве современных инсталляций Elastic Stack агенты Beats развёртываются на периферийных узлах и либо отправляют данные напрямую в Elasticsearch, используя встроенные ingest-конвейеры, либо передают в централизованный кластер Logstash для сложной маршрутизации и обогащения перед записью в Elasticsearch. Выбор между схемой Beats-Elasticsearch (через ingest-конвейеры) и Beats-Logstash-Elasticsearch зависит от сложности требований к преобразованию и необходимости постоянной очереди для поглощения пиков нагрузки без потери данных.

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

Logstash и Beats: 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 до деплоя.

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

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

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

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