Monitorar logs nos Aplicativos de Contêiner do Azure com o Log Analytics
Os Aplicativos de Contêiner do Azure são integrados ao Log Analytics do Azure Monitor para monitorar e analisar os logs do aplicativo de contêiner. Quando selecionado como a solução de monitoramento de logs, o seu ambiente de Aplicativos de Contêiner inclui um workspace do Log Analytics que fornece um local comum para armazenar o sistema e os dados de log do aplicativo de todos os aplicativos 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 de console, que são emitidos pelo seu aplicativo.
- Logs do sistema, que são emitidos pelo serviço Aplicativos de Contêiner.
Logs 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 | Tipo | Message |
---|---|---|
Dapr | Informações | Nome do componente dapr <component-name> criado com êxito com escopo <dapr-component-scope> |
Dapr | Informações | Nome do componente dapr <component-name> atualizado com êxito com escopo <component-type> |
Dapr | Erro | Erro ao criar o nome do componente dapr <component-name> |
Montagens de volume | Informações | Volume <volume-name> montado com êxito para a revisão <revision-scope> |
Montagens de volume | Erro | Erro ao montar volume <volume-name> |
Associação de domínio | Informações | Domínio associado com êxito o Domínio <domain> ao <nome de aplicativo de contêiner> do aplicativo de contêiner |
Autenticação | Informações | Autenticação habilitada no aplicativo. Criar configuração de autenticação |
Autenticação | Informações | Configuração de autenticação criada com êxito |
Peso do tráfego | Informações | Definir um peso de tráfego de <percentual>% para a revisão <revision-name\> |
Provisionamento de revisão | Informações | Criar uma nova revisão: <revision-name> |
Provisionamento de revisão | Informações | Revisão <name> provisionada com êxito |
Provisionamento de revisão | Informações | Desativar revisões antigas desde 'ActiveRevisionsMode=Single' |
Provisionamento de revisão | Erro | Erro ao provisionar a revisão <revision-name>. ErrorCode: <[ErrImagePull]|[Timeout]|[ContainerCrashing]> |
Os dados de log do sistema podem ser acessados consultando a tabela ContainerAppSystemLogs_CL
. As colunas específicas de Aplicativos de Contêiner mais usadas na tabela são:
Coluna | Descrição |
---|---|
ContainerAppName_s |
Nome do aplicativo de contêiner |
EnvironmentName_s |
Nome do ambiente dos Aplicativos de Contêiner |
Log_s |
Mensagem de log |
RevisionName_s |
Nome da revisão |
Logs do console
Os logs de console são originados das mensagens stderr
e stdout
dos contêineres em seu aplicativo de contêiner e sidecars da Dapr. Você pode exibir logs de console consultando a tabela ContainerAppConsoleLogs_CL
.
Dica
Instrumentar seu código com mensagens de log bem definidas pode ajudá-lo a entender como o código está sendo executado e a depurar problemas. Para saber mais sobre as práticas recomendadas, consulte Design para operações.
As colunas específicas dos Aplicativos de Contêiner mais usadas em ContainerAppConsoleLogs_CL incluem:
Coluna | Descrição |
---|---|
ContainerAppName_s |
Nome do aplicativo de contêiner |
ContainerGroupName_g |
Nome da réplica |
ContainerId_s |
Identificador do contêiner |
ContainerImage_s |
Nome da imagem de contêiner |
EnvironmentName_s |
Nome do ambiente dos Aplicativos de Contêiner |
Log_s |
Mensagem de log |
RevisionName_s |
Nome da revisão |
Consultar logs 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 classificar, filtrar e visualizar os resultados em gráficos para detectar tendências e identificar problemas. É possível trabalhar interativamente com os resultados de suas consultas ou usá-las 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 aplicativo de contêiner. Você também pode iniciar o Log Analytics em Monitor>Logs.
Você pode consultar os logs usando as tabelas listadas na guia Tabelas da categoria CustomLogs. As tabelas nessa categoria são as tabelas ContainerAppSystemlogs_CL
e ContainerAppConsoleLogs_CL
.
Abaixo está um exemplo de uma consulta Kusto que exibe entradas de log de 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á um exemplo de uma consulta Kusto que exibe entradas de log de 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, confira o tutorial do Log Analytics.
CLI do Azure/PowerShell
Os logs dos Aplicativos de Contêiner podem ser consultados usando a CLI do Azure.
Estes exemplos de consultas da CLI do Azure geram uma tabela que contém registros de log para o nome do aplicativo de contêiner album-api. As colunas de tabela são especificadas pelos parâmetros após o operador project
. A variável $WORKSPACE_CUSTOMER_ID
contém o GUID do workspace do Log Analytics.
Este exemplo consulta a tabela ContainerAppConsoleLogs_CL
:
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 tabela ContainerAppSystemLogs_CL
:
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