Compartilhar via


Transmita os logs de trabalho do Aplicativos Spring do Azure em tempo real (versão prévia)

Observação

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

O plano consumo e dedicado Standard 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 mais informações, confira Migrar o plano dedicado e consumo Standard dos Aplicativos Spring do Azure para os Aplicativos de Contêiner do Azure.

Esse artigo se aplica a: ❎ Basic/Standard ✅ Enterprise

Este artigo descreve como usar a CLI do Azure para obter logs de trabalhos em tempo real para solução de problemas. Você também pode usar as 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 mais informações sobre o streaming de logs, consulte Transmita os logs do console de aplicativos do Aplicativos Spring do Azure em tempo real e Transmita logs de componentes gerenciados do Aplicativos Spring do Azure em tempo real.

Pré-requisitos

  • CLI do Azure com a extensão Aplicativos Spring do Azure, versão 1.24.0 ou superior. Você pode instalar essa extensão executando 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 é concedida permissão:

Função necessária Operações
Função de Leitor de Logs de Trabalho do Aplicativos Spring do Azure 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 a sua instância de serviço dos Aplicativos Spring do Azure.

  3. No painel de navegação à esquerda, selecione Controle de Acesso (IAM).

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

    Captura de tela do portal do Azure que mostra a página Controle 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, pesquise e selecione a função de destino e, em seguida, selecione Avançar.

    Captura de tela do portal do Azure mostrando a página Adicionar atribuição de função com o nome da função Leitor de Log de Trabalho do Aplicativos Spring do Azure destacado.

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

  7. Selecione Examinar + atribuir.

Exibir parte final dos logs

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

Exibir a parte final dos logs para uma instância específica

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

Use o comando a seguir 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 finais de uma instância específica, use o comando az spring job logs com o argumento -i/--instance, conforme mostrado no seguinte exemplo:

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 as partes finais dos logs para todas as instâncias em um comando

Para visualizar os logs finais de todas as instâncias, use o argumento --all-instances, 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

Transmitir novos logs continuamente

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

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

Transmitir logs para uma instância específica

Use os seguintes comandos para obter os nomes de instância e os logs de fluxo de 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

Transmitir logs 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 se intercalam com os logs das outras.

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

Para uma instância de Aplicativos do Azure Spring 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, confira Implantar o Azure Spring Apps em uma rede virtual

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

Observação

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 dos Aplicativos Spring do Azure implantada na sua rede virtual e selecione Rede no painel de navegação.

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

  3. Alterne o status de Recursos de plano de dados na rede pública para Habilitar para habilitar um ponto de extremidade de streaming de log na rede pública. Esse processo leva alguns minutos.

    Captura de tela do portal do Azure que mostra a página Rede com a guia Injeção de Vnet selecionada e a seção Solução de problemas realçada.

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

Proteger o tráfego para o ponto de extremidade público de streaming de log

O fluxo de logs para trabalhos usa o RBAC do Azure para autenticar as conexões com os trabalhos. Como resultado, somente 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 o seu serviço com um grupo de segurança de rede. Para obter mais informações, consulteTutorial: Filtrar o tráfego de rede com um grupo de segurança de rede usando o portal do Azure. Um grupo de segurança de rede contém regras de segurança que permitem ou negam o tráfego de rede de entrada ou de saída em relação a vários tipos de recursos do Azure. Para cada regra, você pode especificar origem e destino, porta e protocolo.

Observação

Se você não conseguir acessar os logs de trabalho na instância de injeção de rede virtual da Internet depois de habilitar um ponto de extremidade público de fluxo de log, verifique seu grupo de segurança de rede para ver se você 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.

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

Próximas etapas