Какие аналоги Logstash для сбора и обработки логов ты знаешь?

«Какие аналоги Logstash для сбора и обработки логов ты знаешь?» — вопрос из категории Мониторинг и логирование, который задают на 23% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

При построении pipeline для логов я оценивал несколько инструментов:

  • Fluentd / Fluent Bit: Fluentd стал нашим выбором для централизованного агрегатора благодаря огромному количеству плагинов (input/output/filter) и надёжной буферизации. Его конфигурация на Ruby-подобном DSL гибкая.

    <source>
      @type tail
      path /var/log/containers/*.log
      pos_file /var/log/fluentd-containers.log.pos
      tag kubernetes.*
      <parse>
        @type json
        time_key time
        time_format %Y-%m-%dT%H:%M:%S.%NZ
      </parse>
    </source>

    Fluent Bit использовали для edge-нод и внутри контейнеров из-за его малого потребления ресурсов.

  • Vector: Выбирали его для высоконагруженных сервисов, где была критична низкая задержка и высокий throughput. Его встроенный язык преобразований VRL (Vector Remap Language) мощный, но имеет свою кривую обучения.

  • Promtail: Использовали исключительно в связке с Grafana Loki для стриминга логов. Он лёгкий и идеально заточен под метки (labels) Loki, что упрощает фильтрацию и запросы.

Выбор зависит от стека: для Elasticsearch — Fluentd или Filebeat, для Loki — Promtail, для кастомных high-load pipeline — Vector.