Soluzione di monitoraggio dei contenitori in Monitoraggio di Azure

Simbolo di Contenitori

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:

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.

Diagramma che mostra le relazioni tra Monitoraggio di Azure e host contenitore e agenti che si trovano nel cloud di Azure, in altri cloud e in una rete locale.

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.

  1. 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.

  2. 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:

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 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.

  1. Eseguire quanto segue sul nodo principale.

    echo "WSID" | docker secret create WSID -
    echo "KEY" | docker secret create KEY -
    
  2. 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
    
  3. 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.

In questa sezione viene illustrata la procedura necessaria per installare l'agente di Log Analytics come un DaemonSet OpenShift.

  1. 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.

  2. 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  
    
  3. Per distribuire DaemonSet, eseguire il comando seguente:

    oc create -f ocp-omsagent.yaml

  4. 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.

  1. 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.

  2. 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  
    
  3. Distribuire il file del segreto eseguendo il comando seguente:

    oc create -f ocp-secret.yaml

  4. 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  
    
  5. Distribuire il file yaml DaemonSet dell'agente di Log Analytics eseguendo questo comando:

    oc create -f ocp-ds-omsagent.yaml

  6. 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

  1. Per usare il DaemonSet dell'agente di Log Analytics con informazioni segrete, in primo luogo creare i segreti.

    1. 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
    2. 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
      
    3. Creare il pod dei segreti eseguendo le operazioni seguenti:

      sudo kubectl create -f omsagentsecret.yaml
      
    4. 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
      
    5. Creare il DaemonSet dell'agente OMS eseguendo l'istruzione sudo kubectl create -f omsagent-ds-secrets.yaml

  2. 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.

  1. 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.

    1. 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
    2. 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
      
    3. Creare il DaemonSet dell'agente OMS eseguendo l'istruzione kubectl create -f omsagentsecret.yaml

    4. 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
      
    5. Creare il DaemonSet dell'agente OMS eseguendo l'istruzione kubectl create -f ws-omsagent-de-secrets.yaml

  2. 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
    
  3. 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.

  1. Creare il DaemonSet dell'agente OMS eseguendo l'istruzione helm install --name omsagent --set omsagent.secret.wsid=<WSID>,omsagent.secret.key=<KEY> stable/msoms

  2. 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
    
  3. È 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.

Screenshot che mostra il riquadro Contenitori, che include un grafico a torta che mostra informazioni di riepilogo sui contenitori.

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.

Screenshot che mostra un dashboard per visualizzare i dati raccolti.

Screenshot che mostra un dashboard per visualizzare i dati raccolti, che includono lo stato, il processo, le prestazioni e l'inventario delle immagini dei contenitori.

Nel pannello Stato del contenitore fare clic sull'area superiore come illustrato di seguito.

Screenshot che mostra l'area Stato contenitore del dashboard Contenitori, che include un grafico a torta che mostra le informazioni sullo stato del contenitore.

Si apre Log Analytics, visualizzando informazioni sullo stato dei contenitori.

Screenshot che mostra Log Analytics con una query per lo stato dei contenitori e i risultati della ricerca.

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

  1. Fare clic sull'area Stato del contenitore.
    Screenshot che mostra l'area Stato contenitore del dashboard Contenitori, che include un grafico a torta che mostra le informazioni sullo stato del contenitore.
  2. Log Analytics apre e visualizza lo stato dei contenitori, simile al seguente.
    Screenshot che mostra Log Analytics con una query per lo stato dei contenitori e i risultati della ricerca.
  3. Espandere la riga Non riuscita e fare clic su + per aggiungerne i criteri alla query. Impostare quindi come commento la riga Riepilogo nella query. Screenshot che mostra la riga che deve essere impostata come commento.
  4. Eseguire la query e quindi espandere una riga nei risultati per visualizzare l'ID immagine.
    Screenshot che mostra come visualizzare l'ID immagine.
  5. 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.
    Screenshot che mostra Log Analytics con una query per un'immagine del contenitore e i dettagli sull'immagine.

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"
    Screenshot che mostra una ricerca di contenitori Ubuntu non riusciti e i risultati della ricerca.

    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.

Screenshot che mostra l'area Query di esempio con query di log di esempio.

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.