Condividi tramite


Soluzione di monitoraggio dei contenitori in Azure Monitor

Simbolo dei contenitori

Questo articolo descrive come configurare e usare la soluzione Monitoraggio contenitori in Monitoraggio di Azure, che consente di visualizzare e gestire gli host dei contenitori Docker e Windows in un'unica posizione. Docker è un sistema di virtualizzazione software usato per creare contenitori che automatizzano la distribuzione del software nell'infrastruttura IT.

Importante

La soluzione Monitoraggio contenitori viene eliminata gradualmente. Per monitorare gli ambienti Kubernetes, è consigliabile eseguire la transizione alle informazioni dettagliate sui contenitori di Monitoraggio di Azure.

Annotazioni

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. Stiamo aggiornando la terminologia per riflettere meglio il ruolo dei log in Azure Monitor. Per informazioni dettagliate, vedere Modifiche della terminologia di Monitoraggio di Azure.

La soluzione mostra quali contenitori sono in esecuzione, quale immagine di contenitore stanno utilizzando e dove si trovano. È possibile visualizzare informazioni dettagliate sul controllo che mostrano i comandi usati con i contenitori. È anche possibile risolvere i problemi dei contenitori visualizzando ed eseguendo ricerche nei log centralizzati senza dover visualizzare in remoto gli host Docker o Windows. È possibile trovare contenitori che potrebbero essere rumorosi e che consumano risorse in eccesso in un host. È anche possibile visualizzare informazioni centralizzate su CPU, memoria, archiviazione e utilizzo della rete e prestazioni per i 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
  • DC/OS
  • 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 a monitorare le prestazioni dei carichi di lavoro distribuiti negli ambienti Kubernetes ospitati nel servizio Azure Kubernetes, vedere Monitorare il servizio Azure Kubernetes. La soluzione Monitoraggio contenitori non supporta il monitoraggio di tale 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 gli host e gli agenti del contenitore 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 di soddisfare i prerequisiti.

Supporto della soluzione di monitoraggio dei contenitori per Docker Orchestrator e piattaforma del sistema operativo

La tabella seguente illustra il supporto per l'orchestrazione Docker e il monitoraggio del sistema operativo dell'inventario dei contenitori, delle prestazioni e dei log con Azure Monitor.

Orchestrazione Docker ACS Linux Windows Contenitore
Inventario
Immagine
Inventario
nodo
Inventario
Contenitore
Prestazioni
Contenitore
Evento
Evento
Registro
Contenitore
Registro
Kubernetes
Mesosfera
DC/OS
Docker
Aggregato
Servizio
Tessuto
Red Hat Open
Spostamento
Windows Server
(autonomo)
Linux Server
(autonomo)

Versioni di Docker supportate in Linux

  • Da Docker 1.11 a 1.13
  • Docker CE ed EE v17.06

Distribuzioni Linux x64 supportate come host di contenitori

  • 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
  • Da ACS Mesosphere DC/OS 1.7.3 a 1.8.8
  • Da ACS Kubernetes versione 1.4.5 alla versione 1.6
    • Gli eventi Kubernetes, l'inventario kubernetes e i processi del contenitore sono supportati solo con la versione 1.4.1-45 e successive dell'agente di Log Analytics per Linux
  • ACS Docker Swarm

Annotazioni

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
  • Edizione dell'anniversario di Windows 10 (Professional o Enterprise)

Versioni di Docker supportate in Windows

  • Docker 1.12 e 1.13
  • Docker 17.03.0 e versioni 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.

Vedere l'articolo Motore Docker in Windows per altre informazioni su come installare e configurare i motori Docker nei computer che eseguono Windows.

Importante

Docker deve essere in esecuzione prima di installare l'agente di Log Analytics per Linux negli host del contenitore. Se l'agente è 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 Docker.

Installare e configurare host contenitore Linux

Dopo aver installato Docker, usare le impostazioni seguenti per l'host contenitore per configurare l'agente da usare con Docker. Prima di tutto è necessario l'ID e la chiave dell'area di lavoro Log Analytics, che è possibile trovare nel portale di Azure. Nell'area di lavoro, fare clic su Quick Start>Computers per visualizzare il Workspace ID e la Primary Key. Copiare e incollare entrambi nell'editor preferito.

Per tutti gli host contenitore Linux tranne 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 di Azure per enti pubblici, 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/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 uno in un contenitore

Se in precedenza è stato usato l'agente installato direttamente e si vuole usare 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 informazioni su come disinstallare correttamente l'agente.

Configurare un agente di Log Analytics per Docker Swarm

