Partilhar via


Monitorar logs em aplicativos de contêiner do Azure com o Log Analytics

Os Aplicativos de Contêiner do Azure são integrados ao Azure Monitor Log Analytics para monitorar e analisar os logs do seu aplicativo de contêiner. Quando selecionado como sua solução de monitoramento de log, seu ambiente de aplicativos de contêiner inclui um espaço de trabalho do Log Analytics que fornece um local comum para armazenar os dados de log do sistema e do aplicativo de todos os aplicativos de contêiner em execução no ambiente.

As entradas de log podem ser acessadas consultando tabelas do Log Analytics por meio do portal do Azure ou de um shell de comando usando a CLI do Azure.

Há dois tipos de logs para Aplicativos de Contêiner.

  • Logs do console, que são emitidos pelo seu aplicativo.
  • Logs do sistema, que são emitidos pelo serviço Container Apps.

Registos do Sistema

O serviço Aplicativos de Contêiner fornece mensagens de log do sistema no nível do aplicativo de contêiner. Os logs do sistema emitem as seguintes mensagens:

Origem Type Mensagem
Dapr Informações Nome do componente <> dapr criado com êxito com escopo <dapr-component-scope>
Dapr Informações Nome do componente <> dapr atualizado com êxito com o tipo de componente de escopo <>
Dapr Erro Erro ao criar o nome do componente dapr <>
Montagens de volume Informações Nome do> volume de volume <montado com êxito para <revisão do escopo da revisão>
Montagens de volume Erro Erro ao volume de montagem <do volume-nome>
Vinculação de domínio Informações Domínio <> vinculado com êxito ao nome do aplicativo contêiner <>
Autenticação Informações Auth ativada no aplicativo. Criando configuração de autenticação
Autenticação Informações Configuração de autenticação criada com êxito
Peso do tráfego Informações Definindo um peso de tráfego de %> percentual para <o nome da <revisão de revisão\>
Provisionamento de revisão Informações Criando uma nova revisão: <nome da revisão>
Provisionamento de revisão Informações Nome da revisão <provisionada com êxito>
Provisionamento de revisão Informações Desativando revisões antigas desde 'ActiveRevisionsMode=Single'
Provisionamento de revisão Erro Erro ao provisionamento revisão <revisão-nome>. ErrorCode: <[ErrImagePull]|[ Tempo limite]|[ContainerCrashing]>

Os dados de log do sistema podem ser acessados consultando a ContainerAppSystemLogs_CL tabela. As colunas específicas de Aplicativos de Contêiner mais usadas na tabela são:

Column Description
ContainerAppName_s Nome do aplicativo de contêiner
EnvironmentName_s Nome do ambiente de aplicativos de contêiner
Log_s Mensagem de registo
RevisionName_s Nome da revisão

Registos da consola

Os logs do console são originados das stderr mensagens e stdout dos contêineres em seu aplicativo de contêiner e sidecars do Dapr. Você pode visualizar os logs do console consultando a ContainerAppConsoleLogs_CL tabela.

Gorjeta

Instrumentar seu código com mensagens de log bem definidas pode ajudá-lo a entender como seu código está funcionando e a depurar problemas. Para saber mais sobre as práticas recomendadas, consulte Design para operações.

As colunas específicas de Aplicativos de Contêiner mais usadas no ContainerAppConsoleLogs_CL incluem:

Column Description
ContainerAppName_s Nome do aplicativo de contêiner
ContainerGroupName_g Nome da réplica
ContainerId_s Identificador de contêiner
ContainerImage_s Nome da imagem do contêiner
EnvironmentName_s Nome do ambiente de aplicativos de contêiner
Log_s Mensagem de registo
RevisionName_s Nome da revisão

Registo de consulta com o Log Analytics

O Log Analytics é uma ferramenta no portal do Azure que você pode usar para exibir e analisar dados de log. Usando o Log Analytics, você pode escrever consultas Kusto e, em seguida, classificar, filtrar e visualizar os resultados em gráficos para identificar tendências e problemas. Você pode trabalhar interativamente com os resultados da consulta ou usá-los com outros recursos, como alertas, painéis e pastas de trabalho.

Portal do Azure

Inicie o Log Analytics a partir de Logs no menu da barra lateral na página do seu aplicativo de contêiner. Você também pode iniciar o Log Analytics a partir do Monitor>Logs.

Você pode consultar os logs usando as tabelas listadas na guia Tabelas da categoria CustomLogs. As tabelas nesta categoria são as ContainerAppSystemlogs_CL e ContainerAppConsoleLogs_CL tabelas.

Captura de ecrã das tabelas de registo personalizadas do Log Analytics.

Abaixo está uma consulta Kusto que exibe entradas de log do console para o aplicativo de contêiner chamado album-api.

ContainerAppConsoleLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s
| take 100

Abaixo está uma consulta Kusto que exibe entradas de log do sistema para o aplicativo de contêiner chamado album-api.

ContainerAppSystemLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, EnvName=EnvironmentName_s, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s
| take 100

Para obter mais informações sobre o Log Analytics e consultas de log, consulte o tutorial do Log Analytics.

CLI do Azure/PowerShell

Os logs de Aplicativos de Contêiner podem ser consultados usando a CLI do Azure.

Estes exemplos de consultas da CLI do Azure geram uma tabela contendo registros de log para o nome do aplicativo contêiner album-api. As colunas da tabela são especificadas pelos parâmetros após o project operador. A $WORKSPACE_CUSTOMER_ID variável contém o GUID do espaço de trabalho do Log Analytics.

Este exemplo consulta a ContainerAppConsoleLogs_CL tabela:

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppConsoleLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s, LogLevel_s | take 5" --out table

Este exemplo consulta a ContainerAppSystemLogs_CL tabela:

az monitor log-analytics query --workspace $WORKSPACE_CUSTOMER_ID --analytics-query "ContainerAppSystemLogs_CL | where ContainerAppName_s == 'album-api' | project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s, LogLevel_s | take 5" --out table

Próximos passos