Репликация логов в Object Storage с помощью Data Streams
С помощью Yandex Data Streams можно настроить автоматическую репликацию логов сервисов и пользовательских приложений в Yandex Object Storage.
Решение работает по следующей схеме:
- В лог-группу Cloud Logging поступают логи, например с виртуальной машины.
- В настройках лог-группы указан поток данных Data Streams, в который автоматически транслируются логи.
- Настроен трансфер Data Transfer, который забирает данные из потока и сохраняет в бакет Object Storage.
Чтобы настроить репликацию логов:
- Подготовьте облако к работе.
- Настройте окружение.
- Создайте бакет.
- Создайте поток данных.
- Подключите поток данных к лог-группе.
- Создайте трансфер.
- Проверьте отправку и получение данных.
Если вы больше не хотите хранить логи, удалите используемые ресурсы.
Перед началом работы
Зарегистрируйтесь в Yandex Cloud и создайте платежный аккаунт:
- Перейдите в консоль управления
, затем войдите в Yandex Cloud или зарегистрируйтесь. - На странице Yandex Cloud Billing
убедитесь, что у вас подключен платежный аккаунт, и он находится в статусеACTIVE
илиTRIAL_ACTIVE
. Если платежного аккаунта нет, создайте его и привяжите к нему облако.
Если у вас есть активный платежный аккаунт, вы можете создать или выбрать каталог, в котором будет работать ваша инфраструктура, на странице облака
Подробнее об облаках и каталогах.
Необходимые платные ресурсы
В стоимость поддержки хранения данных входит:
- плата за обслуживание потока данных (см. тарифы Yandex Data Streams);
- плата за перенос данных между источниками и приемниками (см. тарифы Yandex Data Transfer);
- плата за хранение данных (см. тарифы Yandex Object Storage).
Настройте окружение
- Создайте сервисный аккаунт, например
logs-sa
, c рольюeditor
на каталог. - Настройте передачу логов в лог-группу. Например, вы можете передавать логи с ВМ или добавить в лог-группу тестовые записи.
Создайте бакет
- В консоли управления
выберите каталог, в котором хотите создать бакет. - Выберите сервис Object Storage.
- Нажмите кнопку Создать бакет.
- Введите имя бакета.
- В поле Класс хранилища выберите
Холодное
. - Нажмите кнопку Создать бакет.
Создайте поток данных
- В консоли управления
выберите каталог, в котором хотите создать поток данных. - Выберите сервис Data Streams.
- Нажмите кнопку Создать поток.
- Укажите существующую бессерверную базу данных YDB или создайте новую. Если вы создали новую БД, нажмите значок , чтобы обновить список БД.
- Введите имя потока данных, например
logs-stream
. - Нажмите кнопку Создать.
Дождитесь запуска потока данных. Когда поток станет готов к использованию, его статус изменится с Creating
на Active
.
Подключите поток данных к лог-группе
- В консоли управления
выберите сервис Cloud Logging. - Напротив лог-группы, в которую поступают логи, нажмите
и выберите Редактировать. - В поле Поток данных выберите поток
logs-stream
, созданный ранее. - Нажмите кнопку Сохранить.
Создайте трансфер
- В консоли управления
выберите каталог, в котором хотите создать трансфер. - Выберите сервис Data Transfer.
- Создайте эндпоинт-источник:
- На вкладке
Эндпоинты нажмите кнопку Создать эндпоинт. - В поле Направление выберите
Источник
. - Введите имя эндпоинта, например
logs-source
. - В списке Тип базы данных выберите
Yandex Data Streams
. - Выберите базу данных, которую указали в настройках потока данных, созданного ранее.
- Введите имя потока данных
logs-stream
. - Выберите созданный ранее сервисный аккаунт
logs-sa
. - В блоке Расширенные настройки укажите правила конвертации для данных
Парсер CloudLogging
. - Нажмите кнопку Создать.
- На вкладке
- Создайте эндпоинт-приемник:
- На вкладке
Эндпоинты нажмите кнопку Создать эндпоинт. - В поле Направление выберите
Приёмник
. - Введите имя эндпоинта, например
logs-receiver
. - В списке Тип базы данных выберите
Object Storage
. - Введите имя созданного ранее бакета.
- Выберите созданный ранее сервисный аккаунт
logs-sa
. - В поле Выходной формат выберите
JSON
. - Нажмите кнопку Создать.
- На вкладке
- Создайте трансфер:
- На вкладке
Трансферы нажмите кнопку Создать трансфер. - Введите имя трансфера, например
logs-transfer
. - Выберите созданный ранее эндпоинт-источник
logs-source
. - Выберите созданный ранее эндпоинт-приемник
logs-receiver
. - Нажмите кнопку Создать.
- На вкладке
- Напротив созданного трансфера нажмите
и выберите Активировать.
Дождитесь активации трансфера. Когда трансфер станет готов к использованию, его статус сменится с Создается
на Реплицируется
.
Проверьте отправку и получение данных
- В консоли управления
перейдите в каталог, в котором создали поток данных, трансфер и бакет. - Выберите сервис Data Streams.
- Выберите поток данных
logs-stream
. - Перейдите на вкладку Мониторинг и посмотрите графики активности потока.
- Выберите сервис Data Transfer.
- Выберите трансфер
logs-transfer
. - Перейдите на вкладку Мониторинг и посмотрите графики активности трансфера.
- Выберите сервис Object Storage.
- Выберите бакет, созданный ранее.
- Проверьте, что в бакете появились объекты. Скачайте и посмотрите полученные файлы с логами.
Как удалить созданные ресурсы
Чтобы перестать платить за созданные ресурсы: