Поделиться через


Потоковая передача журналов заданий Azure Spring Apps в режиме реального времени (предварительная версия)

Примечание.

Планы "Базовый", "Стандартный" и "Корпоративный" будут устарели начиная с середины марта 2025 г. с 3-летнего периода выхода на пенсию. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Стандартный план потребления и выделенного плана будет устарел с 30 сентября 2024 г. с полным завершением работы после шести месяцев. Рекомендуется перейти в приложения контейнеров Azure. Дополнительные сведения см. в статье "Миграция потребления Azure Spring Apps Standard" и выделенного плана в приложения контейнеров Azure.

Эта статья относится к:❌ Basic/Standard ✔️ Enterprise

В этой статье описывается, как использовать Azure CLI для получения журналов заданий в режиме реального времени для устранения неполадок. Вы также можете использовать параметры диагностика для анализа данных диагностика в Azure Spring Apps. Дополнительные сведения см. в разделе Анализ журналов и метрик на основе параметров диагностики. Дополнительные сведения о журналах потоковой передачи см. в журналах консоли приложений Stream Spring Apps в реальном времени и журналах управляемых компонентов Stream Azure Spring Apps в режиме реального времени.

Необходимые компоненты

  • Azure CLI с расширением Azure Spring Apps версии 1.24.0 или более поздней. Расширение можно установить с помощью следующей команды: az extension add --name spring

Назначение роли Azure

Для потоковой передачи журналов заданий необходимо назначить вам соответствующие роли Azure. В следующей таблице перечислены необходимые роли и операции, для которых эта роль предоставляется разрешение:

Требуемая роль Операции
Роль читателя журнала заданий Azure Spring Apps Microsoft.AppPlatform/Spring/jobs/executions/logstream/action
Microsoft.AppPlatform/Spring/jobs/executions/listInstances/action

Чтобы назначить роль Azure с помощью портал Azure, выполните следующие действия.

  1. Откройте портал Azure.

  2. Откройте экземпляр службы Azure Spring Apps.

  3. В области навигации выберите контроль доступа (IAM).

  4. На странице контроль доступа (IAM) выберите "Добавить" и выберите "Добавить назначение роли".

    Снимок экрана: страница портал Azure, на котором показана страница контроль доступа (IAM) с выделенным параметром

  5. На странице добавления назначения ролей в списке "Имя" найдите и выберите целевую роль, а затем нажмите кнопку "Далее".

    Снимок экрана: портал Azure, на котором показана страница добавления назначения ролей с выделенным именем роли чтения журнала заданий Azure Spring Apps.

  6. Выберите "Участники" , а затем найдите и выберите имя пользователя.

  7. Выберите Проверить + назначить.

Просмотр журналов хвоста

В этом разделе приведены примеры использования Azure CLI для создания журналов хвоста.

Просмотр журналов хвоста для конкретного экземпляра

Каждый раз при активации задания создается новое выполнение задания. Кроме того, в зависимости от параметра параллелизма для задания несколько реплик или экземпляров выполняются параллельно.

Используйте следующую команду, чтобы перечислить все экземпляры в выполнении задания:

az spring job execution instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --job <job-name> \
    --execution <job-execution-name>

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

Чтобы просмотреть журналы хвоста для конкретного экземпляра-i/--instance, используйте az spring job logs команду с аргументом, как показано в следующем примере:

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --instance <instance-name>

Просмотр журналов хвоста для всех экземпляров в одной команде

Чтобы просмотреть журналы хвоста для всех экземпляров, используйте --all-instances аргумент, как показано в следующем примере. Имя экземпляра — это префикс каждой строки журнала. При наличии нескольких экземпляров журналы печатаются в пакете для каждого экземпляра. Таким образом журналы одного экземпляра не чередуются с журналами другого экземпляра.

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --all-instances

Непрерывное потоковая передача новых журналов

По умолчанию печатает только существующие журналы, az spring job logs потоковую передачу в консоль, а затем завершает работу. Если вы хотите передавать новые журналы, добавьте -f/--follow аргумент.

При использовании -f/--follow параметра для получения мгновенных журналов служба потоковой передачи журналов Azure Spring Apps отправляет журналы пульса клиенту каждую минуту, если задание не записывает журналы постоянно. Сообщения журнала Heartbeat используют следующий формат: 2023-12-18 09:12:17.745: No log from server

Потоковая передача журналов для определенного экземпляра

Используйте следующие команды, чтобы получить имена экземпляров и журналы потоков для конкретного экземпляра:

az spring job execution instance list \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --job <job-name> \
    --execution <job-execution-name>

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --instance <instance-name> \
    --follow

Потоковая передача журналов для всех экземпляров

Используйте следующую команду для потоковой передачи журналов для всех экземпляров:

az spring job logs \
    --resource-group <resource-group-name> \
    --service <Azure-Spring-Apps-instance-name> \
    --name <job-name> \
    --execution <job-execution-name> \
    --all-instances \
    --follow

При потоковой передаче журналов для нескольких экземпляров в выполнении задания журналы одного экземпляра пересекаются с журналами других пользователей.

Потоковая передача журналов в экземпляре внедрения виртуальной сети

Для экземпляра Azure Spring Apps, развернутого в пользовательской виртуальной сети, по умолчанию можно получить доступ к потоковой передаче журналов из частной сети. Дополнительные сведения см. в статье Развертывание Azure Spring Apps в виртуальной сети.

Azure Spring Apps также позволяет получать доступ к журналам заданий в режиме реального времени из общедоступной сети.

Примечание.

Включение конечной точки потоковой передачи журналов в общедоступной сети добавляет общедоступный входящий IP-адрес в виртуальную сеть. Обязательно используйте осторожность, если это забота о вас.

Чтобы включить конечную точку потоковой передачи журналов в общедоступной сети, выполните следующие действия.

  1. Выберите экземпляр службы Azure Spring Apps, развернутый в виртуальной сети, а затем выберите "Сеть " в области навигации.

  2. Перейдите на вкладку внедрения виртуальной сети.

  3. Переключите состояние ресурсов dataplane в общедоступной сети, чтобы включить конечную точку потоковой передачи журналов в общедоступной сети. Этот процесс займет несколько минут.

    Снимок экрана: портал Azure, на котором показана страница

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

Защита трафика в общедоступную конечную точку потоковой передачи журналов

Потоковая передача журналов для заданий использует Azure RBAC для проверки подлинности подключений к заданиям. В результате доступ к журналам может получить только пользователи, имеющие соответствующие роли.

Чтобы обеспечить безопасность заданий при предоставлении общедоступной конечной точки для них, защитите конечную точку, отфильтровав сетевой трафик к службе с помощью группы безопасности сети. Дополнительные сведения см. в статье Учебник. Фильтрация сетевого трафика с помощью групп безопасности сети, используя портал Azure. В этой группе содержатся правила безопасности, которые разрешают или запрещают исходящий и входящий сетевой трафик нескольких типов ресурсов Azure. Для каждого правила можно указать источник и назначение, порт и протокол.

Примечание.

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

В следующей таблице показан пример базового правила, которое мы рекомендуем. Для получения целевого IP-адреса службы можно использовать такие команды, как nslookup и конечная точка <service-name>.private.azuremicroservices.io .

Приоритет Имя Порт Протокол Источник Назначение Действие
100 Имя правила 80 TCP Интернет IP-адрес службы Разрешить
110 Имя правила 443 TCP Интернет IP-адрес службы Разрешить

Следующие шаги