Transmitir logs de trabalho do Azure Spring Apps em tempo real (Visualização)

Nota

Os planos Basic, Standard e Enterprise serão preteridos a partir de meados de março de 2025, com um período de aposentadoria de 3 anos. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte o anúncio de aposentadoria do Azure Spring Apps.

O plano de consumo padrão e dedicado será preterido a partir de 30 de setembro de 2024, com um desligamento completo após seis meses. Recomendamos a transição para os Aplicativos de Contêiner do Azure. Para obter mais informações, consulte Migrar consumo padrão e plano dedicado do Azure Spring Apps para Aplicativos de Contêiner do Azure.

Este artigo aplica-se a:❌ Basic/Standard ✔️ Enterprise

Este artigo descreve como usar a CLI do Azure para obter logs em tempo real de trabalhos para solução de problemas. Você também pode usar configurações de diagnóstico para analisar dados de diagnóstico no Azure Spring Apps. Para obter mais informações, consulte Analisar logs e métricas com configurações de diagnóstico. Para obter mais informações sobre logs de streaming, consulte Transmitir logs do console do aplicativo Azure Spring Apps em tempo real e Transmitir logs de componentes gerenciados do Azure Spring Apps em tempo real.

Pré-requisitos

  • CLI do Azure com a extensão Azure Spring Apps, versão 1.24.0 ou superior. Você pode instalar a extensão usando o seguinte comando: az extension add --name spring.

Atribuir uma função do Azure

Para transmitir logs de trabalhos, você deve ter as funções relevantes do Azure atribuídas a você. A tabela a seguir lista a função necessária e as operações para as quais essa função recebe permissão:

Função necessária Operações
Função de Leitor de Log de Trabalho do Azure Spring Apps Microsoft.AppPlatform/Spring/jobs/executions/logstream/action
Microsoft.AppPlatform/Spring/jobs/executions/listInstances/action

Use as seguintes etapas para atribuir uma função do Azure usando o portal do Azure:

  1. Abra o portal do Azure.

  2. Abra sua instância de serviço do Azure Spring Apps.

  3. No painel de navegação, selecione Controle de acesso (IAM).

  4. Na página Controle de Acesso (IAM), selecione Adicionar e, em seguida, selecione Adicionar atribuição de função.

    Captura de ecrã do portal do Azure que mostra a página Controlo de Acesso (IAM) com a opção Adicionar atribuição de função realçada.

  5. Na página Adicionar atribuição de função, na lista Nome, procure e selecione a função de destino e, em seguida, selecione Avançar.

    Captura de ecrã do portal do Azure que mostra a página Adicionar atribuição de função com o nome da Função de Leitor de Registo de Trabalhos do Azure Spring Apps realçado.

  6. Selecione Membros e, em seguida, procure e selecione seu nome de usuário.

  7. Selecione Rever + atribuir.

Ver registos de cauda

Esta seção fornece exemplos de como usar a CLI do Azure para produzir logs de cauda.

Exibir logs de cauda para uma instância específica

Toda vez que um trabalho é acionado, uma nova execução de trabalho é criada. Além disso, dependendo da configuração de paralelismo para seu trabalho, várias réplicas ou instâncias são executadas em paralelo.

Use o seguinte comando para listar todas as instâncias em uma execução de trabalho:

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

Você pode obter todos os nomes de instância da execução do trabalho a partir da saída.

Para exibir os logs de cauda de uma instância específica, use o az spring job logs comando com o -i/--instance argumento, conforme mostrado no exemplo a seguir:

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>

Exibir logs de cauda para todas as instâncias em um comando

Para exibir os logs de cauda para todas as instâncias, use o --all-instances argumento, conforme mostrado no exemplo a seguir. O nome da instância é o prefixo de cada linha de log. Quando há várias instâncias, os logs são impressos em lote para cada instância. Dessa forma, os logs de uma instância não são intercalados com os logs de outra instância.

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

Transmita novos logs continuamente

Por padrão, imprime apenas os logs existentes transmitidos para o console e, em seguida, az spring job logs sai. Se você quiser transmitir novos logs, adicione o -f/--follow argumento.

Quando você usa a -f/--follow opção para gerar logs instantâneos, o serviço de streaming de log do Azure Spring Apps envia logs de pulsação para o cliente a cada minuto, a menos que o trabalho esteja gravando logs constantemente. As mensagens de registro de pulsação usam o seguinte formato: 2023-12-18 09:12:17.745: No log from server.

Logs de fluxo para uma instância específica

Use os seguintes comandos para obter nomes de instância e logs de fluxo para uma instância específica:

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

Logs de fluxo para todas as instâncias

Use o seguinte comando para transmitir logs para todas as instâncias:

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

Quando você transmite logs para várias instâncias em uma execução de trabalho, os logs de uma instância intercalam com os logs de outras.

Transmitir logs em uma instância de injeção de rede virtual

Para uma instância do Azure Spring Apps implantada em uma rede virtual personalizada, você pode acessar o streaming de log por padrão de uma rede privada. Para obter mais informações, consulte Implantar aplicativos Azure Spring em uma rede virtual

O Azure Spring Apps também permite que você acesse logs de trabalho em tempo real de uma rede pública.

Nota

Habilitar o ponto de extremidade de streaming de log na rede pública adiciona um IP de entrada público à sua rede virtual. Certifique-se de ter cuidado se isso for uma preocupação para você.

Use as seguintes etapas para habilitar um ponto de extremidade de streaming de log na rede pública:

  1. Selecione a instância de serviço do Azure Spring Apps implantada em sua rede virtual e selecione Rede no painel de navegação.

  2. Selecione a guia Injeção de Vnet.

  3. Alterne o status dos recursos do Dataplane na rede pública para Habilitar para habilitar um ponto de extremidade de streaming de log na rede pública. Este processo demora alguns minutos.

    Captura de ecrã do portal do Azure que mostra a página Rede com o separador Injeção de Vnet selecionado e a secção Resolução de Problemas realçada.

Depois de habilitar o ponto de extremidade público do fluxo de logs, você pode acessar os logs de trabalho de uma rede pública da mesma forma que acessaria uma instância normal.

Tráfego seguro para o ponto de extremidade público de streaming de log

O streaming de log para trabalhos usa o RBAC do Azure para autenticar as conexões com os trabalhos. Como resultado, apenas os usuários que têm as funções adequadas podem acessar os logs.

Para garantir a segurança de seus trabalhos quando você expõe um ponto de extremidade público para eles, proteja o ponto de extremidade filtrando o tráfego de rede para seu serviço com um grupo de segurança de rede. Para obter mais informações, consulte Tutorial: Filtrar o tráfego de rede com um grupo de segurança de rede usando o portal do Azure. Os grupos de segurança de rede contêm regras de segurança que permitem ou negam o tráfego de entrada ou de saída de e para vários tipos de recursos do Azure. Para cada regra, pode especificar a origem e o destino, a porta e o protocolo.

Nota

Se não conseguir aceder aos registos de tarefas na instância de injeção de rede virtual a partir da Internet depois de ativar um ponto de extremidade público de fluxo de registos, verifique o seu grupo de segurança de rede para ver se permitiu esse tráfego de entrada.

A tabela a seguir mostra um exemplo de uma regra básica que recomendamos. Você pode usar comandos como nslookup com o ponto de extremidade <service-name>.private.azuremicroservices.io para obter o endereço IP de destino de um serviço.

Prioridade Name Porta Protocolo Origem Destino Ação
100 Nome da regra 80 TCP Internet Endereço IP do serviço Permitir
110 Nome da regra 443 TCP Internet Endereço IP do serviço Permitir

Próximos passos