Condividi tramite


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.

Screenshot delle tabelle di log personalizzate di Log Analytics.

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

Passaggi successivi