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


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

Примечание.

Планы Basic, Standardи Enterprise вступили в период вывода из обращения 17 марта 2025 года. Дополнительные сведения см. в объявлении о выходе на пенсию в Azure Spring Apps.

Эта статья относится к: ❎ 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 Job Log Reader.

  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>

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

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

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. Выберите вкладку инъекция VNet.

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

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

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

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

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

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

Примечание.

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

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

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

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