Monitorare i log in app contenitore di Azure con Log Analytics
App contenitore di Azure è integrato con Log Analytics di Monitoraggio di Azure per monitorare e analizzare i log dell'app contenitore. Se questa opzione è selezionata come soluzione di monitoraggio dei log, l'ambiente App contenitore include un'area di lavoro Log Analytics che offre una posizione comune per archiviare i dati di log del sistema e dell’applicazione da tutte le app contenitore in esecuzione nell'ambiente.
Le voci di log sono accessibili eseguendo query sulle tabelle di Log Analytics tramite il portale di Azure o una shell dei comandi usando l'interfaccia della riga di comando di Azure.
Esistono due tipi di log per App contenitore.
- Log della console, generati dall'app.
- Log di sistema, generati dal servizio App contenitore.
Log di sistema
Il servizio App contenitore fornisce messaggi di log di sistema a livello di app contenitore. I log di sistema generano i messaggi seguenti:
Origine | Type | Message |
---|---|---|
Dapr | info | Creazione del componente dapr <nome componente> con ambito <ambito componente dapr> |
Dapr | info | Aggiornamento del componente dapr <nome componente> con ambito <tipo di componente> |
Dapr | Error | Errore durante la creazione del componente dapr <nome componente> |
Montaggi del volume | info | Volume montato correttamente <nome volume> per la revisione <ambito revisione> |
Montaggi del volume | Error | Errore durante il montaggio del volume <nome del volume> |
Associazione di dominio | info | Dominio associato correttamente <dominio> all’app contenitore <nome dell’app contenitore> |
Autenticazione | info | Autenticazione abilitata nell'app. Creazione della configurazione di autenticazione |
Autenticazione | info | Configurazione dell'autenticazione creata correttamente |
Peso del traffico | info | Impostazione del peso del traffico di <percentuale>% per la revisione <nome revisione\> |
Provisioning delle revisioni | info | Creazione di una nuova revisione: <nome revisione> |
Provisioning delle revisioni | info | <nome> revisione di cui è stato eseguito correttamente il provisioning |
Provisioning delle revisioni | info | Disattivazione delle revisioni precedenti da 'ActiveRevisionsMode=Single' |
Provisioning delle revisioni | Error | Errore durante il provisioning della revisione <nome revisione>. ErrorCode: <[ErrImagePull]|[Timeout]|[ContainerCrashing]> |
I dati di log di sistema sono accessibili eseguendo una query sulla tabella ContainerAppSystemLogs_CL
. Le colonne specifiche delle app contenitore più usate nella tabella sono:
Colonna | Descrizione |
---|---|
ContainerAppName_s |
Nome app contenitore |
EnvironmentName_s |
Nome dell'ambiente delle app contenitore |
Log_s |
Registra messaggio |
RevisionName_s |
Nome revisione |
Log della console
I log della console provengono dai messaggi stderr
e stdout
dai contenitori nell'app contenitore e dai sidecar Dapr. È possibile visualizzare i log della console eseguendo una query sulla tabella ContainerAppConsoleLogs_CL
.
Suggerimento
Instrumentando il codice con messaggi di log ben definiti si possono comprendere le prestazioni del codice ed eseguire il debug dei problemi. Per altre informazioni sulle procedure consigliate, vedere Progettazione per le operazioni.
Le colonne specifiche delle app contenitore più comunemente usate in ContainerAppConsoleLogs_CL includono:
Colonna | Descrizione |
---|---|
ContainerAppName_s |
Nome app contenitore |
ContainerGroupName_g |
Nome replica |
ContainerId_s |
Identificatore contenitore |
ContainerImage_s |
Nome dell'immagine del contenitore |
EnvironmentName_s |
Nome dell'ambiente delle app contenitore |
Log_s |
Registra messaggio |
RevisionName_s |
Nome revisione |
Log query con Analisi dei Log
Log Analytics è uno strumento nel portale di Azure che è possibile usare per visualizzare e analizzare i dati di log. Con Log Analytics è possibile scrivere query Kusto e quindi ordinare, filtrare e visualizzare i risultati nei grafici per individuare le tendenze e identificare i problemi. È possibile lavorare in modo interattivo con i risultati della query o usarli con altre funzionalità, ad esempio avvisi, dashboard e cartelle di lavoro.
Portale di Azure
Avviare Log Analytics da Log nel menu della barra laterale della pagina dell'app contenitore. È anche possibile avviare Log Analytics da Monitoraggio di >log.
È possibile eseguire query sui log usando le tabelle elencate nella scheda Tabelle della categoria CustomLogs. Le tabelle in questa categoria sono le tabelle ContainerAppSystemlogs_CL
e ContainerAppConsoleLogs_CL
.
Di seguito è riportata una query Kusto che visualizza le voci di log della console per l'app contenitore denominata api album.
ContainerAppConsoleLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, AppName=ContainerAppName_s, Revision=RevisionName_s, Container=ContainerName_s, Message=Log_s
| take 100
Di seguito è riportata una query Kusto che visualizza le voci di log di sistema per l'app contenitore denominata api album.
ContainerAppSystemLogs_CL
| where ContainerAppName_s == 'album-api'
| project Time=TimeGenerated, EnvName=EnvironmentName_s, AppName=ContainerAppName_s, Revision=RevisionName_s, Message=Log_s
| take 100
Per altre informazioni su Log Analytics e sulle query di log, vedere l'esercitazione Log Analytics.
Interfaccia della riga di comando di Azure/PowerShell
È possibile eseguire query sui log delle app contenitore usando l'interfaccia della riga di comando di Azure .
Questo esempio di query dell'interfaccia della riga di comando di Azure restituisce una tabella contenente record di log per il nome dell'app contenitore dell'api album. Le colonne della tabella vengono specificate dai parametri dopo l'operatore project
. La variabile $WORKSPACE_CUSTOMER_ID
contiene il GUID dell'area di lavoro Log Analytics.
Questo esempio esegue una query sulla tabella 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
Questo esempio esegue una query sulla tabella 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