Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Application Load Balancer
  • Начало работы
    • Все практические руководства
    • Организация виртуального хостинга
    • Создание L7-балансировщика с профилем безопасности Smart Web Security через Ingress-контроллер Application Load Balancer
    • Интеграция L7-балансировщика с CDN и Object Storage
    • Сине-зеленое и канареечное развертывание версий сервиса
    • Запись логов балансировщика в PostgreSQL
    • Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием в Yandex Managed Service for Kubernetes
    • Настройка Gateway API в Yandex Managed Service for Kubernetes
    • Настройка L7-балансировщика Application Load Balancer с помощью Ingress-контроллера
    • Настройка логирования для L7-балансировщика Application Load Balancer с помощью Ingress-контроллера
    • Проверка состояния приложений в кластере Managed Service for Kubernetes с помощью L7-балансировщика Application Load Balancer
    • Реализация защищенной высокодоступной сетевой инфраструктуры с выделением DMZ на основе Next-Generation Firewall
    • Создание L7-балансировщика Application Load Balancer с профилем безопасности Smart Web Security
  • Управление доступом
  • Правила тарификации
  • Справочник Terraform
  • Метрики Monitoring
  • Аудитные логи Audit Trails
  • Логи L7-балансировщика
  • История изменений
  • Обучающие курсы

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

  • Подготовьте облако к работе
  • Необходимые платные ресурсы
  • Создайте облачную сеть
  • Создайте сервисный аккаунт
  • Создайте группы безопасности
  • Подготовьте базу данных в Yandex Managed Service for PostgreSQL
  • Создайте кластер
  • Подключитесь к кластеру и создайте таблицу
  • Создайте группу ВМ
  • Создайте лог-группу Yandex Cloud Logging
  • Создайте необходимые ресурсы в Yandex Application Load Balancer
  • Создайте группу бэкендов
  • Создайте и настройте HTTP-роутер
  • Создайте L7-балансировщик
  • Создайте необходимые ресурсы в Yandex Cloud Functions
  • Создайте функцию для обработки данных
  • Создайте триггер
  • Проверьте работу балансировщика и запись логов
  • Как удалить созданные ресурсы
  1. Практические руководства
  2. Запись логов балансировщика в PostgreSQL

Запись логов балансировщика в PostgreSQL

Статья создана
Yandex Cloud
Улучшена
mmerihsesh
Обновлена 21 апреля 2025 г.
  • Подготовьте облако к работе
    • Необходимые платные ресурсы
  • Создайте облачную сеть
  • Создайте сервисный аккаунт
  • Создайте группы безопасности
  • Подготовьте базу данных в Yandex Managed Service for PostgreSQL
    • Создайте кластер
    • Подключитесь к кластеру и создайте таблицу
  • Создайте группу ВМ
  • Создайте лог-группу Yandex Cloud Logging
  • Создайте необходимые ресурсы в Yandex Application Load Balancer
    • Создайте группу бэкендов
    • Создайте и настройте HTTP-роутер
    • Создайте L7-балансировщик
  • Создайте необходимые ресурсы в Yandex Cloud Functions
    • Создайте функцию для обработки данных
    • Создайте триггер
  • Проверьте работу балансировщика и запись логов
  • Как удалить созданные ресурсы

Вы можете записывать логи балансировщика — сообщения с информацией о каждом входящем запросе к балансировщику Yandex Application Load Balancer — в базу данных PostgreSQL.

Для логирования работы балансировщика будет создана лог-группа в Cloud Logging. Поставка логов из этой лог-группы в БД будет настроена с помощью ресурсов сервиса Yandex Cloud Functions — триггера и вызываемой им функции.

БД будет создана с помощью сервиса Yandex Managed Service for PostgreSQL.

