Yandex Cloud
  • Сервисы
  • Решения
  • Почему Yandex Cloud
  • Сообщество
  • Тарифы
  • Документация
  • Связаться с нами
Подключиться
Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
Практические руководства
  • Веб-сервис
    • Все руководства
    • Статический сайт в Object Storage
    • Сайт на LAMP- или LEMP-стеке
    • Отказоустойчивый сайт с балансировкой нагрузки с помощью Network Load Balancer
    • Отказоустойчивый сайт с балансировкой нагрузки с помощью Application Load Balancer
    • Сайт на базе Joomla с БД PostgreSQL
    • Создание сайта на WordPress
    • Сайт на WordPress с БД MySQL
    • Перенос WordPress сайта с хостинга в Yandex Cloud
    • Сайт на базе 1С-Битрикс
    • Организация виртуального хостинга
    • Создание балансировщика с защитой от DDoS
    • Публикация обновлений для игр с помощью Cloud CDN
    • Интеграция L7-балансировщика с Cloud CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Терминирование TLS-соединений
  • Интернет-магазины
    • Все руководства
    • Интернет-магазин на 1С-Битрикс
    • Интернет-магазин на OpenCart
  • Архив данных
    • Все руководства
    • Однонодовый файловый сервер
    • Настройка SFTP-сервера на Centos 7
    • Резервное копирование в Object Storage через Acronis
    • Резервное копирование в Object Storage с помощью CloudBerry Desktop Backup
    • Резервное копирование в Object Storage через Duplicati
    • Резервное копирование в Object Storage с помощью Bacula
    • Резервное копирование в Object Storage с помощью Veritas Backup Exec
    • Распознавание архива изображений в Vision
  • Тестовая среда
    • Все руководства
    • Тестирование приложений с помощью GitLab
    • Создание тестовых ВМ через GitLab CI
    • Высокопроизводительные вычисления на прерываемых ВМ
    • Эмуляция множества IoT-устройств
    • Нагрузочное тестирование gRPC-сервиса
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием
    • HTTPS-тест с постоянной нагрузкой с помощью Phantom
    • HTTPS-тест со ступенчатой нагрузкой с помощью Pandora
    • Нагрузочное тестирование с нескольких агентов
  • Управление инфраструктурой
    • Все руководства
    • Начало работы с Terraform
    • Загрузка состояний Terraform в Object Storage
    • Начало работы с Packer
    • Сборка образа ВМ с набором инфраструктурных инструментов с помощью Packer
    • Автоматизация сборки образов с помощью Jenkins и Packer
    • Непрерывное развертывание контейнеризованных приложений с помощью GitLab
    • Создание кластера Linux-серверов «1С:Предприятия» с кластером Managed Service for PostgreSQL
    • Миграция в Yandex Cloud с помощью Hystax Acura
    • Защита от сбоев с помощью Hystax Acura
    • Настройка синхронизации часов с помощью NTP
    • Работа с группой ВМ с автомасштабированием
    • Масштабирование группы ВМ по расписанию
    • Автомасштабирование группы ВМ для обработки сообщений из очереди Message Queue
    • Обновление группы ВМ под нагрузкой
    • Передача логов с ВМ в Cloud Logging
    • Резервное копирование ВМ с помощью Hystax Acura Backup
    • Настройка отказоустойчивой архитектуры в Yandex Cloud
    • Создание SAP-программы в Yandex Cloud
    • Настройка локального кеширующего DNS-резолвера
    • Миграция DNS-зон из Яндекс 360 в Cloud DNS
    • Интеграция Cloud DNS и корпоративного сервиса DNS
    • Создание веб-хука резолвера ACME для ответов на DNS01-проверки
    • Запись логов балансировщика в PostgreSQL
    • Создание триггера для бюджетов, который вызывает функцию для остановки ВМ
  • Построение Data Platform
    • Все руководства
    • Миграция БД из стороннего кластера Apache Kafka® в Managed Service for Apache Kafka®
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse с помощью Data Transfer
    • Перенос данных между кластерами Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for YDB с помощью Data Transfer
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Debezium
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Debezium
    • Настройка Kafka Connect для работы с кластером Managed Service for Apache Kafka®
    • Управление схемами данных в Managed Service for Apache Kafka®
    • Использование Managed Schema Registry с Managed Service for Apache Kafka®
    • Использование Confluent Schema Registry с Managed Service for Apache Kafka®
    • Миграция базы данных из MySQL в ClickHouse с помощью Data Transfer
    • Асинхронная репликация данных из PostgreSQL в ClickHouse
    • Обмен данными между Managed Service for ClickHouse и Data Proc
    • Настройка Managed Service for ClickHouse для Graphite
    • Получение данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse
    • Поставка данных из Managed Service for Apache Kafka® в Managed Service for ClickHouse с помощью Data Transfer
    • Получение данных из RabbitMQ в Managed Service for ClickHouse
    • Сохранение потока данных Data Streams в Managed Service for ClickHouse
    • Использование гибридного хранилища в Managed Service for ClickHouse
    • Шардирование таблиц Managed Service for ClickHouse
    • Настройка Cloud DNS для доступа к кластерам управляемых баз данных из других облачных сетей
    • Настройка Cloud DNS для доступа к кластеру Managed Service for ClickHouse из других облачных сетей
    • Обмен данными между Managed Service for ClickHouse и Data Proc
    • Импорт данных из Managed Service for MySQL в Data Proc с помощью Sqoop
    • Импорт данных из Managed Service for PostgreSQL в Data Proc с помощью Sqoop
    • Использование скриптов инициализации для настройки GeeseFS в Data Proc
    • Миграция данных из стороннего кластера Elasticsearch в Managed Service for Elasticsearch с помощью Reindex API
    • Миграция коллекций из стороннего кластера MongoDB в Managed Service for MongoDB
    • Миграция данных в Managed Service for MongoDB
    • Шардирование коллекций MongoDB
    • Анализ производительности и оптимизация MongoDB
    • Миграция БД из стороннего кластера MySQL в кластер Managed Service for MySQL
    • Анализ производительности и оптимизация Managed Service for MySQL
    • Синхронизация данных из стороннего кластера MySQL в Managed Service for MySQL с помощью Data Transfer
    • Миграция БД из Managed Service for MySQL в сторонний кластер MySQL
    • Миграция БД из Managed Service for MySQL в Object Storage с помощью Data Transfer
    • Импорт данных из Managed Service for MySQL в Data Proc с помощью Sqoop
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for MySQL в Managed Service for Apache Kafka® с помощью Debezium
    • Миграция БД из Managed Service for MySQL в Managed Service for YDB с помощью Data Transfer
    • Создание кластера PostgreSQL для «1С:Предприятия»
    • Анализ производительности и оптимизация Managed Service for PostgreSQL
    • Миграция БД из Managed Service for PostgreSQL
    • Миграция БД из стороннего кластера PostgreSQL в Managed Service for PostgreSQL
    • Асинхронная репликация данных из PostgreSQL в ClickHouse
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Data Transfer
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for Apache Kafka® с помощью Debezium
    • Импорт данных из Managed Service for PostgreSQL в Data Proc с помощью Sqoop
    • Поставка данных из Managed Service for PostgreSQL в Managed Service for YDB с помощью Data Transfer
    • Миграция БД из Managed Service for PostgreSQL в Object Storage
    • Миграция БД из Greenplum® в ClickHouse
    • Миграция БД из Greenplum® в PostgreSQL
    • Миграция БД из стороннего кластера Redis в Managed Service for Redis
    • Использование кластера Managed Service for Redis в качестве хранилища сессий PHP
  • Продукты Microsoft в Yandex Cloud
    • Все руководства
    • Развертывание Active Directory
    • Развертывание Microsoft Exchange
    • Развертывание Remote Desktop Services
    • Развертывание группы доступности Always On с внутренним сетевым балансировщиком
    • Развертывание Remote Desktop Gateway
  • Сетевая инфраструктура
    • Все руководства
    • Архитектура и защита базового интернет-сервиса
    • Настройки DHCP для работы с корпоративным DNS-сервером
    • Маршрутизация с помощью NAT-инстанса
    • Создание туннеля IPSec VPN
    • Установка виртуального роутера Cisco CSR 1000v
    • Установка виртуального роутера Mikrotik CHR
    • Соединение с облачной сетью при помощи OpenVPN
    • Создание и настройка шлюза UserGate в режиме прокси-сервера
    • Создание и настройка шлюза UserGate в режиме межсетевого экрана
    • Настройка сети для Data Proc
  • Визуализация и анализ данных
    • Все руководства
    • Визуализация данных из файла
    • Создание и публикация диаграммы с картой Москвы из CSV-файла
    • Анализ продаж сети магазинов из БД ClickHouse
    • Анализ открытых данных ДТП на дорогах России
    • Анализ продаж и локаций пиццерий на данных из БД ClickHouse и Cloud Marketplace
    • Веб-аналитика с подключением к Яндекс Метрике
    • Веб-аналитика с расчетом воронок и когорт на данных Яндекс Метрики
    • Аналитика мобильного приложения на данных AppMetrica
    • Анализ статистики подкастов Яндекс Музыки (для авторов подкастов)
    • Визуализация данных с помощью QL-чарта
    • Анализ customer journey мобильного приложения на данных AppMetrica
    • Анализ логов Object Storage при помощи DataLens
  • Интернет вещей
    • Руководства по работе с интернетом вещей
    • Мониторинг состояния географически распределенных устройств
    • Мониторинг показаний датчиков и уведомления о событиях
  • Бессерверные технологии
    • Сокращатель ссылок
    • Ввод данных в системы хранения
    • Хранение журналов работы приложения
    • Развертывание веб-приложения с использованием Java Servlet API
    • Разработка Slack-бота
    • Разработка Telegram-бота
    • Разработка пользовательской интеграции в API Gateway
    • Разработка CRUD API для сервиса фильмов
    • Разработка навыка Алисы и сайта с авторизацией
  1. Бессерверные технологии
  2. Хранение журналов работы приложения

