Передача данных через Fluent Bit
Fluent Bit — агент для сбора, обработки и экспорта логов, метрик и трейсов. Вы можете использовать Fluent Bit для передачи телеметрии в Monium по протоколу OTLP
Fluent Bit можно использовать в следующих случаях:
- Требуется разбирать логи разных форматов.
- Нужно собирать логи контейнеров в кластере Kubernetes.
- Нужно собирать разные логи с одного хоста: из файлов, Docker, системных журналов или стандартного вывода приложений.
- Нужен легкий агент для приема и отправки метрик и трейсов по OTLP. При передаче метрик учитывайте ограничения.
В остальных случаях рекомендуется использовать OTel Collector.
Требования к версии
Для работы примеров используйте Fluent Bitopentelemetry.
Ограничения при передаче метрик
Fluent Bit не сохраняет время начала периода метрик (startTimeUnixNano). Без него изменение (дельта) метрики обрабатываются некорректно. Не используйте Fluent Bit для передачи метрик, если в приложении настроена переменная OTEL_EXPORTER_OTLP_METRICS_TEMPORALITY_PREFERENCE="delta".
Настройка передачи телеметрии
-
Установите
Fluent Bit рядом с источником телеметрии (на сервере, в контейнере или в кластере Kubernetes). -
Создайте файл конфигурации (например,
fluent-bit.yaml).Ниже приведены примеры конфигурации для отправки логов, метрик и трейсов в Monium по gRPC или HTTP. Настройте входной плагин под ваш источник данных.
Для передачи трейсов используются входной
и выходной плагиныopentelemetry. Агент принимает трейсы по OTLP, буферизует их и отправляет в Monium по тому же протоколу.По gRPC
pipeline: inputs: - name: opentelemetry listen: 127.0.0.1 port: 4318 outputs: - name: opentelemetry match: "*" host: ingest.monium.yandex.cloud port: 443 tls: on compress: zstd grpc: on header: - Authorization Api-Key ${MONIUM_API_KEY} - x-monium-project ${MONIUM_PROJECT}По HTTP
pipeline: inputs: - name: opentelemetry listen: 127.0.0.1 port: 4318 outputs: - name: opentelemetry match: "*" host: ingest.monium.yandex.cloud port: 443 tls: on compress: zstd logs_uri: /otlp/v1/logs traces_uri: /otlp/v1/traces metrics_uri: /otlp/v1/metrics header: - Authorization Api-Key ${MONIUM_API_KEY} - x-monium-project ${MONIUM_PROJECT} -
Установите переменные окружения:
MONIUM_PROJECT— проект Monium, напримерfolder__<идентификатор_каталога>.MONIUM_API_KEY— API-ключ с правом записи телеметрии.
-
Запустите Fluent Bit с указанием конфигурации.
-
Настройте приложение на отправку телеметрии во Fluent Bit по OTLP/HTTP в формате Protobuf. Например, для OpenTelemetry SDK с поддержкой переменных окружения
задайте в окружении приложения:export OTEL_EXPORTER_OTLP_ENDPOINT="http://127.0.0.1:4318" export OTEL_EXPORTER_OTLP_PROTOCOL="http/protobuf"Адрес
127.0.0.1подходит, если приложение и агент используют общее сетевое пространство, например работают на одном сервере без изоляции сети или в одном поде Kubernetes. В остальных случаях измените параметрlistenвходного плагина и укажите в приложении адрес агента, доступный по сети. -
Запустите приложение с этими настройками и начните отправлять телеметрию.
-
Проверьте поступление данных в Monium
.Подробнее о просмотре данных читайте в разделах Посмотреть метрики в Monium Metrics, Поиск и анализ логов и Поиск трейсов и спанов.
Простейший вариант использования Fluent Bit для отправки всех видов телеметрии из Java-приложения в Monium описан в разделе Пример для демо-приложения Java с Fluent Bit.
Подробные примеры конфигурации (Docker, Kubernetes, парсеры) приведены в разделе Отправка логов через Fluent Bit.