Чтобы настроить запись логов:

  1. Подготовьте облако к работе.
  2. Создайте облачную сеть.
  3. Создайте сервисный аккаунт.
  4. Создайте группы безопасности.
  5. Подготовьте базу данных в Yandex Managed Service for PostgreSQL.
  6. Создайте группу ВМ.
  7. Создайте лог-группу Yandex Cloud Logging.
  8. Создайте необходимые ресурсы в Yandex Application Load Balancer.
  9. Создайте необходимые ресурсы в Yandex Cloud Functions.
  10. Проверьте запись логов.

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

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

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

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

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

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

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

В стоимость поддержки балансировщика с записью логов входят:

  • плата за постоянно запущенные виртуальные машины (см. тарифы Yandex Compute Cloud);
  • плата за вычислительные ресурсы, объем хранилища и резервных копий для кластера PostgreSQL (см. тарифы Yandex Managed Service for PostgreSQL);
  • плата за вызовы функции для обработки логов и вычислительные ресурсы, выделенные на выполнение функции (см. тарифы Yandex Cloud Functions);
  • плата за запись и хранение логов (см. тарифы Yandex Cloud Logging);
  • плата за использование ресурсов Application Load Balancer (см. тарифы Yandex Application Load Balancer).

Создайте облачную сетьСоздайте облачную сеть

Все созданные ресурсы будут относиться к одной облачной сети.

Чтобы создать сеть:

Консоль управления
  1. В консоли управления выберите сервис Virtual Private Cloud.
  2. Нажмите кнопку Создать сеть.
  3. Укажите Имя сети: alb-logging-network.
  4. В поле Дополнительно выберите опцию Создать подсети.
  5. Нажмите кнопку Создать сеть.

Создайте сервисный аккаунтСоздайте сервисный аккаунт

Консоль управления
  1. В консоли управления выберите нужный каталог.
  2. В списке сервисов выберите Identity and Access Management.
  3. Нажмите кнопку Создать сервисный аккаунт.
  4. В поле Имя введите alb-logging-service-account.
  5. Добавьте роли: functions.functionInvoker и editor.
  6. Нажмите кнопку Создать.

Создайте группы безопасностиСоздайте группы безопасности

Группы безопасности содержат правила, которые:

  • разрешают балансировщику получать входящий трафик и отправлять его на ВМ, а ВМ — получать этот трафик;
  • разрешают балансировщику отправлять логи в лог-группу, а кластеру PostgreSQL — получать логи из нее.

Вы создадите три группы безопасности: для балансировщика, для всех ВМ и для кластера.

Чтобы создать группы безопасности:

Консоль управления
  1. В консоли управления выберите сервис Virtual Private Cloud.

  2. Откройте вкладку Группы безопасности.

  3. Создайте группу безопасности для балансировщика:

    1. Нажмите кнопку Создать группу безопасности.

    2. Укажите Имя группы: alb-logging-sg-balancer.

    3. Выберите Сеть alb-logging-network.

    4. В блоке Правила создайте следующие правила по инструкции под таблицей:

      Направление
      трафика
      Описание Диапазон портов Протокол Источник /
      назначение
      CIDR блоки
      Исходящий any Весь Любой CIDR 0.0.0.0/0
      Входящий ext-http 80 TCP CIDR 0.0.0.0/0
      Входящий ext-https 443 TCP CIDR 0.0.0.0/0
      Входящий healthchecks 30080 TCP Проверки состояния балансировщика —
      1. Выберите вкладку Исходящий трафик или Входящий трафик.

      2. Нажмите кнопку Добавить правило.

      3. В открывшемся окне в поле Диапазон портов укажите один порт или диапазон портов, куда или откуда будет поступать трафик.

      4. В поле Протокол укажите нужный протокол или оставьте Любой, чтобы разрешить передачу трафика по всем протоколам.

      5. В поле Назначение или Источник выберите назначение правила:

        • CIDR — правило будет применено к диапазону IP-адресов. В поле CIDR блоки укажите CIDR и маски подсетей, в которые или из которых будет поступать трафик. Чтобы добавить несколько CIDR, нажимайте кнопку Добавить CIDR.
        • Группа безопасности — правило будет применено к ВМ из текущей группы или из выбранной группы безопасности.
        • Проверки состояния балансировщика — правило, которое позволяет балансировщику проверять состояние ВМ.
      6. Нажмите кнопку Сохранить. Таким образом создайте все правила из таблицы.

    5. Нажмите кнопку Сохранить.

  4. Аналогично создайте группу безопасности для ВМ с именем alb-logging-sg-vms, той же сетью alb-logging-network и следующими правилами:

    Направление
    трафика
    Описание Диапазон портов Протокол Источник /
    назначение
    CIDR блоки
    Входящий balancer 80 TCP Группа безопасности alb-logging-sg-balancer
    Входящий ssh 22 TCP CIDR 0.0.0.0/0
  5. Аналогично создайте группу безопасности для кластера PostgreSQL с именем alb-logging-sg-cluster, той же сетью alb-logging-network и следующим правилом:

    Направление
    трафика
    Описание Диапазон портов Протокол Источник /
    назначение
    CIDR блоки
    Входящий db 6432 TCP CIDR 0.0.0.0/0