Хранение журналов работы приложения

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

Чтобы анализировать информацию о событиях приложений за произвольный период, журналы работы приложений необходимо надежно хранить.

Обычно приложения не отправляют журналы в системы хранения напрямую, а используют агрегаторы: fluentd, fluentbit, logstash и другие. Агрегаторы могут записывать данные непосредственно в системы хранения, но для увеличения надежности данные отправляются сначала в промежуточный буфер (шина потоков данных, брокер сообщений), а уже оттуда — в системы хранения.

Такой подход позволяет разработчикам сосредоточиться на функциональности приложения, а поставку и хранение журналов предоставить специализированным системам.

С помощью этой инструкции вы научитесь сохранять журналы работы приложений в Yandex Object Storage.

Чтобы настроить хранение журналов работы приложения:

  1. Подготовьте облако к работе.
  2. Настройте окружение.
  3. Создайте бакет для хранения журналов.
  4. Создайте поток данных.
  5. Создайте трансфер.
  6. Установите Fluentd.
  7. Подключите Fluentd к потоку данных.
  8. Проверьте отправку и получение данных.

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

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

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

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

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

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

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

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

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

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

  1. Создайте сервисный аккаунт и назначьте ему роль editor на ваш каталог.
  2. Создайте статический ключ доступа.

