Soluzione di monitoraggio dei contenitori in Monitoraggio di Azure
Questo articolo descrive come configurare e usare la soluzione Monitoraggio contenitori in Monitoraggio di Azure, che consente di visualizzare e gestire gli host contenitore Docker e Windows in un'unica posizione. Docker è un sistema di virtualizzazione software usato per creare contenitori che consentono di automatizzare la distribuzione del software nell'infrastruttura IT.
Importante
La soluzione monitoraggio contenitori viene eliminata gradualmente. Per monitorare gli ambienti Kubernetes, è consigliabile passare a Informazioni dettagliate sui contenitori di Monitoraggio di Azure.
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.
La soluzione indica quali contenitori sono in esecuzione, quale immagine del contenitore eseguono e dove vengono eseguiti i contenitori. È possibile visualizzare informazioni di controllo dettagliate che indicano i comandi usati con i contenitori. È anche possibile risolvere i problemi dei contenitori visualizzando i log centralizzati ed eseguendo ricerche al loro interno senza dover visualizzare gli host Docker o Windows in remoto. È possibile trovare contenitori che consumano una quantità eccessiva di risorse in un host. È anche possibile visualizzare informazioni centralizzate su utilizzo di CPU, memoria, archiviazione e rete e sulle prestazioni dei contenitori. Nei computer che eseguono Windows, è possibile centralizzare e confrontare i log dai contenitori Windows Server, Hyper-V e Docker. La soluzione supporta gli agenti di orchestrazione dei contenitori seguenti:
- Docker Swarm
- Controller di dominio/sistema operativo
- Service Fabric
È consigliabile usare Informazioni dettagliate sui contenitori di Monitoraggio di Azure per il monitoraggio di Kubernetes e Red Hat OpenShift:
- Servizio Azure Kubernetes (Configurare informazioni dettagliate sui contenitori per il servizio Azure Kubernetes)
- Red Hat OpenShift (Configurare informazioni dettagliate sui contenitori con Azure Arc)
Se sono stati distribuiti contenitori in Azure Service Fabric, è consigliabile abilitare sia la soluzione Service Fabric che questa soluzione per includere il monitoraggio degli eventi del cluster. Prima di abilitare la soluzione Service Fabric, vedere Uso della soluzione Service Fabric per comprendere cosa fornisce e come usarla.
Se si è interessati al monitoraggio delle prestazioni dei carichi di lavoro distribuiti in ambienti Kubernetes ospitati nel servizio Azure Kubernetes, vedere Monitoraggio del servizio Azure Kubernetes. La soluzione Monitoraggio contenitori non supporta il monitoraggio della piattaforma.
Il diagramma seguente illustra le relazioni tra vari host contenitore e agenti con Monitoraggio di Azure.
Requisiti di sistema e piattaforme supportate
Prima di iniziare, esaminare i dettagli seguenti per verificare che i prerequisiti siano soddisfatti.
Supporto della soluzione di monitoraggio del contenitore per l'orchestrazione di Docker e la piattaforma del sistema operativo
La tabella seguente illustra il supporto per l'orchestrazione e il monitoraggio del sistema operativo docker dell'inventario dei contenitori, delle prestazioni e dei log con Monitoraggio di Azure.
Orchestrazione di Docker | ACS | Linux | Windows | Contenitore Argomento |
Immagine Argomento |
Nodo Argomento |
Contenitore Prestazioni |
Contenitore Event |
Event File di log |
Contenitore File di log |
---|---|---|---|---|---|---|---|---|---|---|
Kubernetes | • | • | • | • | • | • | • | • | • | • |
Mesosphere Controller di dominio/sistema operativo |
• | • | • | • | • | • | • | • | • | |
Docker Swarm |
• | • | • | • | • | • | • | • | • | |
Servizio Infrastruttura |
• | • | • | • | • | • | • | • | • | |
Red Hat Open MAIUSC |
• | • | • | • | • | • | • | |||
Windows Server (autonomo) |
• | • | • | • | • | • | • | |||
Server Linux (autonomo) |
• | • | • | • | • | • | • |
Versioni di Docker supportate in Linux
- Docker da 1.11 a 1.13
- Docker CE e EE v17.06
Distribuzioni Linux x64 supportate come host del contenitore
- Ubuntu 14.04 LTS e 16.04 LTS
- CoreOS (stable)
- Amazon Linux 2016.09.0
- openSUSE 13.2
- openSUSE LEAP 42.2
- CentOS 7.2 e 7.3
- SLES 12
- RHEL 7.2 e 7.3
- Red Hat OpenShift Container Platform (OCP) 3.4 e 3.5
- ACS Mesosphere DC/OS da 1.7.3 a 1.8.8
- ACS Kubernetes da 1.4.5 a 1.6
- Gli eventi Kubernetes, l'inventario di Kubernetes e i processi contenitore sono supportati solo con la versione 1.4.1-45 e successive dell'agente di Log Analytics per Linux
- ACS Docker Swarm
Nota
Nel quadro della transizione in corso da Microsoft Operations Management Suite a Monitoraggio di Azure, l'agente di Operations Management Suite Agent per Windows o Linux verrà indicato come agente di Log Analytics per Windows e agente di Log Analytics per Linux.
Sistema operativo Windows supportato
- Windows Server 2016
- Versione di Windows per il 10° anniversario (professionale o aziendale)
Versioni di Docker supportate in Windows
- Docker 1.12 e 1.13
- Docker 17.03.0 e successive
Installazione e configurazione della soluzione
Usare le informazioni seguenti per installare e configurare la soluzione.
Aggiungere la soluzione Monitoraggio contenitori all'area di lavoro Log Analytics da Azure Marketplace o usando il processo descritto in Aggiungere soluzioni di monitoraggio dalla Raccolta soluzioni.
Installare e usare Docker con un agente di Log Analytics. In base al sistema operativo e all'agente di orchestrazione Docker, è possibile usare i metodi seguenti per configurare l'agente.
- Per gli host autonomi:
- Nei sistemi operativi Linux supportati installare ed eseguire Docker, quindi installare e configurare l'agente di Log Analytics per Linux.
- Non è possibile eseguire l'agente di Log Analytics per Linux in CoreOS, ma è possibile eseguire una versione con contenitori dell'agente di Log Analytics per Linux. Vedere la sezione Host del contenitore Linux inclusi CoreOS o Host del contenitore Linux Azure per enti pubblici incluso CoreOS se si usano contenitori nel cloud di Azure per enti pubblici.
- In Windows Server 2016 e Windows 10 installare il motore Docker e il client, quindi connettere un agente per raccogliere informazioni e inviarle a Monitoraggio di Azure. Se si dispone di un ambiente Windows, consultare Install and configure Windows container hosts (installare e configurare gli host contenitore di Windows).
- Per l'orchestrazione di multi-host Docker:
- Se si opera in un ambiente Red Hat OpenShift, vedere Configurare un agente di Log Analytics per Red Hat OpenShift.
- Se si dispone di un cluster Kubernetes con il servizio Azure Container:
- Vedere Configurare un agente Linux di Log Analytics per Kubernetes.
- Vedere Configurare un agente windows di Log Analytics per Kubernetes.
- Vedere Usare Helm per distribuire l'agente di Log Analytics in Linux Kubernetes.
- Se si ha un cluster DC/OS del servizio Azure Container, vedere Monitorare un cluster DC/OS del servizio Azure Container con Monitoraggio di Azure.
- Se si dispone di un ambiente in modalità Docker Swarm, vedere Configurare un agente di Log Analytics per Docker Swarm.
- Se si ha un cluster di Service Fabric, vedere Monitorare i contenitori con Monitoraggio di Azure.
- Per gli host autonomi:
Consultare l'articolo sul motore Docker in Windows per altre informazioni su come installare e configurare i motori di Docker sui computer che eseguono Windows.
Importante
Docker deve essere in esecuzione prima di installare l'agente di Log Analytics per Linux negli host di contenitori. Se l'agente era già stato installato prima di installare Docker, è necessario reinstallare l'agente di Log Analytics per Linux. Per altre informazioni su Docker, vedere il sito Web di Docker.
Installare e configurare gli host del contenitore Linux
Dopo aver installato Docker, usare le impostazioni seguenti per l'host di contenitori per configurare l'agente per l'uso con Docker. Sono necessari l'ID e la chiave dell'area di lavoro Log Analytics, che è possibile identificare nel portale di Azure. Nell'area di lavoro fare clic su Avvio> rapidocomputer per visualizzare l'ID dell'area di lavoro e la chiave primaria. Copiare e incollare entrambi i valori nell'editor predefinito.
Per tutti gli host contenitore Linux ad eccezione di CoreOS:
- Per altre informazioni e per la procedura di installazione dell'agente di Log Analytics per Linux, vedere Panoramica dell'agente di Log Analytics.
Per tutti gli host contenitore Linux, incluso CoreOS:
Avviare il contenitore da monitorare. Modificare e usare l'esempio seguente:
sudo docker run --privileged -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/lib/docker/containers:/var/lib/docker/containers -e WSID="your workspace id" -e KEY="your key" -h=`hostname` -p 127.0.0.1:25225:25225 --name="omsagent" --restart=always mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest
Per tutti gli host contenitore Linux Azure per enti pubblici inclusi CoreOS:
Avviare il contenitore da monitorare. Modificare e usare l'esempio seguente:
sudo docker run --privileged -d -v /var/run/docker.sock:/var/run/docker.sock -v /var/log:/var/log -v /var/lib/docker/containers:/var/lib/docker/containers -e WSID="your workspace id" -e KEY="your key" -e DOMAIN="opinsights.azure.us" -p 127.0.0.1:25225:25225 -p 127.0.0.1:25224:25224/udp --name="omsagent" -h=`hostname` --restart=always mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest
Passaggio dall'uso di un agente Linux installato a un agente in un contenitore
Se in precedenza veniva usato l'agente installato direttamente e si vuole usare invece un agente in esecuzione in un contenitore, prima è necessario rimuovere l'agente di Log Analytics per Linux. Vedere Disinstallazione dell'agente di Log Analytics per Linux per comprendere come disinstallare correttamente l'agente.
Configurare un agente di Log Analytics per Docker Swarm
È possibile eseguire l'agente di Log Analytics come un servizio globale in Docker Swarm. Usare le informazioni seguenti per creare un servizio dell'agente di Log Analytics. È necessario fornire l'ID dell'area di lavoro Log Analytics e la chiave primaria.
Eseguire quanto segue sul nodo principale.
sudo docker service create --name omsagent --mode global --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mount type=bind,source=/var/lib/docker/containers,destination=/var/lib/docker/containers -e WSID="<WORKSPACE ID>" -e KEY="<PRIMARY KEY>" -p 25225:25225 -p 25224:25224/udp --restart-condition=on-failure mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest
Proteggere i segreti per Docker Swarm
Per Docker Swarm, una volta creato il segreto per l'ID area di lavoro e la chiave primaria, usare le informazioni seguenti per creare i segreti.
Eseguire quanto segue sul nodo principale.
echo "WSID" | docker secret create WSID - echo "KEY" | docker secret create KEY -
Verificare che i segreti siano stati creati correttamente.
keiko@swarmm-master-13957614-0:/run# sudo docker secret ls
ID NAME CREATED UPDATED j2fj153zxy91j8zbcitnjxjiv WSID 43 minutes ago 43 minutes ago l9rh3n987g9c45zffuxdxetd9 KEY 38 minutes ago 38 minutes ago
Eseguire questo comando per impostare i segreti per l'agente di Log Analytics nei contenitori.
sudo docker service create --name omsagent --mode global --mount type=bind,source=/var/run/docker.sock,destination=/var/run/docker.sock --mount type=bind,source=/var/lib/docker/containers,destination=/var/lib/docker/containers --secret source=WSID,target=WSID --secret source=KEY,target=KEY -p 25225:25225 -p 25224:25224/udp --restart-condition=on-failure mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest
Configurare un agente di Log Analytics per Red Hat OpenShift
Sono disponibili tre modi per aggiungere l'agente di Log Analytics a Red Hat OpenShift e avviare la raccolta dei dati di monitoraggio del contenitore.
- Installare l'agente di Log Analytics per Linux direttamente in ogni nodo OpenShift
- Abilitare l'estensione della macchina virtuale di Log Analytics in ogni nodo OpenShift che risiede in Azure
- Installare l'agente di Log Analytics come set di daemon OpenShift
In questa sezione viene illustrata la procedura necessaria per installare l'agente di Log Analytics come un DaemonSet OpenShift.
Accedere al nodo principale OpenShift e copiare il file yaml ocp-omsagent.yaml da GitHub nel nodo principale e modificare il valore con l'ID dell'area di lavoro Log Analytics la chiave primaria.
Eseguire i comandi seguenti per creare un progetto per Monitoraggio di Azure e impostare l'account utente.
oc adm new-project omslogging --node-selector='zone=default' oc project omslogging oc create serviceaccount omsagent oc adm policy add-cluster-role-to-user cluster-reader system:serviceaccount:omslogging:omsagent oc adm policy add-scc-to-user privileged system:serviceaccount:omslogging:omsagent
Per distribuire DaemonSet, eseguire il comando seguente:
oc create -f ocp-omsagent.yaml
Per verificare che sia configurato e funzioni correttamente, digitare quanto segue:
oc describe daemonset omsagent
L'output deve essere simile a:
[ocpadmin@khm-0 ~]$ oc describe ds oms Name: oms Image(s): mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest Selector: name=omsagent Node-Selector: zone=default Labels: agentVersion=1.4.0-12 dockerProviderVersion=10.0.0-25 name=omsagent Desired Number of Nodes Scheduled: 3 Current Number of Nodes Scheduled: 3 Number of Nodes Misscheduled: 0 Pods Status: 3 Running / 0 Waiting / 0 Succeeded / 0 Failed No events.
Se si intende usare i segreti per proteggere l'ID e la chiave primaria dell'area di lavoro Log Analytics quando si usa il file yaml DaemonSet dell'agente di Log Analytics, seguire questa procedura.
Accedere al nodo principale OpenShift e copiare il file yaml ocp-ds-omsagent.yaml e il segreto che genera lo script ocp-secretgen.sh da GitHub. Questo script genererà il file yaml dei segreti per l'ID e la chiave primaria dell'area di lavoro Log Analytics per proteggere le informazioni segrete.
Eseguire i comandi seguenti per creare un progetto per Monitoraggio di Azure e impostare l'account utente. Il segreto che genera lo script chiede di specificare l'ID
<WSID>
e la chiave primaria<KEY>
dell'area di lavoro Log Analytics e, al completamento, crea il file ocp-secret.yaml.oc adm new-project omslogging --node-selector='zone=default' oc project omslogging oc create serviceaccount omsagent oc adm policy add-cluster-role-to-user cluster-reader system:serviceaccount:omslogging:omsagent oc adm policy add-scc-to-user privileged system:serviceaccount:omslogging:omsagent
Distribuire il file del segreto eseguendo il comando seguente:
oc create -f ocp-secret.yaml
Verificare la distribuzione eseguendo il comando seguente:
oc describe secret omsagent-secret
L'output deve essere simile a:
[ocpadmin@khocp-master-0 ~]$ oc describe secret omsagent-secret Name: omsagent-secret Namespace: omslogging Labels: <none> Annotations: <none> Type: Opaque Data ==== KEY: 89 bytes WSID: 37 bytes
Distribuire il file yaml DaemonSet dell'agente di Log Analytics eseguendo questo comando:
oc create -f ocp-ds-omsagent.yaml
Verificare la distribuzione eseguendo il comando seguente:
oc describe ds oms
L'output deve essere simile a:
[ocpadmin@khocp-master-0 ~]$ oc describe ds oms Name: oms Image(s): mcr.microsoft.com/azuremonitor/containerinsights/ciprod:microsoft-oms-latest Selector: name=omsagent Node-Selector: zone=default Labels: agentVersion=1.4.0-12 dockerProviderVersion=10.0.0-25 name=omsagent Desired Number of Nodes Scheduled: 3 Current Number of Nodes Scheduled: 3 Number of Nodes Misscheduled: 0 Pods Status: 3 Running / 0 Waiting / 0 Succeeded / 0 Failed No events.
Configurare un agente Linux di Log Analytics per Kubernetes
Per Kubernetes è possibile usare uno script per generare il file yaml dei segreti per l'ID area di lavoro e la chiave primaria per installare l'agente di Log Analytics per Linux. Nella pagina Log Analytics Docker/Kubernetes di GitHub sono disponibili file usabili con o senza informazioni segrete.
- L'agente di Log Analytics predefinito per Linux DaemonSet non include informazioni segrete (omsagent.yaml)
- Il file yaml DaemonSet dell'agente di Log Analytics per Linux usa le informazioni segrete (omsagent-ds-secrets.yaml) con script per la generazione di segreti per generare il file yaml dei segreti (omsagentsecret.yaml).
È possibile scegliere di creare DaemonSet dell'agente OMS con o senza segreti.
File DaemonSet con estensione yaml predefinito dell'agente OMS senza segreti
Per il file DaemonSet con estensione yaml predefinito dell'agente di Log Analytics, sostituire
<WSID>
e<KEY>
a WSID e KEY. Copiare il file nel nodo principale ed eseguire le operazioni seguenti:sudo kubectl create -f omsagent.yaml
File DaemonSet con estensione yaml predefinito dell'agente OMS con segreti
Per usare il DaemonSet dell'agente di Log Analytics con informazioni segrete, in primo luogo creare i segreti.
Copiare lo script e il file modello dei segreti e assicurarsi che siano nella stessa directory.
- Script per la generazione di segreti: secret-gen.sh
- Modello di segreto: secret-template.yaml
Eseguire lo script come nell'esempio seguente. Lo script richiede l'ID e la chiave primaria dell'area di lavoro Log Analytics. Dopo aver specificato queste credenziali, lo script crea un file yaml dei segreti che può essere eseguito.
#> sudo bash ./secret-gen.sh
Creare il pod dei segreti eseguendo le operazioni seguenti:
sudo kubectl create -f omsagentsecret.yaml
Per la verifica eseguire le operazioni seguenti:
keiko@ubuntu16-13db:~# sudo kubectl get secrets
L'output deve essere simile a:
NAME TYPE DATA AGE default-token-gvl91 kubernetes.io/service-account-token 3 50d omsagent-secret Opaque 2 1d
keiko@ubuntu16-13db:~# sudo kubectl describe secrets omsagent-secret
L'output deve essere simile a:
Name: omsagent-secret Namespace: default Labels: <none> Annotations: <none> Type: Opaque Data ==== WSID: 36 bytes KEY: 88 bytes
Creare il DaemonSet dell'agente OMS eseguendo l'istruzione
sudo kubectl create -f omsagent-ds-secrets.yaml
Verificare che il DaemonSet dell'agente di Log Analytics sia in esecuzione, in modo analogo al seguente:
keiko@ubuntu16-13db:~# sudo kubectl get ds omsagent
NAME DESIRED CURRENT NODE-SELECTOR AGE omsagent 3 3 <none> 1h
Per Kubernetes usare uno script per generare il file dei segreti con estensione yaml per l'ID area di lavoro e la chiave primaria per l'agente di Log Analytics per Linux. Usare le informazioni di esempio seguenti con il file yaml dell'agente OMS per proteggere le informazioni segrete.
keiko@ubuntu16-13db:~# sudo kubectl describe secrets omsagent-secret
Name: omsagent-secret
Namespace: default
Labels: <none>
Annotations: <none>
Type: Opaque
Data
====
WSID: 36 bytes
KEY: 88 bytes
Configurare un agente di Windows di Log Analytics per Kubernetes
Per Windows Kubernetes è possibile usare uno script per generare il file yaml dei segreti per l'ID area di lavoro e la chiave primaria per installare l'agente di Log Analytics. Nella pagina Log Analytics Docker/Kubernetes di GitHub sono disponibili file usabili con informazioni segrete. È necessario installare l'agente di Log Analytics separatamente per i nodi master e agente.
Per usare il DaemonSet dell'agente di Log Analytics con informazioni segrete nel nodo master, in primo luogo eseguire l'accesso e creare i segreti.
Copiare lo script e il file modello dei segreti e assicurarsi che siano nella stessa directory.
- Script per la generazione di segreti: secret-gen.sh
- Modello di segreto: secret-template.yaml
Eseguire lo script come nell'esempio seguente. Lo script richiede l'ID e la chiave primaria dell'area di lavoro Log Analytics. Dopo aver specificato queste credenziali, lo script crea un file yaml dei segreti che può essere eseguito.
#> sudo bash ./secret-gen.sh
Creare il DaemonSet dell'agente OMS eseguendo l'istruzione
kubectl create -f omsagentsecret.yaml
Per verificare, eseguire quanto segue:
root@ubuntu16-13db:~# kubectl get secrets
L'output deve essere simile a:
NAME TYPE DATA AGE default-token-gvl91 kubernetes.io/service-account-token 3 50d omsagent-secret Opaque 2 1d root@ubuntu16-13db:~# kubectl describe secrets omsagent-secret Name: omsagent-secret Namespace: default Labels: <none> Annotations: <none> Type: Opaque Data ==== WSID: 36 bytes KEY: 88 bytes
Creare il DaemonSet dell'agente OMS eseguendo l'istruzione
kubectl create -f ws-omsagent-de-secrets.yaml
Verificare che il DaemonSet dell'agente di Log Analytics sia in esecuzione, in modo analogo al seguente:
root@ubuntu16-13db:~# kubectl get deployment omsagent NAME DESIRED CURRENT NODE-SELECTOR AGE omsagent 1 1 <none> 1h
Per installare l'agente nel nodo del lavoro, che esegue Windows, seguire i passaggi della sezione Installare e configurare gli host del contenitore Windows.
Usare Helm per distribuire l'agente di Log Analytics in Linux Kubernetes
Per usare Helm al fine di distribuire l'agente di Log Analytics in ambiente Kubernetes Linux, eseguire questa procedura.
Creare il DaemonSet dell'agente OMS eseguendo l'istruzione
helm install --name omsagent --set omsagent.secret.wsid=<WSID>,omsagent.secret.key=<KEY> stable/msoms
I risultati saranno simili ai seguenti:
NAME: omsagent LAST DEPLOYED: Tue Sep 19 20:37:46 2017 NAMESPACE: default STATUS: DEPLOYED RESOURCES: ==> v1/Secret NAME TYPE DATA AGE omsagent-msoms Opaque 3 3s ==> v1beta1/DaemonSet NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE-SELECTOR AGE omsagent-msoms 3 3 3 3 3 <none> 3s
È possibile controllare lo stato dell'agente OSM eseguendo:
helm status "omsagent"
e l'output sarà simile al seguente:keiko@k8s-master-3814F33-0:~$ helm status omsagent LAST DEPLOYED: Tue Sep 19 20:37:46 2017 NAMESPACE: default STATUS: DEPLOYED RESOURCES: ==> v1/Secret NAME TYPE DATA AGE omsagent-msoms Opaque 3 17m ==> v1beta1/DaemonSet NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE-SELECTOR AGE omsagent-msoms 3 3 3 3 3 <none> 17m
Per altre informazioni, visitare il grafico Helm della soluzione contenitore.
Installare e configurare gli host del contenitore Windows
Usare le informazioni contenute nella sezione Installare e configurare gli host del contenitore Windows.
Preparazione prima dell'installazione degli agenti di Windows
Prima di installare gli agenti nei computer che eseguono Windows, è necessario configurare il servizio Docker. La configurazione consente all'agente Windows o all'estensione della macchina virtuale Monitoraggio di Azure di usare il socket TCP Docker in modo che gli agenti possano accedere al daemon Docker in remoto e acquisire i dati per il monitoraggio.
Per configurare il servizio Docker
Eseguire i comandi di PowerShell seguenti per abilitare la pipe TCP e la pipe denominata per Windows Server:
Stop-Service docker
dockerd --unregister-service
dockerd --register-service -H npipe:// -H 0.0.0.0:2375
Start-Service docker
Per altre informazioni sulla configurazione del daemon Docker usata con contenitori Windows, vedere Motore Docker in Windows.
Installare gli agenti Windows
Per abilitare il monitoraggio dei contenitori Windows e Hyper-V, installare Microsoft Monitoring Agent (MMA) nei computer Windows che sono host del contenitore. Per i computer che eseguono Windows nell'ambiente locale, vedere Connettere i computer Windows a Monitoraggio di Azure. Per le macchine virtuali in esecuzione in Azure, connettersi a Monitoraggio di Azure usando l'estensione della macchina virtuale.
È possibile monitorare i contenitori Windows in esecuzione in Service Fabric. Solo le macchine virtuali in esecuzione in Azure e i computer che eseguono Windows nell'ambiente locale, tuttavia, sono attualmente supportati da Service Fabric.
È possibile verificare che la soluzione Monitoraggio contenitori sia impostata correttamente per Windows. Per verificare che il Management Pack sia stato scaricato correttamente, cercare ContainerManagement.xxx. Il file dovrebbe trovarsi nella cartella C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs.
Componenti della soluzione
Nel portale di Azure passare alla Raccolta soluzioni e aggiungere la soluzione Monitoraggio contenitori. Se si usano agenti Windows, il Management Pack seguente viene installato in ogni computer con un agente quando si aggiunge questa soluzione. Per il Management Pack non è richiesta alcuna configurazione o manutenzione.
- ContainerManagement.xxx installato in C:\Programmi\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs
Informazioni dettagliate sulla raccolta di dati dei contenitori
La soluzione Monitoraggio contenitori raccoglie le varie metriche delle prestazioni e i vari dati di log da host del contenitore e contenitori usando gli agenti abilitati.
I dati vengono raccolti ogni tre minuti dai tipi di agenti seguenti.
Record dei contenitori
La tabella seguente mostra esempi di record raccolti dalla soluzione Monitoraggio contenitori e i tipi di dati visualizzati nei risultati della ricerca log.
Tipo di dati | Tipo di dati in Ricerca log | Campi |
---|---|---|
Prestazioni per host e contenitori | Perf |
Computer, ObjectName, CounterName (%Processor Time, Disk Reads MB, Disk Scritture MB, MEMORIA MB, Network Receive Bytes, Network Send Bytes, Processor Usage sec, Network), CounterValue,TimeGenerated, CounterPath, SourceSystem |
Inventario contenitori | ContainerInventory |
TimeGenerated, Computer, container name, ContainerHostname, Image, ImageTag, ContainerState, ExitCode, EnvironmentVar, Command, CreatedTime, StartedTime, FinishedTime, SourceSystem, ContainerID, ImageID |
Inventario delle immagini dei contenitori | ContainerImageInventory |
TimeGenerated, Computer, Image, ImageTag, ImageSize, VirtualSize, Running, Paused, Stopped, Failed, SourceSystem, ImageID, TotalContainer |
Log contenitori | ContainerLog |
TimeGenerated, Computer, image ID, container name, LogEntrySource, LogEntry, SourceSystem, ContainerID |
Log servizio contenitori | ContainerServiceLog |
TimeGenerated, Computer, TimeOfCommand, Image, Command, SourceSystem, ContainerID |
Inventario di nodi contenitore | ContainerNodeInventory_CL |
TimeGenerated, Computer, ClassName_s, DockerVersion_s, OperatingSystem_s, Volume_s, Network_s, NodeRole_s, OrchestratorType_s, InstanceID_g, SourceSystem |
Inventario di Kubernetes | KubePodInventory_CL |
TimeGenerated, Computer, PodLabel_deployment_s, PodLabel_deploymentconfig_s, PodLabel_docker_registry_s, Name_s, Namespace_s, PodStatus_s, PodIp_s, PodUid_g, PodCreationTimeStamp_t, SourceSystem |
Processo contenitore | ContainerProcess_CL |
TimeGenerated, Computer, Pod_s, Namespace_s, ClassName_s, InstanceID_s, Uid_s, PID_s, PPID_s, C_s, STIME_s, Tty_s, TIME_s, Cmd_s, Id_s, Name_s, SourceSystem |
Eventi di Kubernetes | KubeEvents_CL |
TimeGenerated, Computer, Name_s, ObjectKind_s, Namespace_s, Reason_s, Type_s, SourceComponent_s, SourceSystem, Message |
Le etichette aggiunte ai tipi di dati PodLabel sono etichette personalizzate. Le etichette PodLabel aggiunte indicate nella tabella sono esempi.
PodLabel_deployment_s
, PodLabel_deploymentconfig_s
, PodLabel_docker_registry_s
saranno quindi diverse nel set di dati dell'ambiente e in genere saranno simili a PodLabel_yourlabel_s
.
Monitorare i contenitori
Dopo aver abilitato la soluzione nella portale di Azure, il riquadro Contenitori mostra informazioni di riepilogo sugli host del contenitore e sui contenitori in esecuzione negli host.
Il riquadro visualizza una panoramica del numero di contenitori nell'ambiente e indica se i contenitori presentano errori, sono in esecuzione oppure sono stati arrestati.
Uso del dashboard Containers (Contenitori)
Fare clic sul riquadro Containers (Contenitori). Le visualizzazioni sono organizzate in base agli elementi seguenti:
- Eventi del contenitore: visualizza lo stato dei contenitori e i computer con contenitori non riusciti.
- Log contenitori: visualizza un grafico dei file di log dei contenitori generati nel corso del tempo e un elenco di computer con il numero più elevato di file di log.
- Eventi Kubernetes: visualizza un grafico degli eventi di Kubernetes generati nel corso del tempo e un elenco dei motivi per cui i pod hanno generato gli eventi. Questo set di dati viene usato solo negli ambienti Linux.
- Inventario degli spazi dei nomi Kubernetes: visualizza il numero di spazi dei nomi e di pod e la gerarchia. Questo set di dati viene usato solo negli ambienti Linux.
- Inventario nodi del contenitore: visualizza il numero di tipi di orchestrazioni usati nei nodi/host del contenitore. I nodi/host del computer vengono anche indicati dal numero di contenitori. Questo set di dati viene usato solo negli ambienti Linux.
- Inventario immagini contenitore: visualizza il numero totale di immagini del contenitore usate e il numero di tipi di immagini. Il numero delle immagini è indicato anche dal tag immagine.
- Stato dei contenitori: visualizza il numero totale di nodi contenitore/computer host con contenitori in esecuzione. I computer vengono anche indicati dal numero di host in esecuzione.
- Processi del contenitore: visualizza un grafico a linee dei processi del contenitore in esecuzione nel corso del tempo. I contenitori vengono anche indicati dal comando/processo in esecuzione nei contenitori. Questo set di dati viene usato solo negli ambienti Linux.
- Prestazioni CPU contenitore: visualizza un grafico a linee dell'utilizzo medio della CPU nel corso del tempo per i nodi/host del computer. Elenca anche i nodi/host del computer in base all'utilizzo medio della CPU.
- Prestazioni memoria contenitore: visualizza un grafico a linee dell'utilizzo della memoria nel corso del tempo. Elenca anche l'utilizzo della memoria del computer in base al nome dell'istanza.
- Prestazioni computer: visualizza i grafici a linee di percentuale di prestazioni della CPU nel corso del tempo, percentuale di utilizzo della memoria nel corso del tempo e megabyte di spazio su disco nel corso del tempo. È possibile passare il puntatore su una linea di un grafico per visualizzare altri dettagli.
Ogni area del dashboard è una rappresentazione visiva di una ricerca eseguita sui dati raccolti.
Nel pannello Stato del contenitore fare clic sull'area superiore come illustrato di seguito.
Si apre Log Analytics, visualizzando informazioni sullo stato dei contenitori.
A questo punto è possibile modificare la query di ricerca per trovare specifiche informazioni di interesse. Per altre informazioni sulle query per i log, vedere Query di log in Monitoraggio di Azure.
Risolvere i problemi cercando un contenitore con errori
Log Analytics contrassegna un contenitore come Non riuscito se il contenitore è stato terminato con un codice di uscita diverso da zero. È possibile visualizzare una panoramica degli errori nell'ambiente nell'area Contenitori non riusciti.
Per trovare i contenitori non riusciti
- Fare clic sull'area Stato del contenitore.
- Log Analytics apre e visualizza lo stato dei contenitori, simile al seguente.
- Espandere la riga Non riuscita e fare clic su + per aggiungerne i criteri alla query. Impostare quindi come commento la riga Riepilogo nella query.
- Eseguire la query e quindi espandere una riga nei risultati per visualizzare l'ID immagine.
- Digitare quanto segue nella query di log.
ContainerImageInventory | where ImageID == <ImageID>
visualizza i dettagli dell'immagine, ad esempio dimensioni e numero di immagini arrestate e non riuscite.
Eseguire query sui log per i dati del contenitore
Nella risoluzione di un errore specifico può essere utile vedere dove l'errore si verifica nell'ambiente. I tipi di log seguenti consentono di creare query per ottenere le informazioni necessarie.
- ContainerImageInventory: usare questo tipo per trovare informazioni organizzate per immagine e visualizzare le informazioni sulle immagini, ad esempio ID o dimensioni.
- ContainerInventory: usare questo tipo per ottenere informazioni sul percorso dei contenitori, i relativi nomi e le immagini che eseguono.
- ContainerLog: usare questo tipo per trovare informazioni e voci specifiche del registro errori.
- ContainerNodeInventory_CL Usare questo tipo quando si vogliono ottenere informazioni sull'host/nodo in cui si trovano i contenitori. Fornisce informazioni su versione di Docker, tipo di orchestrazione, risorsa di archiviazione e rete.
- ContainerProcess_CL Usare questo tipo per visualizzare velocemente il processo in esecuzione nel contenitore.
- ContainerServiceLog: usare questo tipo per trovare informazioni di audit trail per il daemon Docker, ad esempio comandi di avvio, arresto, eliminazione o pull.
- KubeEvents_CL Usare questo tipo per visualizzare gli eventi Kubernetes.
- KubePodInventory_CL Usare questo tipo quando si vogliono comprendere le informazioni sulla gerarchia del cluster.
Per eseguire query sui log per i dati del contenitore
Scegliere un'immagine non riuscita di recente e trovare i relativi log degli errori. Iniziare cercando il nome di un contenitore che esegue l'immagine con una ricerca ContainerInventory. Cercare ad esempio
ContainerInventory | where Image == "ubuntu" and ContainerState == "Failed"
Espandere qualsiasi riga nei risultati per visualizzare i dettagli per il contenitore.
Query di log di esempio
Spesso è utile compilare query iniziando con qualche esempio da modificare in funzione dell'ambiente. Come punto di partenza, è possibile sperimentare l'area QUERY DI ESEMPIO all'estrema destra della pagina della soluzione, per facilitare la creazione di query più avanzate.
Salvataggio delle query di log
Il salvataggio delle query è una funzionalità standard in Monitoraggio di Azure. Le query salvate potranno essere riusate rapidamente in futuro.
Dopo aver creato una query che si ritiene utile, salvarla facendo clic su Preferiti nella parte superiore della pagina Ricerca log. Sarà possibile accedere facilmente alla query in seguito dalla pagina Dashboard.
Rimozione della soluzione dall'area di lavoro
Per rimuovere la soluzione di monitoraggio dei contenitori, seguire le istruzioni per rimuovere le soluzioni usando una delle opzioni seguenti: portale di Azure, PowerShell o l'interfaccia della riga di comando di Azure
Passaggi successivi
Eseguire query sui log per visualizzare record di dati del contenitore dettagliati.