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.
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