Идентификатор и секретный ключ понадобятся вам на следующих шагах.

Создайте бакет для хранения журналов

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

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

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

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

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

  1. На странице созданного потока данных нажмите кнопку Действия и выберите Создать трансфер данных.
  2. Создайте эндпоинт-источник:
    1. В поле Направление выберите Источник.
    2. Укажите имя эндпоинта.
    3. В списке Тип базы данных выберите Yandex Data Streams.
    4. Выберите базу данных для источника.
    5. Введите имя созданного ранее потока данных.
    6. Выберите созданный ранее сервисный аккаунт.
    7. Нажмите кнопку Создать.
  3. Создайте эндпоинт-приемник:
    1. Нажмите кнопку Создать эндпоинт.
    2. В поле Направление выберите Приемник.
    3. Укажите имя эндпоинта.
    4. В списке Тип базы данных выберите Object Storage.
    5. Введите имя созданного ранее бакета.
    6. Выберите созданный ранее сервисный аккаунт.
    7. Нажмите кнопку Создать.
  4. Создайте трансфер:
    1. На панели слева выберите Трансферы.
    2. Нажмите кнопку Создать трансфер.
    3. Введите имя трансфера.
    4. Выберите созданный ранее эндпоинт-источник.
    5. Выберите созданный ранее эндпоинт-приемник.
    6. Нажмите кнопку Создать.
    7. Нажмите на значок рядом с именем созданного трансфера и выберите Активировать.

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