Подготовьте базу данных в Yandex Managed Service for PostgreSQLПодготовьте базу данных в Yandex Managed Service for PostgreSQL

Создайте кластерСоздайте кластер

Логи, полученные от балансировщика, будут записываться в базу данных, которая входит в состав кластера Managed Service for PostgreSQL.

Чтобы создать кластер и базу данных:

Консоль управления
  1. В консоли управления выберите сервис Managed Service for PostgreSQL.

  2. Нажмите кнопку Создать кластер.

  3. В поле Имя кластера введите alb-logging-cluster.

  4. В поле Окружение выберите PRODUCTION.

  5. В поле Версия выберите 12.

  6. В блоке Класс хоста:

    • Укажите платформу Intel Cascade Lake.
    • Выберите тип burstable.
    • Укажите класс b2.medium.

    Важно

    Класс b2.medium был выбран только в рамках тестирования. В реальных проектах использовать хосты с гарантированной долей vCPU ниже 100% не рекомендуется.

  7. В блоке Размер хранилища:

    • Выберите network-ssd.
    • Укажите размер равным 10 ГБ.

    Примечание

    Тип и размер диска следует выбирать в соответствии с решаемыми задачами. Значения, указанные выше, используются для тестирования.

  8. В блоке База данных укажите атрибуты БД:

    • Имя базы данных. Имя БД должно быть уникальным в рамках каталога и содержать только латинские буквы, цифры и подчеркивания.
    • Имя пользователя — владельца БД. Имя пользователя должно содержать только латинские буквы, цифры и подчеркивания.
    • Пароль пользователя. Длина — от 8 до 128 символов.

    Для базы данных, которая создается вместе с кластером, устанавливаются настройки набора символов (кодировки) LC_CTYPE=C и LC_COLLATE=C. После создания эти настройки изменить нельзя, но вы можете создать новую базу с нужными настройками.

  9. В блоке Сетевые настройки:

    • Выберите сеть alb-logging-network.
    • Выберите группу безопасности alb-logging-sg-cluster.
  10. В блоке Хосты добавьте хост, который будет доступен извне Yandex Cloud. Для этого включите опцию Публичный доступ.

  11. В блоке Дополнительные настройки включите опции Доступ из консоли управления и Доступ из Serverless.

  12. Остальные поля оставьте заполненными по умолчанию.

  13. Нажмите кнопку Создать кластер.

Подробнее о создании кластера — в разделе Как создать кластер PostgreSQL.

В дальнейшем настройки кластера можно будет изменить.

Подключитесь к кластеру и создайте таблицуПодключитесь к кластеру и создайте таблицу

