Appearance
Использование 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Проверка
- Проверить статус:
bash
systemctl status td-agent- Проверить лог Fluentd:
bash
/var/log/td-agent/td-agent.log- Убедиться, что события появляются в ЖУРНАЛЛИСТ
Рекомендации
- использовать TCP для надежной доставки
- применять буферизацию Fluentd (buffer)
- нормализовать формат сообщений перед отправкой
- разделять потоки (system / app / security) через теги
Когда использовать Fluentd
Fluentd особенно эффективен:
- в Kubernetes и контейнерных средах
- при необходимости сложной маршрутизации и обработки логов
- в распределенных системах
Важно
Fluentd — это не только syslog-агент. Он может выступать полноценной системой обработки потоков данных.
В более сложных сценариях возможно:
- отправка через Kafka
- использование native fluent protocol
- интеграция с облачными системами
Однако для быстрой и универсальной интеграции с подсистемой ЖУРНАЛЛИСТ достаточно использования Syslog.