Fluentd → Loki

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

Fluentd может пересылать потоки логов в Grafana Loki с помощью плагина вывода fluent-plugin-grafana-loki, который преобразует записи Fluentd в формат push API Loki. После установки плагина командой fluent-gem install fluent-plugin-grafana-loki в fluent.conf настраивается раздел <match>, задающий URL конечной точки Loki, набор прикрепляемых меток (например, job и host), а также параметры аутентификации, если в экземпляре Loki включена мультитенантность. Богатая экосистема входных плагинов Fluentd (syslog, tail, forward, Kafka) в сочетании с плагином вывода Loki делает его гибким выбором для организаций, уже использующих Fluentd в качестве основы агрегации логов и желающих добавить Grafana Loki в качестве бэкенда хранилища. Плагин группирует записи логов в полезные нагрузки, совместимые с конечной точкой /loki/api/v1/push Loki, и поддерживает настраиваемое извлечение меток из полей записей Fluentd с помощью extra_labels. При миграции с Elasticsearch на Grafana Loki маршрутизация вывода в Fluentd позволяет легко осуществлять двойную запись в обе системы в период перехода.

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

Fluentd → Loki: альтернативы Promtail. Fluentd (legacy, Ruby) + Fluent Bit (C, lightweight) шипят в Loki через Loki output plugin. Docker имеет built-in Loki driver (--log-driver=loki) — простейшее для plain Docker хостов. OpenTelemetry Collector (OTel) становится universal агентом — single binary для logs/metrics/traces, vendor-neutral. Выбирайте по ecosystem fit: K8s + Grafana stack → Promtail/Alloy; mixed ecosystems → OTel; existing Fluent → держите Fluent Bit.

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

Для новых деплоев — OTel Collector: vendor-neutral + future-proof. Для pure Grafana stack — Promtail/Alloy. Docker driver ок для development, но теряет логи если Loki недоступен (нет буферизации) — production требует агента. Всегда буферизация + back off на Loki write failures.

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

Ловушки Fluentd → Loki: Docker Loki driver в prod без fallback (потеря логов на outage Loki); два агента шипят одни логи (dedup впустую); не конфигурируют backpressure (агент OOM под нагрузкой); игнор time-skew (логи приходят с неправильными timestamps).

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

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