Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Data Streams
    • Все руководства
    • Ввод данных в системы хранения
    • Умная обработка логов
    • Передача данных в микросервисных архитектурах
    • Сохранение данных в ClickHouse®
    • Репликация логов в Object Storage с помощью Fluent Bit
    • Репликация логов в Object Storage с помощью Data Streams
    • Миграция данных в Yandex Object Storage с помощью Yandex Data Transfer
    • Поставка данных из Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Поставка данных из очереди Data Streams в Managed Service for YDB
    • Поставка данных в Yandex Managed Service for Apache Kafka® с помощью Yandex Data Transfer
    • Захват изменений YDB и поставка в YDS
    • Захват изменений PostgreSQL и поставка в YDS
    • Захват изменений MySQL® и поставка в YDS
    • Передача событий Yandex Cloud Postbox в Yandex Data Streams и их анализ с помощью Yandex DataLens
    • Создание интерактивного serverless-приложения с использованием WebSocket
    • Обработка аудитных логов Audit Trails
    • Обработка потока изменений Debezium
    • Загрузка аудитных логов в MaxPatrol SIEM
    • Поиск событий Yandex Cloud в Yandex Query
  • Управление доступом
  • Правила тарификации
  • Вопросы и ответы

В этой статье:

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Настройте окружение
  • Создайте бакет
  • Создайте поток данных
  • Создайте трансфер
  • Установите Fluent Bit
  • Подключите Fluent Bit к потоку данных
  • Проверьте отправку и получение данных
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Репликация логов в Object Storage с помощью Fluent Bit

Репликация логов в Yandex Object Storage с помощью Fluent Bit

Статья создана
Yandex Cloud
Обновлена 17 марта 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Настройте окружение
  • Создайте бакет
  • Создайте поток данных
  • Создайте трансфер
  • Установите Fluent Bit
  • Подключите Fluent Bit к потоку данных
  • Проверьте отправку и получение данных
  • Как удалить созданные ресурсы

Агрегаторы данных позволяют транслировать данные, такие как логи, с виртуальных машин в сервисы просмотра логов и хранения данных.

С предлагаемой инструкцией вы научитесь автоматически реплицировать логи с виртуальной машины в бакет Object Storage с помощью обработчика логов Fluent Bit.

Решение, которое описано ниже, работает по следующей схеме:

  1. На рабочей ВМ запущен Fluent Bit как systemd-модуль.
  2. Fluent Bit собирает логи в соответствии с настройками конфигурации и отправляет их в поток Data Streams по протоколу Amazon Kinesis Data Streams.
  3. В рабочем каталоге настроен трансфер Data Transfer, который забирает данные из потока и сохраняет в бакет Object Storage.

Чтобы настроить репликацию логов:

  1. Подготовьте облако к работе.
  2. Настройте окружение.
  3. Создайте бакет Object Storage, в котором будут храниться логи.
  4. Создайте поток данных Data Streams.
  5. Создайте трансфер Data Transfer.
  6. Установите Fluent Bit.
  7. Подключите Fluent Bit к потоку данных.
  8. Проверьте отправку и получение данных.

Если вы больше не хотите хранить логи, удалите используемые ресурсы.

Подготовьте облако к работеПодготовьте облако к работе

Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:

  1. Перейдите в консоль управления, затем войдите в Yandex Cloud или зарегистрируйтесь.
  2. На странице Yandex Cloud Billing убедитесь, что у вас подключен платежный аккаунт, и он находится в статусе ACTIVE или TRIAL_ACTIVE. Если платежного аккаунта нет, создайте его и привяжите к нему облако.

Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака.

Подробнее об облаках и каталогах.

Необходимые платные ресурсыНеобходимые платные ресурсы

В стоимость поддержки хранения данных входит:

  • Плата за обслуживание потока данных (см. тарифы Yandex Data Streams).
  • Плата за перенос данных между источниками и приемниками (см. тарифы Yandex Data Transfer).
  • Плата за хранение данных (см. тарифы Yandex Object Storage).

Настройте окружениеНастройте окружение

  1. Создайте сервисный аккаунт, например logs-sa, с ролью editor на каталог.

  2. Создайте статический ключ доступа для сервисного аккаунта. Сохраните идентификатор и секретный ключ. Они понадобятся, чтобы авторизоваться в AWS.

  3. Создайте ВМ из публичного образа Ubuntu 20.04. В блоке Доступ укажите сервисный аккаунт, который создали на предыдущем шаге.

  4. Подключитесь к ВМ по SSH.

  5. Установите на ВМ утилиту AWS CLI.

  6. Выполните команду:

    aws configure
    
  7. Последовательно введите:

    • AWS Access Key ID [None]: — идентификатор ключа сервисного аккаунта.
    • AWS Secret Access Key [None]: — секретный ключ сервисного аккаунта.
    • Default region name [None]: — регион ru-central1.