È possibile eseguire l'agente di Log Analytics come servizio globale in Docker Swarm. Usare le informazioni seguenti per creare un servizio agente di Log Analytics. È necessario specificare l'ID dell'area di lavoro Log Analytics e la chiave primaria.

  • Eseguire quanto segue nel nodo master.

    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, dopo aver creato il segreto per ID area di lavoro e chiave primaria, usare le informazioni seguenti per creare le informazioni segrete.

  1. Eseguire quanto segue nel nodo master.

    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 il comando seguente per montare i segreti sull'agente di Log Analytics containerizzato.

    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

Esistono tre modi per aggiungere l'agente di Log Analytics a Red Hat OpenShift per iniziare a raccogliere i dati di monitoraggio dei contenitori.

In questa sezione vengono illustrati i passaggi necessari per installare l'agente di Log Analytics come set di daemon OpenShift.

  1. Accedere al nodo master OpenShift e copiare il file yaml ocp-omsagent.yaml da GitHub al nodo master e modificare il valore con l'ID dell'area di lavoro Log Analytics e con 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 il set di daemon, eseguire quanto segue:

    oc create -f ocp-omsagent.yaml

  4. Per verificare che sia configurato e funzionante correttamente, digitare quanto segue:

    oc describe daemonset omsagent

    e l'output dovrebbe essere simile al seguente:

    [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 vogliono usare segreti per proteggere l'ID dell'area di lavoro Log Analytics e la chiave primaria quando si usa il file yaml dell'agente di Log Analytics, seguire questa procedura.

  1. Accedere al nodo master OpenShift e copiare il file yaml ocp-ds-omsagent.yaml e il segreto che genera script ocp-secretgen.sh da GitHub. Questo script genererà il file yaml dei segreti per l'ID dell'area di lavoro Log Analytics e la chiave primaria per proteggere le informazioni segrete.

  2. Eseguire i comandi seguenti per creare un progetto per Monitoraggio di Azure e impostare l'account utente. Lo script di generazione segreta richiede l'ID dell'area di lavoro Log Analytics <WSID> e della chiave primaria <KEY>, e una volta completato, 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 segreto eseguendo quanto segue:

    oc create -f ocp-secret.yaml

  4. Verificare la distribuzione eseguendo quanto segue:

    oc describe secret omsagent-secret

    e l'output dovrebbe essere simile al seguente:

    [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 daemon-set dell'agente di Log Analytics eseguendo quanto segue:

    oc create -f ocp-ds-omsagent.yaml

  6. Verificare la distribuzione eseguendo quanto segue:

    oc describe ds oms

    e l'output dovrebbe essere simile al seguente:

    [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

Nel contesto di Kubernetes, si utilizza uno script per generare il file yaml dei segreti riguardante l'ID dell'area di lavoro e la chiave primaria, per installare l'agente di Log Analytics su Linux. Nella pagina GitHub di Docker Kubernetes di Log Analytics sono disponibili file che è possibile usare con o senza informazioni segrete.

  • L'agente di Log Analytics predefinito per Linux DaemonSet non dispone di informazioni segrete (omsagent.yaml)
  • Il file yaml dell'agente di Log Analytics per Linux DaemonSet usa informazioni segrete (omsagent-ds-secrets.yaml) con script di generazione dei segreti per generare il file yaml dei segreti (omsagentsecret.yaml).

È possibile scegliere di creare set di daemon omsagent con o senza segreti.

File yaml OMSagent DaemonSet predefinito senza segreti

  • Per il file yaml DaemonSet dell'agente predefinito di Log Analytics, sostituire i <WSID> e <KEY> con il tuo WSID e KEY. Copiare il file nel nodo master ed eseguire quanto segue:

    sudo kubectl create -f omsagent.yaml
    

File yaml OMSagent DaemonSet predefinito con segreti

  1. Per utilizzare il DaemonSet dell'agente di Log Analytics utilizzando le informazioni segrete, crea prima i segreti.

    1. Copiare lo script e il file modello segreto e assicurarsi che si trovino nella stessa directory.

      • Script di generazione di segreti - secret-gen.sh
      • modello segreto - secret-template.yaml
    2. Eseguire lo script, come nell'esempio seguente. Lo script richiede l'ID dell'area di lavoro Log Analytics e la chiave primaria e, dopo averli immessi, lo script crea un file yaml segreto in modo da poterlo eseguire.

      #> sudo bash ./secret-gen.sh
      
    3. Creare il pod dei segreti eseguendo quanto segue:

      sudo kubectl create -f omsagentsecret.yaml
      
    4. Per verificare, eseguire quanto segue:

      keiko@ubuntu16-13db:~# sudo kubectl get secrets
      

      L'output dovrebbe essere simile al seguente:

      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 dovrebbe essere simile al seguente:

      Name:           omsagent-secret
      Namespace:      default
      Labels:         <none>
      Annotations:    <none>
      
      Type:   Opaque
      
      Data
      ====
      WSID:   36 bytes
      KEY:    88 bytes
      
    5. Creare il set di daemon omsagent eseguendo sudo kubectl create -f omsagent-ds-secrets.yaml

  2. Verificare che il DaemonSet dell'agente di Log Analytics sia in esecuzione come nel seguente esempio:

    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 yaml dei segreti 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 omsagent 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 windows di Log Analytics per Kubernetes

In Kubernetes di Windows, si usa uno script per generare il file YAML delle credenziali per l'ID dell'area di lavoro e la chiave primaria al fine di installare l'agente di Log Analytics. Nella pagina GitHub di Docker Kubernetes di Log Analytics sono disponibili file che è possibile usare con le informazioni segrete. È necessario installare l'agente di Log Analytics separatamente per i nodi master e agent.

  1. Per usare il DaemonSet dell'agente Log Analytics con informazioni segrete sul nodo Master, accedere e creare prima il segreto.

    1. Copiare lo script e il file modello segreto e assicurarsi che si trovino nella stessa directory.

      • Script di generazione di segreti - secret-gen.sh
      • modello segreto - secret-template.yaml
    2. Eseguire lo script, come nell'esempio seguente. Lo script richiede l'ID dell'area di lavoro Log Analytics e la chiave primaria e, dopo averli immessi, lo script crea un file yaml segreto in modo da poterlo eseguire.

      #> sudo bash ./secret-gen.sh
      
    3. Creare il set di daemon omsagent eseguendo kubectl create -f omsagentsecret.yaml

    4. Per verificare, eseguire le operazioni seguenti:

      root@ubuntu16-13db:~# kubectl get secrets
      

      L'output dovrebbe essere simile al seguente:

      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 set di daemon omsagent eseguendo kubectl create -f ws-omsagent-de-secrets.yaml

  2. Verificare che il DaemonSet dell'agente di Log Analytics sia in esecuzione, come illustrato di seguito.

    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 di lavoro, che esegue Windows, seguire la procedura descritta nella sezione Installare e configurare gli host contenitore di Windows.

Usare Helm per distribuire l'agente di Log Analytics in Linux Kubernetes

Per usare helm per distribuire l'agente di Log Analytics nell'ambiente Kubernetes Linux, seguire questa procedura.

  1. Creare il set di daemon omsagent eseguendo 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 di omsagent 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 ulteriori informazioni, visitare Container Solution Helm Chart.

Installare e configurare i server host dei container Windows

Utilizzare le informazioni nella sezione indicata per installare e configurare gli host di contenitori Windows.

Preparazione prima di installare gli agenti 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 macchina virtuale di Monitoraggio di Azure di usare il socket TCP Docker in modo che gli agenti possano accedere al daemon Docker in remoto e per acquisire i dati per il monitoraggio.

Per configurare il servizio Docker

Eseguire i comandi di PowerShell seguenti per abilitare la pipe TCP e la named pipe 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 i contenitori di Windows, vedere Motore Docker in Windows.

Installare gli agenti Windows

Per abilitare il monitoraggio dei contenitori Windows e Hyper-V, installare il Microsoft Monitoring Agent (MMA) sui computer Windows che sono host di contenitori. Per i computer che eseguono Windows nell'ambiente locale, vedere Connettere computer Windows ad Azure Monitor. Per le macchine virtuali in esecuzione in Azure, collegarle ad Azure Monitor usando l'estensione macchina virtuale.

È possibile monitorare i contenitori Windows in esecuzione in Service Fabric. Tuttavia, solo le macchine virtuali in esecuzione in Azure e i computer che eseguono Windows nell'ambiente locale sono attualmente supportate per Service Fabric.

È possibile verificare che la soluzione Monitoraggio contenitori sia impostata correttamente per Windows. Per verificare se il Management Pack è stato scaricato correttamente, cercare ContainerManagement.xxx. I file devono trovarsi nella cartella C:\Programmi\Microsoft Monitoring Agent\Agent\Health Service State\Management Pack.

Componenti della soluzione

Dal portale di Azure passare alla Raccolta soluzioni e aggiungere la soluzione di monitoraggio dei contenitori. Se si usano agenti Windows, il Management Pack seguente viene installato in ogni computer con un agente quando si aggiunge questa soluzione. Non è necessaria alcuna configurazione o manutenzione per il Management Pack.

  • ContainerManagement.xxx installato in C:\Programmi\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs

Dettagli della raccolta dei dati dei contenitori

La soluzione Monitoraggio contenitori raccoglie varie metriche delle prestazioni e dati di registro dagli host dei contenitori e dai contenitori utilizzando agenti che abiliti.

I dati vengono raccolti ogni tre minuti dai tipi di agente seguenti.

Registri 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 nella ricerca dei log Campi
Prestazioni per host e contenitori Perf Computer, NomeOggetto, NomeContatore (%Processor Tempo, Letture Disco MB, Scritture Disco MB, Utilizzo Memoria MB, Ricezione Rete Byte, Invio Rete Byte, Utilizzo Processore sec, Rete), ValoreContatore,TempoGenerato, PercorsoContatore, SistemaSorgente
Inventario contenitori ContainerInventory TimeGenerated, Computer, container name, ContainerHostname, Image, ImageTag, ContainerState, ExitCode, EnvironmentVar, Command, CreatedTime, StartedTime, FinishedTime, SourceSystem, ContainerID, ImageID
Inventario delle immagini del contenitore ContainerImageInventory OraGenerata, Computer, Immagine, TagImmagine, DimensioneImmagine, DimensioneVirtuale, InEsecuzione, InPausa, Arrestato, Fallito, SistemaSorgente, IDImmagine, TotaleContainer
Log dei contenitori ContainerLog TimeGenerated, Computer, image ID, container name, LogEntrySource, LogEntry, SourceSystem, ContainerID
Log del servizio contenitore ContainerServiceLog TimeGenerated, Computer, TimeOfCommand, Immagine, Command, SistemaFonte, ContainerID
Inventario dei nodi del contenitore ContainerNodeInventory_CL TimeGenerated, Computer, ClassName_s, DockerVersion_s, OperatingSystem_s, Volume_s, Network_s, NodeRole_s, OrchestratorType_s, InstanceID_g, SourceSystem
Inventario 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 del 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 Kubernetes KubeEvents_CL TempoGenerato, Computer, Nome_s, TipoOggetto_s, Namespace_s, Motivo_s, Tipo_s, ComponenteSorgente_s, SistemaSorgente, Messaggio

Le etichette aggiunte ai tipi di dati PodLabel sono etichette personalizzate. Le etichette PodLabel aggiunte illustrate nella tabella sono esempi. Di conseguenza, PodLabel_deployment_s, PodLabel_deploymentconfig_s e PodLabel_docker_registry_s saranno diversi nel set di dati del vostro ambiente e somiglieranno genericamente a PodLabel_yourlabel_s.

Monitorare i contenitori

Dopo aver abilitato la soluzione nel portale di Azure, il riquadro Contenitori mostra le informazioni di riepilogo sugli host del contenitore e sui contenitori in esecuzione negli host.

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

Il riquadro mostra una panoramica del numero di contenitori presenti nell'ambiente e indica se sono in stato di errore, in esecuzione o arrestati.

Utilizzo del Cruscotto dei Contenitori

Fare clic sul riquadro Contenitori . Da qui vedrai le visualizzazioni organizzate in base a:

  • Eventi del contenitore : mostra lo stato del contenitore e i computer con contenitori non riusciti.
  • Log dei contenitori : mostra un grafico dei file di log dei contenitori generati nel tempo e un elenco di computer con il maggior numero di file di log.
  • Eventi Kubernetes : mostra un grafico degli eventi Kubernetes generati nel tempo e un elenco dei motivi per cui i pod hanno generato gli eventi. Questo set di dati viene usato solo negli ambienti Linux.
  • Namespace Kubernetes Inventario - Mostra il numero di namespace e pod e ne mostra la gerarchia. Questo set di dati viene usato solo negli ambienti Linux.
  • Inventario nodi contenitore : mostra il numero di tipi di orchestrazione usati nei nodi/host del contenitore. I nodi o gli host del computer sono elencati anche in base al numero di contenitori. Questo set di dati viene usato solo negli ambienti Linux.
  • Inventario immagini contenitore : mostra il numero totale di immagini del contenitore usate e il numero di tipi di immagine. Il numero di immagini viene elencato anche dal tag immagine.
  • Stato contenitori : mostra il numero totale di nodi contenitore/computer host che dispongono di contenitori in esecuzione. I computer sono elencati anche in base al numero di host in esecuzione.
  • Processo del contenitore : mostra un grafico a linee dei processi del contenitore in esecuzione nel tempo. I contenitori vengono elencati anche eseguendo comandi/processi all'interno dei contenitori. Questo set di dati viene usato solo negli ambienti Linux.
  • Container CPU Performance - mostra un grafico a linee dell'utilizzo medio della CPU nel tempo per i nodi/host dei computer. Elenca anche i nodi o gli host del computer in base all'utilizzo medio della CPU.
  • Prestazioni della memoria del contenitore : mostra un grafico a linee dell'utilizzo della memoria nel tempo. Elenca anche l'utilizzo della memoria del computer in base al nome dell'istanza.
  • Prestazioni computer : mostra i grafici a linee della percentuale delle prestazioni della CPU nel tempo, la percentuale di utilizzo della memoria nel tempo e i megabyte di spazio libero su disco nel tempo. È possibile passare il puntatore del mouse su qualsiasi riga 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, inclusi lo stato, il processo, le prestazioni e l'inventario delle immagini dei contenitori.

Nell'area Stato contenitore fare clic sull'area superiore, come illustrato di seguito.

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

Si apre Log Analytics, che visualizza informazioni sullo stato dei contenitori.

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

Da qui è possibile modificare la query di ricerca per modificarla per trovare le informazioni specifiche a cui si è interessati. Per ulteriori informazioni sulle query di log, vedere Log queries in Azure Monitor.

La risoluzione dei problemi tramite l'individuazione di un contenitore fallito

Log Analytics contrassegna un contenitore come Non riuscito se è stato chiuso con un codice di uscita diverso da zero. È possibile visualizzare una panoramica degli errori e dei fallimenti nell'ambiente nell'area Contenitori falliti.

Per trovare contenitori falliti

  1. Fare clic sull'area Stato contenitore .
    Screenshot che mostra l'area Stato dei contenitori del dashboard Contenitori, che include un grafico a torta relativo alle informazioni sullo stato dei contenitori.
  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 container e i risultati della ricerca.
  3. Espandi la riga fallita e fai clic su + per aggiungere i criteri alla query. Commentare quindi la riga Riepiloga nella query. Screenshot che mostra la riga che deve essere commentata.
  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> per visualizzare i dettagli sull'immagine, ad esempio le dimensioni dell'immagine e il numero di immagini arrestate e non riuscite.
    Screenshot che mostra Log Analytics con una query per un'immagine del container e i dettagli sull'immagine.

Eseguire query sui log per i dati del contenitore

Quando si risolve un errore specifico, può essere utile per vedere dove si verifica nell'ambiente. I tipi di log seguenti consentono di creare query per restituire le informazioni desiderate.

  • ContainerImageInventory : usare questo tipo quando si tenta di trovare informazioni organizzate per immagine e per visualizzare informazioni sull'immagine, ad esempio ID immagine o dimensioni.
  • ContainerInventory : usare questo tipo quando si vogliono ottenere informazioni sulla posizione del contenitore, sui nomi e sulle immagini in esecuzione.
  • ContainerLog : usare questo tipo quando si desidera trovare informazioni e voci specifiche del log degli errori.
  • ContainerNodeInventory_CL Usare questo tipo quando si vogliono ottenere informazioni sull'host/nodo in cui si trovano i contenitori. Fornisce la versione di Docker, il tipo di orchestrazione, l'archiviazione e le informazioni di rete.
  • ContainerProcess_CL Usare questo tipo per visualizzare rapidamente il processo in esecuzione all'interno del contenitore.
  • ContainerServiceLog : usare questo tipo quando si tenta di trovare informazioni sul 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 dei dati del contenitore

  • Scegli un'immagine che sai abbia fallito di recente e ricerca i log degli errori. Per iniziare, trovare un nome di contenitore che esegue tale immagine con una ricerca ContainerInventory . Ad esempio, cercare 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 tale contenitore.

Query di log di esempio

Spesso è utile creare query a partire da un esempio o due e quindi modificarle in base all'ambiente in uso. Come punto di partenza, è possibile sperimentare l'area QUERY DI ESEMPIO all'estrema destra della pagina della soluzione per creare 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. Salvandoli, avrai quelli che hai trovato utile per un uso futuro.

Dopo aver creato una query che risulta utile, salvarla facendo clic su Preferiti nella parte superiore della pagina Ricerca log. È quindi possibile accedervi facilmente in un secondo momento dalla pagina Dashboard personale .

Rimozione della soluzione dall'area di lavoro

Per rimuovere la soluzione di monitoraggio dei contenitori, seguire le istruzioni per rimuovere le soluzioni usando uno dei seguenti: portale di Azure, PowerShell o interfaccia della riga di comando di Azure

Passaggi successivi

Interroga i log per visualizzare dettagliati record di dati del container.