Skip to content

Использование Fluentd (Syslog)

Fluentd — универсальный инструмент для сбора, обработки и маршрутизации логов. Подсистема ЖУРНАЛЛИСТ может принимать данные от Fluentd по протоколу Syslog (UDP/TCP).

Fluentd поддерживает множество других способов передачи данных (HTTP, Kafka, forward protocol и др.), однако в данном разделе рассматривается только Syslog как наиболее универсальный и совместимый вариант.

Общая схема

Fluentd:

  • собирает логи (файлы, контейнеры, приложения)
  • при необходимости обогащает и фильтрует данные
  • отправляет их в ЖУРНАЛЛИСТ через Syslog

Установка Fluentd

Linux (общий пример)

bash
curl -L https://toolbelt.treasuredata.com/sh/install-redhat-td-agent4.sh | sh

или для Debian/Ubuntu:

bash
curl -L https://toolbelt.treasuredata.com/sh/install-ubuntu-focal-td-agent4.sh | sh

Служба:

bash
systemctl start td-agent
systemctl enable td-agent

Базовая конфигурация Syslog

Файл конфигурации:

bash
/etc/td-agent/td-agent.conf

Пример: отправка логов в ЖУРНАЛЛИСТ (TCP)

conf
<source>
  @type tail
  path /var/log/syslog
  pos_file /var/log/td-agent/syslog.pos
  tag system.syslog
  format none
</source>

<match system.syslog>
  @type syslog
  host journalist-server
  port 514
  protocol tcp
  facility user
  severity info
</match>

Пример: отправка логов (UDP)

conf
<match system.syslog>
  @type syslog
  host journalist-server
  port 514
  protocol udp
</match>

Пример для контейнерной среды (Kubernetes / Docker)

conf
<source>
  @type tail
  path /var/log/containers/*.log
  pos_file /var/log/td-agent/containers.pos
  tag kubernetes.logs
  format json
</source>

<match kubernetes.logs>
  @type syslog
  host journalist-server
  port 514
  protocol tcp
</match>

Обогащение данных

Fluentd позволяет добавлять поля перед отправкой:

conf
<filter system.syslog>
  @type record_transformer
  <record>
    environment production
    source fluentd
  </record>
</filter>

Перезапуск Fluentd

bash
systemctl restart td-agent

Проверка

  1. Проверить статус:
bash
systemctl status td-agent
  1. Проверить лог Fluentd:
bash
/var/log/td-agent/td-agent.log
  1. Убедиться, что события появляются в ЖУРНАЛЛИСТ

Рекомендации

  • использовать TCP для надежной доставки
  • применять буферизацию Fluentd (buffer)
  • нормализовать формат сообщений перед отправкой
  • разделять потоки (system / app / security) через теги

Когда использовать Fluentd

Fluentd особенно эффективен:

  • в Kubernetes и контейнерных средах
  • при необходимости сложной маршрутизации и обработки логов
  • в распределенных системах

Важно

Fluentd — это не только syslog-агент. Он может выступать полноценной системой обработки потоков данных.

В более сложных сценариях возможно:

  • отправка через Kafka
  • использование native fluent protocol
  • интеграция с облачными системами

Однако для быстрой и универсальной интеграции с подсистемой ЖУРНАЛЛИСТ достаточно использования Syslog.