Monitorare i log in App Azure Container con Log Analytics

App Azure Container è 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 del sistema e del log applicazioni 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 tramite 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 Tipo Message
Dapr Info Creazione del nome> componente dapr <con ambito <dapr-component-scope>
Dapr Info Aggiornamento corretto del nome> componente dapr <con il tipo di componente ambito <>
Dapr Errore Errore durante la creazione del nome del componente <dapr>
Montaggi di volumi Info Volume-name> montato <correttamente per revision-scope revisione <>
Montaggi di volumi Errore Errore durante il montaggio del volume-name <>
Associazione di dominio Info Dominio <> associato correttamente al nome dell'app contenitore dell'app <contenitore>
Authentication Info Autenticazione abilitata nell'app. Creazione della configurazione di autenticazione
Authentication Info Configurazione dell'autenticazione creata correttamente
Peso del traffico Info Impostazione del peso del traffico percentuale <>per revision-name<\>
Provisioning delle revisioni Info Creazione di una nuova revisione: <revision-name>
Provisioning delle revisioni Info Nome revisione <con provisioning completato>
Provisioning delle revisioni Info Disattivazione delle revisioni precedenti da 'ActiveRevisionsMode=Single'
Provisioning delle revisioni Errore Errore durante il provisioning del nome> revisione revisione<. ErrorCode: <[ErrImagePull]|[ Timeout]|[ContainerCrashing]>

I dati del log di sistema sono accessibili eseguendo query sulla ContainerAppSystemLogs_CL tabella. Le colonne specifiche di App contenitore più usate nella tabella sono:

Colonna Descrizione
ContainerAppName_s Nome dell'app contenitore
EnvironmentName_s Nome dell'ambiente app contenitore
Log_s Registra messaggio
RevisionName_s Nome revisione

Log della console

I log della stderr console provengono dai messaggi e stdout dai contenitori nell'app contenitore e dai sidecar Dapr. È possibile visualizzare i log della console eseguendo query sulla ContainerAppConsoleLogs_CL tabella.

Suggerimento

Instrumentare il codice con messaggi di log ben definiti consente di comprendere le prestazioni del codice e di eseguire il debug dei problemi. Per altre informazioni sulle procedure consigliate, vedere Progettazione per le operazioni.

Le colonne specifiche di App contenitore più comunemente usate in ContainerAppConsoleLogs_CL includono:

Colonna Descrizione
ContainerAppName_s Nome dell'app contenitore
ContainerGroupName_g Nome replica
ContainerId_s Identificatore del contenitore
ContainerImage_s Nome dell'immagine del contenitore
EnvironmentName_s Nome dell'ambiente app contenitore
Log_s Registra messaggio
RevisionName_s Nome revisione

Log query con Analisi dei Log

Log Analytics è uno strumento nella 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.

Azure portal

Avviare Log Analytics dai log nel menu della barra laterale nella pagina dell'app contenitore. È anche possibile avviare Log Analytics dai log di monitoraggio>.

È possibile eseguire query sui log usando le tabelle elencate nella scheda Tabelle delle categorie CustomLogs. Le tabelle in questa categoria sono le ContainerAppSystemlogs_CL tabelle e ContainerAppConsoleLogs_CL .

Screenshot of the Log Analytics custom log tables.

Di seguito è riportata una query Kusto che visualizza le voci di log della console per l'app contenitore denominata 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

Di seguito è riportata una query Kusto che visualizza le voci di log di sistema per l'app contenitore denominata 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

Per altre informazioni su Log Analytics e sulle query di log, vedere l'esercitazione su Log Analytics.

Interfaccia della riga di comando di Azure/PowerShell

È possibile eseguire query sui log di 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 i record di log per l'album-api del nome dell'app contenitore. Le colonne della tabella vengono specificate dai parametri dopo l'operatore project . La $WORKSPACE_CUSTOMER_ID variabile contiene il GUID dell'area di lavoro Log Analytics.

Questo esempio esegue una query sulla ContainerAppConsoleLogs_CL tabella:

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 ContainerAppSystemLogs_CL tabella:

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