В качестве примера в базу данных PostgreSQL будет записываться информация из следующих полей сообщений, которые балансировщик записывает в логи при входящих запросах:

  • type — протокол запроса: HTTP или gRPC.
  • time — дата и время запроса.
  • http_status — HTTP-код ответа балансировщика на запрос.
  • backend_ip — IP-адрес ВМ, обработавшей запрос.
  • request_processing_times.request_time — длительность соединения между клиентом и балансировщиком.

Таблицу для записи нужно создать заранее:

Консоль управления

После создания кластера вы автоматически будете перенаправлены на страницу Кластеры.

  1. Дождитесь, когда статус кластера alb-logging-cluster изменится на Alive, и выберите этот кластер.

  2. Перейдите на вкладку SQL.

  3. Выберите пользователя, созданного вместе с кластером, и введите его пароль.

  4. Выберите базу данных, созданную вместе с кластером, и нажмите кнопку Подключиться.

  5. В окне редактирования введите следующий запрос:

    CREATE TABLE load_balancer_requests (
        type            varchar(24) NOT NULL,
        "time"          timestamptz NOT NULL,
        http_status     varchar(4) NOT NULL,
        backend_ip      varchar(40) NULL,
        request_time    numeric NULL
    );
    
  6. Нажмите кнопку Выполнить.

  7. Дождитесь появления надписи о завершении выполнения запроса.

Создайте группу ВМСоздайте группу ВМ

В качестве веб-серверов для сайта будет выступать группа виртуальных машин Compute Cloud. Серверы будут реализованы на LEMP-стеке (Linux, nginx, MySQL, PHP; подробнее см. Сайт на LAMP- или LEMP-стеке).

Чтобы создать группу ВМ:

Консоль управления
  1. В консоли управления выберите сервис Compute Cloud.

  2. Откройте вкладку Группы виртуальных машин. Нажмите кнопку Создать группу виртуальных машин.

  3. Укажите имя группы ВМ: alb-logging-ig.

  4. В поле Сервисный аккаунт выберите аккаунт, созданный ранее.

  5. В блоке Распределение выберите несколько зон доступности, чтобы обеспечить отказоустойчивость хостинга.

  6. В блоке Шаблон виртуальной машины нажмите кнопку Задать.

  7. В блоке Образ загрузочного диска откройте вкладку Marketplace и нажмите кнопку Показать все продукты Marketplace. Выберите продукт LEMP и нажмите кнопку Использовать.

  8. В блоке Вычислительные ресурсы:

    • Выберите платформу виртуальной машины.
    • Укажите необходимое количество vCPU и объем RAM.

    Для функционального тестирования сайта хватит минимальной конфигурации:

    • Платформа — Intel Cascade Lake.
    • Гарантированная доля vCPU — 5%.
    • vCPU — 2.
    • RAM — 1 ГБ.
  9. В блоке Сетевые настройки выберите Сеть alb-logging-network, созданную ранее, и ее подсети.

  10. В поле Публичный адрес выберите Автоматически.

  11. Выберите группу безопасности alb-logging-sg-vms, созданную ранее.

  12. Укажите данные для доступа на виртуальную машину:

    • В поле Логин введите имя пользователя.

    • В поле SSH-ключ вставьте содержимое файла открытого ключа.

      Пару ключей для подключения по SSH необходимо создать самостоятельно, см. раздел о подключении к виртуальным машинам по SSH.

    Внимание

    IP-адрес и имя хоста (FQDN) для подключения к машине назначатся ей при создании. Если вы выбрали вариант Без адреса в поле Публичный адрес, вы не сможете обращаться к ВМ из интернета.

  13. Нажмите кнопку Сохранить.

  14. В блоке Масштабирование укажите Размер группы ВМ — 2.

  15. В блоке Интеграция с Application Load Balancer выберите опцию Создать целевую группу и укажите имя группы — alb-logging-tg. Подробнее о целевых группах.

  16. Нажмите кнопку Создать.

Создание группы ВМ может занять несколько минут. После создания группа перейдет в статус RUNNING, а все ВМ в ней — в статус RUNNING_ACTUAL.