Установите Fluentd

  1. Скачайте и установите Fluentd.
  2. Установите плагин Fluentd для поддержки протокола AWS Kinesis Data Streams. По этому протоколу будет осуществляться поставка данных.
sudo td-agent-gem install fluent-plugin-kinesis

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

  1. На странице созданного потока данных нажмите кнопку Подключиться и перейдите на вкладку Fluentd.
  2. Скопируйте пример файла конфигурации и вставьте его в файл /etc/td-agent/td-agent.conf. Вместо <key_id> и <secret> введите полученные ранее идентификатор и секретный ключ.
Пример файла конфигурации
<system>
  log_level debug
</system>
<source>
  @type http
  @id input_http
  port 8888
</source>
<match kinesis>
  @type copy
  <store>
    @type stdout
  </store>
  <store>
    @type kinesis_streams

    aws_key_id <key_id>
    aws_sec_key <secret>

    # kinesis stream name
    stream_name /ru-central1/b1gia92mbaomkfvslsed/etnhstu01ninfu6631lk/my-stream

    # region
    region ru-central-1

    endpoint https://yds.serverless.yandexcloud.net

    <buffer>
      flush_interval 5s
    </buffer>
  </store>
</match>

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

Чтобы отправить данные в поток через Fluentd, выполните команду:

curl -X POST -d 'json={"user_id":"user1", "score": 100}' http://localhost:8888/kinesis

Если настройка выполнена успешно, в логе работы Fluentd /var/log/td-agent/td-agent.log появятся сообщения о получении данных и записи их в Yandex Data Streams по протоколу AWS Kinesis Data Streams:

...
2022-04-20 19:36:37.770311035 +0000 kinesis: {"user_id":"user1","score":100}
2022-04-20 19:36:42 +0000 [debug]: #0 /ru-central1/b1gia92mbaomkfvslsed/etnhstu01ninfu6631lk/my-stream: Write chunk 5dd1b1ca1bd788e49185aa681e8132b9 /   1 records /    0 KB
2022-04-20 19:36:42 +0000 [debug]: #0 /ru-central1/b1gia92mbaomkfvslsed/etnhstu01ninfu6631lk/my-stream: Finish writing chunk
...

В созданном бакете появится файл, который содержит отправленное сообщение.

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

Чтобы перестать платить за используемые ресурсы:

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

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

Language / Region
Проект Яндекса
© 2023 ООО «Яндекс.Облако»
В этой статье:
  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Настройте окружение
  • Создайте бакет для хранения журналов
  • Создайте поток данных
  • Создайте трансфер
  • Установите Fluentd
  • Подключите Fluentd к потоку данных
  • Проверьте отправку и получение данных
  • Как удалить созданные ресурсы