Создайте бакетСоздайте бакет

Консоль управления
  1. В консоли управления выберите каталог, в котором хотите создать бакет.
  2. Выберите сервис Object Storage.
  3. Нажмите кнопку Создать бакет.
  4. Введите имя бакета.
  5. В поле Класс хранилища выберите Холодное.
  6. Нажмите кнопку Создать бакет.

Создайте поток данныхСоздайте поток данных

Консоль управления
  1. В консоли управления выберите каталог, в котором хотите создать поток данных.
  2. Выберите сервис Data Streams.
  3. Нажмите кнопку Создать поток.
  4. Укажите существующую бессерверную базу данных YDB или создайте новую. Если вы создали новую БД, нажмите значок , чтобы обновить список БД.
  5. Введите имя потока данных, например logs-stream.
  6. Нажмите кнопку Создать.

Дождитесь запуска потока данных. Когда поток станет готов к использованию, его статус изменится с Creating на Active.

Создайте трансферСоздайте трансфер

Консоль управления
  1. В консоли управления выберите каталог, в котором хотите создать трансфер.
  2. Выберите сервис Data Transfer.
  3. Создайте эндпоинт-источник:
    1. На вкладке Эндпоинты нажмите кнопку Создать эндпоинт.
    2. В поле Направление выберите Источник.
    3. Введите имя эндпоинта, например logs-source.
    4. В списке Тип базы данных выберите Yandex Data Streams.
    5. Выберите базу данных, которую указали в настройках потока данных, созданного ранее.
    6. Введите имя потока данных logs-stream.
    7. Выберите созданный ранее сервисный аккаунт logs-sa.
    8. В блоке Расширенные настройки укажите правила конвертации для данных Парсер CloudLogging.
    9. Нажмите кнопку Создать.
  4. Создайте эндпоинт-приемник:
    1. На вкладке Эндпоинты нажмите кнопку Создать эндпоинт.
    2. В поле Направление выберите Приёмник.
    3. Введите имя эндпоинта, например logs-receiver.
    4. В списке Тип базы данных выберите Object Storage.
    5. Введите имя созданного ранее бакета.
    6. Выберите созданный ранее сервисный аккаунт logs-sa.
    7. В поле Выходной формат выберите JSON.
    8. Нажмите кнопку Создать.
  5. Создайте трансфер:
    1. На вкладке Трансферы нажмите кнопку Создать трансфер.
    2. Введите имя трансфера, например logs-transfer.
    3. Выберите созданный ранее эндпоинт-источник logs-source.
    4. Выберите созданный ранее эндпоинт-приемник logs-receiver.
    5. Нажмите кнопку Создать.
  6. Напротив созданного трансфера нажмите и выберите Активировать.

Дождитесь активации трансфера. Когда трансфер станет готов к использованию, его статус сменится с Создается на Реплицируется.

Установите Fluent BitУстановите Fluent Bit

Примечание

В данном руководстве используется актуальная версия Fluent Bit v1.9.

  1. Чтобы установить Fluent Bit на ВМ, выполните команду:

    curl https://raw.githubusercontent.com/fluent/fluent-bit/master/install.sh | sh
    

    Подробнее о том, как установить Fluent Bit, см. в официальной документации.

  2. Запустите сервис fluent-bit:

    sudo systemctl start fluent-bit
    
  3. Проверьте статус сервиса fluent-bit, он должен быть активен:

    sudo systemctl status fluent-bit
    

    Результат должен содержать статус active (running) и логи встроенного плагина cpu, которые Fluent Bit по умолчанию собирает сразу после установки:

    ● fluent-bit.service - Fluent Bit
     Loaded: loaded (/lib/systemd/system/fluent-bit.service; disabled; vendor preset: enabled)
     Active: active (running) since Thu 2022-09-08 10:23:03 UTC; 10s ago
       Docs: https://docs.fluentbit.io/manual/
    Main PID: 1328 (fluent-bit)
      Tasks: 4 (limit: 2310)
     Memory: 2.8M
     CGroup: /system.slice/fluent-bit.service
             └─1328 /opt/fluent-bit/bin/fluent-bit -c //etc/fluent-bit/fluent-bit.conf
    
     Sep 08 10:23:03 ycl-20 fluent-bit[1328]: [2022/09/08 10:23:03] [ info] [output:stdout:stdout.0] worker #0 started
     Sep 08 10:23:05 ycl-20 fluent-bit[1328]: [0] cpu.local: [1662632584.114661597, {"cpu_p"=>1.000000, "user_p"=>0.000000, >
     Sep 08 10:23:06 ycl-20 fluent-bit[1328]: [0] cpu.local: [1662632585.114797726, {"cpu_p"=>0.000000, "user_p"=>0.000000, >
     ...
     
    

Подключите Fluent Bit к потоку данныхПодключите Fluent Bit к потоку данных

Примечание

Если у вас установлена версия Fluent Bit ниже, чем 1.9, распространяемая как часть пакета td-agent-bit, редактируйте файлы /etc/td-agent-bit/td-agent-bit.conf, /lib/systemd/system/td-agent-bit.service и перезапускайте сервис td-agent-bit.

  1. Откройте файл /etc/fluent-bit/fluent-bit.conf:

    sudo vim  /etc/fluent-bit/fluent-bit.conf
    
  2. Добавьте блок OUTPUT с настройками плагина kinesis_streams:

    [OUTPUT]
        Name  kinesis_streams
        Match *
        region ru-central-1
        stream /<регион>/<идентификатор_каталога>/<идентификатор_базы_данных>/<имя_потока_данных>
        endpoint https://yds.serverless.yandexcloud.net
    

    Где:

    • stream — идентификатор потока данных Data Streams.

      Например, укажите идентификатор потока /ru-central1/aoeu1kuk2dht********/cc8029jgtuab********/logs-stream, если:

      • logs-stream — имя потока;
      • ru-central1 — регион;
      • aoeu1kuk2dht******** — идентификатор каталога;
      • cc8029jgtuab******** — идентификатор базы данных YDB.

    Подробнее о том, как настроить Fluent Bit см. в официальной документации.

  3. Откройте файл /lib/systemd/system/fluent-bit.service:

    sudo vim  /lib/systemd/system/fluent-bit.service
    
  4. Добавьте в блок SERVICE переменные окружения, которые содержат пути к файлам с ключами доступа:

    Environment=AWS_CONFIG_FILE=/home/<имя_пользователя>/.aws/config
    Environment=AWS_SHARED_CREDENTIALS_FILE=/home/<имя_пользователя>/.aws/credentials
    

    Где <имя_пользователя> — логин, который вы указали в настройках виртуальной машины.

  5. Перезапустите сервис fluent-bit:

    sudo systemctl daemon-reload
    sudo systemctl restart fluent-bit
    
  6. Проверьте статус сервиса fluent-bit. В нем не должно быть сообщений об ошибках:

    sudo systemctl status fluent-bit
    

    Результат:

    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: Fluent Bit v1.9.8
    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: * Copyright (C) 2015-2022 The Fluent Bit Authors
    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: * Fluent Bit is a CNCF sub-project under the umbrella of Fluentd
    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: * https://fluentbit.io
    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: [2022/09/08 16:51:19] [ info] [fluent bit] version=1.9.8, commit=, pid=3450
    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: [2022/09/08 16:51:19] [ info] [storage] version=1.2.0, type=memory-only, sync=normal, checksum=disabled, max_chunks_up=128
    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: [2022/09/08 16:51:19] [ info] [cmetrics] version=0.3.6
    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: [2022/09/08 16:51:19] [ info] [sp] stream processor started
    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: [2022/09/08 16:51:19] [ info] [output:kinesis_streams:kinesis_streams.1] worker #0 started
    Sep 08 16:51:19 ycl-20 fluent-bit[3450]: [2022/09/08 16:51:19] [ info] [output:stdout:stdout.0] worker #0 started
    

Проверьте отправку и получение данныхПроверьте отправку и получение данных

Консоль управления
  1. В консоли управления перейдите в каталог, в котором создали поток данных, трансфер и бакет.
  2. Выберите сервис Data Streams.
  3. Выберите поток данных logs-stream.
  4. Перейдите на вкладку Мониторинг и посмотрите графики активности потока.
  5. Выберите сервис Data Transfer.
  6. Выберите трансфер logs-transfer.
  7. Перейдите на вкладку Мониторинг и посмотрите графики активности трансфера.
  8. Выберите сервис Object Storage.
  9. Выберите бакет, созданный ранее.
  10. Проверьте, что в бакете появились объекты. Скачайте и посмотрите полученные файлы с логами.

Как удалить созданные ресурсыКак удалить созданные ресурсы

Некоторые ресурсы платные. Чтобы за них не списывалась плата, удалите ресурсы, которые вы больше не будете использовать:

  1. Удалите трансфер.
  2. Удалите эндпоинты.
  3. Удалите поток данных.
  4. Удалите объекты в бакете.
  5. Удалите бакет.

Была ли статья полезна?

Предыдущая
Сохранение данных в ClickHouse®
Следующая
Репликация логов в Object Storage с помощью Data Streams
Проект Яндекса
© 2025 ООО «Яндекс.Облако»