ig-running

Создайте лог-группу Yandex Cloud LoggingСоздайте лог-группу Yandex Cloud Logging

Консоль управления
  1. В консоли управления перейдите в каталог, в котором хотите создать лог-группу.
  2. Выберите сервис Cloud Logging.
  3. Нажмите кнопку Создать группу.
  4. Введите имя и описание лог-группы, например alb-logging-group.
  5. Укажите срок хранения записей в лог-группе.
  6. Нажмите кнопку Создать группу.

Создайте необходимые ресурсы в Yandex Application Load BalancerСоздайте необходимые ресурсы в Yandex Application Load Balancer

Создайте группу бэкендовСоздайте группу бэкендов

Целевую группу, созданную вместе с группой ВМ, нужно привязать к группе бэкендов с настройками распределения трафика.

Для бэкендов в группе будет создана проверка состояния: балансировщик будет периодически отправлять проверочные запросы к ВМ и ожидать ответа в течение определенного периода.

Чтобы создать группу бэкендов:

Консоль управления
  1. В консоли управления выберите сервис Application Load Balancer.
  2. На панели слева выберите Группы бэкендов. Нажмите кнопку Создать группу бэкендов.
  3. Укажите Имя группы бэкендов: alb-logging-bg.
  4. В блоке Бэкенды нажмите кнопку Добавить.
  5. Укажите Имя бэкенда: alb-logging-backend.
  6. В поле Целевые группы выберите группу alb-logging-tg.
  7. Укажите Порт, на котором ВМ бэкенда будут принимать входящий трафик от балансировщика: 80.
  8. Нажмите кнопку Добавить проверку состояния.
  9. Укажите Порт, на котором ВМ бэкенда будут принимать проверочные соединения: 80.
  10. Укажите Путь, к которому будет обращаться балансировщик при проверке состояния: /.
  11. Нажмите кнопку Создать.

Создайте и настройте HTTP-роутерСоздайте и настройте HTTP-роутер

Группу бэкендов нужно привязать к HTTP-роутеру с правилами маршрутизации HTTP-запросов.

Чтобы создать HTTP-роутер:

Консоль управления
  1. В консоли управления выберите сервис Application Load Balancer.
  2. На панели слева выберите HTTP-роутеры. Нажмите кнопку Создать HTTP-роутер.
  3. Укажите Имя HTTP-роутера: alb-logging-router.
  4. Нажмите кнопку Добавить виртуальный хост.
  5. Укажите Имя виртуального хоста: alb-logging-host.
  6. Нажмите кнопку Добавить маршрут.
  7. Укажите Имя маршрута: alb-logging-route.
  8. В поле Группа бэкендов выберите группу alb-logging-bg.
  9. Нажмите кнопку Создать.

Создайте L7-балансировщикСоздайте L7-балансировщик

Чтобы создать балансировщик:

Консоль управления
  1. В консоли управления выберите сервис Application Load Balancer.
  2. Нажмите кнопку Создать L7-балансировщик и выберите опцию Вручную.
  3. Укажите Имя балансировщика: alb-logging-balancer.
  4. В блоке Сетевые настройки выберите сеть alb-logging-network и группу безопасности alb-logging-sg-balancer, созданные ранее.
  5. В блоке Настройки логов укажите лог-группу alb-logging-group.
  6. В блоке Обработчики нажмите кнопку Добавить обработчик.
  7. Укажите Имя обработчика: alb-logging-listener.
  8. В поле Протокол выберите пункт HTTPS.
  9. В поле HTTP-роутер выберите роутер alb-logging-router, созданный ранее.
  10. Нажмите кнопку Создать.

Создайте необходимые ресурсы в Yandex Cloud FunctionsСоздайте необходимые ресурсы в Yandex Cloud Functions

Создайте функцию для обработки данныхСоздайте функцию для обработки данных

Функция будет получать сообщения из лог-группы и записывать их в таблицу, созданную ранее.

