Registrazione di istanze e gruppi di contenitori con i log di Monitoraggio di Azure
Le aree di lavoro di Log Analytics offrono una posizione centralizzata per l'archiviazione e l'esecuzione di query sui dati di log, non solo dalle risorse di Azure, ma anche per le risorse locali e quelle in altri cloud. Il servizio Istanze di Azure Container supporta per impostazione predefinita l'invio di log e dati sugli eventi ai log di Monitoraggio di Azure.
Per inviare i dati di log ed eventi dei gruppi di contenitori ai log di Monitoraggio di Azure, specificare un ID e una chiave dell'area di lavoro Log Analytics esistenti durante la configurazione di un gruppo di contenitori.
Le sezioni seguenti descrivono la creazione di un gruppo di contenitori abilitato per la registrazione e l'esecuzione di query sui log. È anche possibile aggiornare un gruppo di contenitori con un ID area di lavoro e una chiave dell'area di lavoro per abilitare la registrazione.
Nota
Questo articolo è stato aggiornato di recente in modo da usare il termine log di Monitoraggio di Azure anziché Log Analytics. I dati di log vengono comunque archiviati in un'area di lavoro Log Analytics e vengano ancora raccolti e analizzati dallo stesso servizio Log Analytics. Si sta procedendo a un aggiornamento della terminologia per riflettere meglio il ruolo dei log in Monitoraggio di Azure. Per informazioni dettagliate, vedere Modifiche della terminologia di Monitoraggio di Azure.
Prerequisiti
Per abilitare la registrazione nelle istanze di contenitore, sono necessari i prerequisiti seguenti:
Ottenere le credenziali di Log Analytics
Il servizio Istanze di Azure Container deve avere l'autorizzazione per l'invio dei dati all'area di lavoro Log Analytics. Per concedere questa autorizzazione e abilitare la registrazione, è necessario fornire l'ID dell'area di lavoro Log Analytics e una delle relative chiavi (primaria o secondaria) quando si crea il gruppo di contenitori.
Per ottenere l'ID e la chiave primaria dell'area di lavoro Log Analytics:
- Passare all'area di lavoro Log Analytics nel portale di Azure
- In Impostazioni selezionare Gestione agenti
- Prendere nota di:
- ID area di lavoro
- Chiave primaria
Creare un gruppo di contenitori
Dopo aver ottenuto l'ID e la chiave primaria dell'area di lavoro Log Analytics, è possibile procedere con la creazione di un gruppo di contenitori abilitato per la registrazione.
Gli esempi seguenti illustrano due modi per creare un gruppo di contenitori costituito da un unico contenitore fluentd: interfaccia della riga di comando di Azure e interfaccia della riga di comando di Azure con un modello YAML. Il contenitore Fluentd produce più righe di output nella configurazione predefinita. Dato che questo output viene inviato all'area di lavoro Log Analytics, è adatto per dimostrare le funzionalità di visualizzazione ed esecuzione di query per i log.
Distribuire con l'interfaccia della riga di comando di Azure
Per eseguire la distribuzione con l'interfaccia della riga di comando di Azure, specificare i parametri --log-analytics-workspace
e --log-analytics-workspace-key
nel comando az container create. Sostituire i due valori dell'area di lavoro con i valori ottenuti nel passaggio precedente (e aggiornare il nome del gruppo di risorse) prima di eseguire il comando seguente.
Nota
L'esempio seguente esegue il pull di un'immagine del contenitore pubblica da Docker Hub. È consigliabile configurare un segreto pull per l'autenticazione usando un account di Docker Hub anziché effettuare una richiesta pull anonima. Per migliorare l'affidabilità quando si lavora con contenuto pubblico, importare e gestire l'immagine in un registro Azure Container privato. Altre informazioni sull'uso delle immagini pubbliche.
az container create \
--resource-group myResourceGroup \
--name mycontainergroup001 \
--image fluent/fluentd:v1.3-debian-1 \
--log-analytics-workspace <WORKSPACE_ID> \
--log-analytics-workspace-key <WORKSPACE_KEY>
Distribuire con YAML
Usare questo metodo se si preferisce distribuire gruppi di contenitori con YAML. Il codice YAML seguente definisce un gruppo di contenitori con un singolo contenitore. Copiare il codice YAML in un nuovo file e quindi sostituire LOG_ANALYTICS_WORKSPACE_ID
e LOG_ANALYTICS_WORKSPACE_KEY
con i valori ottenuti nel passaggio precedente. Salvare il file come deploy-aci.yaml.
Nota
L'esempio seguente esegue il pull di un'immagine del contenitore pubblica da Docker Hub. È consigliabile configurare un segreto pull per l'autenticazione usando un account di Docker Hub anziché effettuare una richiesta pull anonima. Per migliorare l'affidabilità quando si lavora con contenuto pubblico, importare e gestire l'immagine in un registro Azure Container privato. Altre informazioni sull'uso delle immagini pubbliche.
apiVersion: 2019-12-01
location: eastus
name: mycontainergroup001
properties:
containers:
- name: mycontainer001
properties:
environmentVariables: []
image: fluent/fluentd:v1.3-debian-1
ports: []
resources:
requests:
cpu: 1.0
memoryInGB: 1.5
osType: Linux
restartPolicy: Always
diagnostics:
logAnalytics:
workspaceId: LOG_ANALYTICS_WORKSPACE_ID
workspaceKey: LOG_ANALYTICS_WORKSPACE_KEY
tags: null
type: Microsoft.ContainerInstance/containerGroups
Eseguire quindi il comando seguente per distribuire il gruppo di contenitori. Sostituire myResourceGroup
con un gruppo di risorse nella sottoscrizione oppure creare prima un gruppo di risorse denominato "myResourceGroup":
az container create --resource-group myResourceGroup --name mycontainergroup001 --file deploy-aci.yaml
Si riceverà una risposta da Azure contenente i dettagli di distribuzione poco dopo aver eseguito il comando.
Visualizzare i log
Dopo aver distribuito il gruppo di contenitori, possono essere necessari diversi minuti (fino a 10) per la visualizzazione delle prime voci di log nel portale di Azure.
Per visualizzare i log del gruppo di contenitori nella tabella ContainerInstanceLog_CL
:
- Passare all'area di lavoro Log Analytics nel portale di Azure
- In Generale selezionare Log
- Digitare la query seguente:
ContainerInstanceLog_CL | limit 50
- Selezionare Esegui
Dovrebbero essere visibili i vari risultati visualizzati dalla query. Se inizialmente non viene visualizzato alcun risultato, attendere qualche minuto e quindi selezionare il pulsante Esegui per eseguire nuovamente la query. Per impostazione predefinita, le voci del log vengono visualizzate in formato Tabella. È quindi possibile espandere una riga per visualizzare il contenuto di una singola voce del log.
Visualizza eventi
È anche possibile visualizzare gli eventi per le istanze di contenitori nel portale di Azure. Gli eventi includono la data e l'ora di creazione e di avvio dell'istanza. Per visualizzare i dati degli eventi nella tabella ContainerEvent_CL
:
- Passare all'area di lavoro Log Analytics nel portale di Azure
- In Generale selezionare Log
- Digitare la query seguente:
ContainerEvent_CL | limit 50
- Selezionare Esegui
Dovrebbero essere visibili i vari risultati visualizzati dalla query. Se inizialmente non viene visualizzato alcun risultato, attendere qualche minuto e quindi selezionare il pulsante Esegui per eseguire nuovamente la query. Per impostazione predefinita, le voci vengono visualizzate in formato tabella. È quindi possibile espandere una riga per visualizzare il contenuto di una singola voce.
Eseguire query sui log dei contenitori
I log di Monitoraggio di Azure includono un linguaggio di query completo per estrarre informazioni potenzialmente da migliaia di righe di output del log.
La struttura di base di una query è costituita da una tabella di origine (in questo articolo ContainerInstanceLog_CL
o ContainerEvent_CL
) seguita da una serie di operatori separati dal carattere barra verticale (|
). È possibile concatenare più operatori per limitare i risultati ed eseguire funzioni avanzate.
Per visualizzare risultati della query di esempio, incollare la query seguente nella casella di testo e selezionare il pulsante Esegui per eseguirla. Questa query consente di visualizzare tutte le voci di log il cui campo "Message" contiene la parola "warn":
ContainerInstanceLog_CL
| where Message contains "warn"
Sono supportate anche query più complesse. Ad esempio, questa query visualizza solo le voci di log per il gruppo di contenitori "mycontainergroup001" generate nell'ultima ora:
ContainerInstanceLog_CL
| where (ContainerGroup_s == "mycontainergroup001")
| where (TimeGenerated > ago(1h))
Schema del log
Per informazioni sullo schema legacy di Monitoraggio di Azure per Log Analytics, vedere tabelle di Log Analytics legacy.
Usare le impostazioni di diagnostica
Le tabelle più recenti richiedono l'uso delle impostazioni di diagnostica per instradare le informazioni a Log Analytics. La funzionalità delle impostazioni di diagnostica per Istanze di Container è in anteprima pubblica e può essere abilitata tramite le opzioni delle funzionalità in anteprima nel portale di Azure.
Per altre informazioni, vedere le tabelle di Monitoraggio di Log Analytics.
Passaggi successivi
Log di Monitoraggio di Azure
Per altre informazioni sull'esecuzione di query sui log e la configurazione di avvisi nei log di Monitoraggio di Azure, vedere:
- Informazioni sulle ricerche nei log di Monitoraggio di Azure
- Avvisi unificati in Monitoraggio di Azure
Monitorare CPU e memoria del contenitore
Per informazioni sul monitoraggio delle risorse di CPU e memoria per l'istanza di contenitore, vedere: