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:
Abra o portal do Azure.
Abra sua instância de serviço do Azure Spring Apps.
No painel de navegação, selecione Controle de acesso (IAM).
Na página Controle de Acesso (IAM), selecione Adicionar e, em seguida, selecione Adicionar atribuição de função.
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.
Selecione Membros e, em seguida, procure e selecione seu nome de usuário.
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:
Selecione a instância de serviço do Azure Spring Apps implantada em sua rede virtual e selecione Rede no painel de navegação.
Selecione a guia Injeção de Vnet.
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.
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 |