Чтобы создать функцию:

Консоль управления
  1. В консоли управления выберите сервис Cloud Functions.

  2. Нажмите кнопку Создать функцию.

  3. Введите имя функции: alb-logging-function.

  4. Нажмите кнопку Создать. После создания функции вы автоматически будете перенаправлены на страницу Редактор.

  5. Выберите среду выполнения Python версии 3.8 и нажмите кнопку Продолжить.

  6. Очистите область редактирования файла и вставьте в нее следующий код:

    Код функции
    import os
    import logging
    import psycopg2
    import json
    
    logger = logging.getLogger()
    logger.setLevel(logging.INFO)
    verboseLogging = eval(os.environ['VERBOSE_LOG'])
    if verboseLogging:
        logger.info('Loading handler function')
    
    def handler(event, context):
        statusCode = 500
        
        if verboseLogging:
            logger.info(event)
            logger.info(context)
        
        connection_string = (
            "host='{db_hostname}' port='{db_port}' dbname='{db_name}' "
            "user='{db_user}' password='{db_password}' sslmode='require'"
        ).format(
            db_hostname=os.environ['DB_HOSTNAME'],
            db_port=os.environ['DB_PORT'],
            db_name=os.environ['DB_NAME'],
            db_user=os.environ['DB_USER'],
            db_password=os.environ['DB_PASSWORD']
        )
            
        if verboseLogging:
            logger.info(f'Connecting: {connection_string}')
    
        conn = psycopg2.connect(connection_string)
        cursor = conn.cursor()
    
        messages = event['messages'][0]['details']['messages']
    
        for message in messages:
            alb_message = message['json_payload']
            alb_message['table_name'] = 'load_balancer_requests'
            insert_statement = (
                'INSERT INTO {table_name} ' 
                '(type, "time", http_status, backend_ip, request_time) ' 
                'VALUES(\'{type}\', timestamptz \'{time}\', \'{http_status}\', ' 
                '\'{backend_ip}\', {request_processing_times[request_time]});'
            ).format(**alb_message)
    
            if verboseLogging:
                logger.info(f'Exec: {insert_statement}')
            try:
                cursor.execute(insert_statement)
                statusCode = 200
            except Exception as error:
                logger.error(error)
            
            conn.commit()
            
        cursor.close()
        conn.close()
    
        return {
            'statusCode': statusCode,
            'headers': {
                'Content-Type': 'text/plain'
            }
        }
    
  7. Задайте следующие параметры версии:

    • Таймаут — 10.
    • Память — 128 МБ.
  8. Выберите созданный ранее сервисный аккаунт alb-logging-service-account. От имени этого аккаунта функция будет записывать данные в БД.

  9. Добавьте переменные окружения:

    • VERBOSE_LOG — параметр, отвечающий за вывод подробной информации о выполнении функции. Введите значение True.
    • DB_HOSTNAME — имя хоста БД PostgreSQL для подключения.
    • DB_PORT — порт для подключения.
    • DB_NAME — имя базы данных для подключения.
    • DB_USER — имя пользователя для подключения.
    • DB_PASSWORD — пароль, который был введен при создании кластера.

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

    1. В консоли управления выберите сервис Managed Service for PostgreSQL.
    2. Выберите кластер alb-logging-cluster.
    3. Нажмите значок в строке с нужной БД.
    4. Выберите пункт Подключиться.
    5. На вкладке Shell найдите пример строки подключения.
    6. Перенесите значения переменных host, port, dbname и user в соответствующее поле Значение переменных окружения функции.
  10. Нажмите кнопку Сохранить изменения.

Создайте триггерСоздайте триггер

Триггер будет принимать копии сообщений от балансировщика и передавать их в функцию для обработки.

Чтобы создать триггер:

Консоль управления
CLI
API
  1. В консоли управления перейдите в каталог, в котором хотите создать триггер.

  2. Выберите сервис Cloud Functions.

  3. На панели слева выберите Триггеры.

  4. Нажмите кнопку Создать триггер.

  5. В блоке Базовые параметры:

    • Введите имя триггера, например alb-logging-trigger.
    • В поле Тип выберите Cloud Logging.
    • В поле Запускаемый ресурс выберите Функция.
  6. В блоке Настройки Cloud Logging:

    • В поле Лог-группа выберите alb-logging-group.
    • В поле Типы ресурсов укажите alb.loadBalancer.
  7. В блоке Настройки группирования сообщений:

    • В поле Время ожидания, с укажите 15.
    • В поле Размер группы укажите 10.
  8. В блоке Настройки функции выберите функцию, созданную ранее, и укажите:

    • тег версии функции — $latest;
    • сервисный аккаунт, созданный ранее.
  9. Нажмите кнопку Создать триггер.

Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

По умолчанию используется каталог, указанный при создании профиля CLI. Чтобы изменить каталог по умолчанию, используйте команду yc config set folder-id <идентификатор_каталога>. Также для любой команды вы можете указать другой каталог с помощью параметров --folder-name или --folder-id.

Чтобы создать триггер, который вызывает функцию, выполните команду:

yc serverless trigger create logging alb-logging-trigger \
  --log-group-name <имя_лог-группы> \
  --resource-types alb.loadBalancer \
  --batch-size 10 \
  --batch-cutoff 15s \
  --invoke-function-name alb-logging-function \
  --invoke-function-service-account-name alb-logging-service-account \

Где:

  • --log-group-name — имя лог-группы, созданной ранее.
  • --resource-types — типы ресурсов лог-группы.
  • --invoke-function-name — имя функции, созданной ранее.
  • --invoke-function-service-account-name — имя сервисного аккаунта, созданного вместе с функцией.
  • --batch-size — максимальное количество сообщений, одновременно отправляемых в функцию.
  • --batch-cutoff — максимальное время между последовательными отправками сообщений в функцию.

Подробнее о команде см. в справочнике CLI.

Используйте вызов gRPC API TriggerService/Create или метод REST API create.

Проверьте работу балансировщика и запись логовПроверьте работу балансировщика и запись логов

  1. Получите публичный IP-адрес балансировщика:

    Консоль управления
    1. В консоли управления выберите сервис Application Load Balancer.
    2. Найдите в списке балансировщик alb-logging-balancer и скопируйте его IP-адрес.
  2. Откройте в браузере сайт http://<IP-адрес_балансировщика>. Перезагрузите страницу несколько раз.

  3. Проверьте, что в логах появилась информация о ваших запросах к балансировщику:

    Консоль управления
    1. В консоли управления выберите сервис Managed Service for PostgreSQL.
    2. Выберите кластер alb-logging-cluster.
    3. Перейдите на вкладку SQL.
    4. Выберите пользователя, созданного вместе с кластером, и введите его пароль.
    5. Выберите базу данных, созданную вместе с кластером, и нажмите Подключиться.
    6. Нажмите на таблицу load_balancer_requests. Вы должны увидеть первые строки этой таблицы, соответствующие вашим запросам к балансировщику.

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

Чтобы остановить работу балансировщика и перестать платить за созданные ресурсы:

  1. Удалите L7-балансировщик alb-logging-balancer.
  2. Удалите HTTP-роутер alb-logging-router.
  3. Удалите группу бэкендов alb-logging-bg.
  4. Удалите группу виртуальных машин alb-logging-ig.
  5. Удалите триггер alb-logging-trigger.
  6. Удалите функцию alb-logging-function.
  7. Удалите кластер alb-logging-cluster.
  8. Удалите лог-группу alb-logging-group.

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

Предыдущая
Terraform
Следующая
Развертывание и нагрузочное тестирование gRPC-сервиса с масштабированием в Yandex Managed Service for Kubernetes
Проект Яндекса
© 2025 ООО «Яндекс.Облако»