Solução de monitoramento de contêiner no Azure Monitor
Este artigo descreve como configurar e usar a solução de Monitoramento de Contêiner no Azure Monitor, a fim de exibir e gerenciar os hosts de contêiner do Docker e do Windows em um único local. O Docker é um sistema de virtualização de software usado para criar contêineres que automatizam a implantação de software para infraestrutura de TI.
Importante
A solução de Monitoramento de Contêiner está sendo preterida. Para monitorar ambientes do Kubernetes, faça a transição para os Insights de Contêiner do Azure Monitor.
Observação
Este artigo foi atualizado recentemente para usar o termo logs do Azure Monitor em vez de Log Analytics. Os dados de log ainda são armazenados em um espaço de trabalho do Log Analytics e ainda são coletados e analisados pelo mesmo serviço do Log Analytics. Estamos atualizando a terminologia para refletir melhor a função dos logs no Azure Monitor. Confira as alterações de terminologia do Azure Monitor para obter detalhes.
A solução mostra quais contêineres estão em execução, qual imagem de contêiner eles estão executando e onde os contêineres estão em execução. Você pode exibir informações detalhadas de auditoria, mostrando os comandos usados com contêineres. E você pode solucionar os problemas de contêineres exibindo e pesquisando logs centralizados sem precisar exibir remotamente os hosts do Docker ou do Windows. Você pode encontrar contêineres que podem estar com ruídos e consumindo recursos em excesso em um host. E você pode exibir o uso de CPU, memória, armazenamento e rede e informações de desempenho centralizadas para contêineres. Nos computadores que executam o Windows, você pode centralizar e comparar os logs do Windows Server, do Hyper-V e dos contêineres do Docker. A solução oferece suporte aos orquestradores de contêiner a seguir:
- Docker Swarm
- DC/OS
- Service Fabric
É recomendável usar os insights de Contêiner do Azure Monitor para monitorar o Kubernetes e o Red Hat OpenShift:
- AKS (Configurar insights de Contêiner para o AKS)
- Red Hat OpenShift (Configurar insights de Contêiner usando o Azure Arc)
Se você tiver contêineres implantados no Azure Service Fabric, habilite a solução Service Fabric e esta solução para incluir o monitoramento de eventos de cluster. Antes de habilitar a solução Service Fabric, veja Uso da solução Service Fabric para entender o que ela oferece e como usá-la.
Se você estiver interessado em monitorar o desempenho de suas cargas de trabalho implantadas em ambientes do Kubernetes hospedados no Azure Kubernetes Service (AKS), consulte Monitorar o Serviço do Azure Kubernetes. A solução de Monitoramento de Contêiner não inclui suporte para monitorar essa plataforma.
O diagrama a seguir mostra as relações entre os vários agentes e hosts de contêiner com o Azure Monitor.
Requisitos do sistema e plataformas com suporte
Antes de começar, examine os detalhes a seguir para verificar se você atende aos pré-requisitos.
Suporte de solução de monitoramento de contêiner para Docker Orchestrator e plataforma do SO
A tabela a seguir descreve o suporte oferecido pela orquestração do Docker e pelo monitoramento de sistema operacional ao inventário de contêineres, ao desempenho e ao logs com o Azure Monitor.
Orquestração do Docker | ACS | Linux | Windows | Contêiner Inventário |
Imagem Inventário |
Nó Inventário |
Contêiner Desempenho |
Contêiner Evento |
Evento Log |
Contêiner Log |
---|---|---|---|---|---|---|---|---|---|---|
Kubernetes | • | • | • | • | • | • | • | • | • | • |
Mesosphere DC/OS |
• | • | • | • | • | • | • | • | • | |
Docker Swarm |
• | • | • | • | • | • | • | • | • | |
Serviço Fabric |
• | • | • | • | • | • | • | • | • | |
Red Hat Open Shift |
• | • | • | • | • | • | • | |||
Windows Server (autônomo) |
• | • | • | • | • | • | • | |||
Linux Server (autônomo) |
• | • | • | • | • | • | • |
Versões do Docker com suporte no Linux
- Docker 1.11 a 1.13
- Docker CE e EE v17.06
As distribuições de Linux x64 têm suporte como hosts de contêiner
- 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 1.7.3 a 1.8.8
- ACS Kubernetes 1.4.5 a 1.6
- Eventos de Kubernetes, inventário do Kubernetes e processos de contêiner só têm suporte com versão 1.4.1-45 e posterior do Agente do Log Analytics para Linux
- ACS Docker Swarm
Observação
Como parte da transição contínua do Microsoft Operations Management Suite para o Azure Monitor, o Agente do OMS para Windows ou Linux será chamado de agente do Log Analytics para Windows e agente do Log Analytics para Linux.
Sistema operacional Windows com suporte
- Windows Server 2016
- Edição de aniversário do Windows 10 (Professional ou Enterprise)
Versões do Docker do Windows com suporte
- Docker 1.12 e 1.13
- Docker 17.03.0 e mais recente
Instalando e configurando a solução
Use as informações a seguir para instalar e configurar a solução.
Adicione a solução de Monitoramento de Contêiner ao workspace do Log Analytics por meio do Azure Marketplaceou usando o processo descrito em Adicionar soluções de monitoramento por meio da Galeria de Soluções.
Instale e use o Docker com um agente do Log Analytics. Com base em seu sistema operacional e no orquestrador do Docker, você pode usar os métodos a seguir para configurar o agente.
- Para hosts autônomos:
- Em sistemas operacionais Linux com suporte, instale e execute o Docker e, em seguida, instale e configure o Agente do Log Analytics para Linux.
- No CoreOS, você não pode executar o Agente do Log Analytics para Linux. Em vez disso, você deve executar uma versão em contêiner do Agente do Log Analytics para Linux. Examine Hosts de contêiner do Linux incluindo CoreOS ou Hosts de contêiner do Linux do Azure Governamental incluindo CoreOS se você estiver trabalhando com contêineres na nuvem do Azure Governamental.
- No Windows Server 2016 e no Windows 10, instale o Mecanismo do Docker e o cliente se conectará a um agente para coletar informações e enviá-las ao Azure Monitor. Examine Instalar e configurar hosts de contêiner do Windows se você tiver um ambiente Windows.
- Para a orquestração de vários hosts do Docker:
- Se você tiver um ambiente do Red Hat OpenShift, confira Configurar um agente do Log Analytics para Red Hat OpenShift.
- Se você tiver um cluster Kubernetes usando o Serviço de Contêiner do Azure:
- Confira Configurar um agente para Linux do Log Analytics para o Kubernetes.
- Veja Configurar um agente do Windows do Log Analytics para o Kubernetes.
- Examine Usar Helm para implantar o agente do Log Analytics no Linux Kubernetes.
- Se você tiver um cluster DC/SO do Serviço de Contêiner do Azure, saiba mais em Monitorar um cluster DC/OS do Serviço de Contêiner do Azure com o Azure Monitor.
- Se você tem um ambiente no modo Docker Swarm, saiba mais em Configurar um agente do Log Analytics para o Docker Swarm.
- Se você tiver um cluster do Service Fabric, saiba mais em Monitorar contêineres com o Azure Monitor.
- Para hosts autônomos:
Examine o artigo Mecanismo do Docker no Windows para obter informações adicionais sobre como instalar e configurar seus Mecanismos do Docker em computadores que executam o Windows.
Importante
O Docker deve estar em execução antes de instalar o Agente do Log Analytics para Linux em seus hosts de contêiner. Se você já tiver instalado o agente antes de instalar o Docker, precisará reinstalar o Agente do Log Analytics para Linux. Para obter mais informações sobre o Docker, consulte o site do Docker.
Instalar e configurar hosts de contêiner do Linux
Depois de instalar o Docker, use as seguintes definições para o host do contêiner para configurar o agente para uso com o Docker. Primeiro, você precisa da ID e chave de seu espaço de trabalho do Log Analytics, que podem ser encontradas no Portal do Azure. Em seu workspace, clique em Início Rápido>Computadores para exibir sua ID de Workspace e Chave Primária. Copie e cole os dois em seu editor favorito.
Para todos os hosts de contêiner do Linux, exceto CoreOS:
- Para obter mais informações e etapas sobre como instalar o agente do Log Analytics para Linux, consulte Visão geral do agente de Log Analytics.
Para todos os hosts de contêiner do Linux, incluindo o CoreOS:
Inicie o contêiner que você deseja monitorar. Modifique e use o exemplo a seguir:
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
Para todos os hosts de contêiner do Linux no Azure Governamental, incluindo CoreOS:
Inicie o contêiner que você deseja monitorar. Modifique e use o exemplo a seguir:
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
Alternância de uso de um agente do Linux instalado para outro em um contêiner
Se anteriormente você utilizou o agente instalado diretamente e, em vez disso, deseja usar um agente em execução em um contêiner, primeiro você deverá remover o Agente do Log Analytics para Linux. Veja Desinstalar o Agente do Log Analytics para Linux para entender como desinstalar o agente com êxito.
Configurar um Agente do Log Analytics para o Docker Swarm
Execute o Agente do Log Analytics como um serviço global no Docker Swarm. Use as informações a seguir para criar um serviço do Agente do Log Analytics. Será necessário fornecer a ID e a chave primária do espaço de trabalho do Log Analytics.
Execute o seguinte no nó mestre.
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
Proteger segredos do Docker Swarm
Para Docker Swarm, depois de criar o segredo para a ID do workspace e para a chave primária, use as informações a seguir para criar as informações secretas.
Execute o seguinte no nó mestre.
echo "WSID" | docker secret create WSID - echo "KEY" | docker secret create KEY -
Verifique se os segredos foram criados corretamente.
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
Execute o comando a seguir para montar os segredos no Agente do Log Analytics em contêineres.
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
Configurar um Agente do Log Analytics para o Red Hat OpenShift
Há três maneiras de adicionar o Agente do Log Analytics para Red Hat OpenShift para começar a coletar dados de monitoramento de contêiner.
- Instalar o Agente do Log Analytics para Linux diretamente em cada nó do OpenShift
- Habilitar a extensão de VM do Log Analytics em cada nó do OpenShift que reside no Azure
- Instalar o Agente do Log Analytics como um daemon-set do OpenShift
Nesta seção, abordaremos as etapas necessárias para instalar o Agente do Log Analytics como um daemon-set do OpenShift.
Faça logon no nó principal do OpenShift e copie o arquivo yaml ocp-omsagent.yaml do GitHub para o nó principal e modifique o valor com sua ID de Espaço de Trabalho do Log Analytics e sua Chave Primária.
Execute os seguintes comandos para criar um projeto para o Azure Monitor e defina a conta de usuário.
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
Para implantar o daemon-set, execute o seguinte:
oc create -f ocp-omsagent.yaml
Para verificar se ele está configurado e funcionando corretamente, digite o seguinte:
oc describe daemonset omsagent
e o resultado deve ser semelhante a este:
[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 você quiser usar segredos para proteger sua ID de Espaço de Trabalho do Log Analytics e Chave Primária ao usar o arquivo yaml do daemon-set do Agente do Log Analytics, execute as seguintes etapas.
Faça logon no nó principal do OpenShift e copie o arquivo yaml ocp-ds-omsagent.yaml e o script de geração de segredo ocp-secretgen.sh do GitHub. Esse script gerará o arquivo yaml de segredos para a ID de Espaço de Trabalho do Log Analytics e a Chave Primária a fim de proteger suas informações secretas.
Execute os seguintes comandos para criar um projeto para o Azure Monitor e defina a conta de usuário. O script de geração de segredo solicita sua ID de Espaço de Trabalho do Log Analytics
<WSID>
e a Chave Primária<KEY>
e, após a conclusão, cria o arquivo 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
Implante o arquivo de segredo executando o seguinte comando:
oc create -f ocp-secret.yaml
Verifique a implantação executando o seguinte:
oc describe secret omsagent-secret
e o resultado deve ser semelhante a este:
[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
Implante o arquivo yaml de daemon-set do Agente do Log Analytics executando o seguinte:
oc create -f ocp-ds-omsagent.yaml
Verifique a implantação executando o seguinte:
oc describe ds oms
e o resultado deve ser semelhante a este:
[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.
Configurar um agente para Linux do Log Analytics para o Kubernetes
Para o Kubernetes, use um script para gerar o arquivo .yaml de segredos para a ID do Workspace e a Chave Primária para instalar o Agente do Log Analytics para Linux. Na página GitHub do Log Analytics Docker Kubernetes, existem arquivos que você pode usar com ou sem as informações secretas.
- O DaemonSet do Agente para Linux do Log Analytics Padrão não tem informações secretas (omsagent.yaml)
- O arquivo .yaml do DaemonSet do Agente para Linux do Log Analytics usa informações secretas (omsagent-ds-secrets.yaml) com scripts de geração de segredo que geram o arquivo .yaml de segredos (omsagentsecret.yaml).
Você pode optar por criar DaemonSets do omsagent com ou sem segredos.
Arquivo yaml do DaemonSet do OMSagent Padrão sem segredos
Para o arquivo yaml do DaemonSet do Agente do Log Analytics padrão, substitua
<WSID>
e<KEY>
pela WSID e KEY. Copie o arquivo para o nó mestre e execute o seguinte:sudo kubectl create -f omsagent.yaml
Arquivo yaml do DaemonSet do OMSagent Padrão com segredos
Para usar o DaemonSet do Agente do Log Analytics usando informações secretas, crie os segredos primeiro.
Copie o script e o arquivo de modelo de segredo e verifique se eles estão no mesmo diretório.
- Script de geração de segredo – secret-gen.sh
- modelo de segredo – secret-template.yaml
Execute o script, como no exemplo a seguir. O script solicitará a ID do Espaço de Trabalho do Log Analytics e a Chave Primária e, depois que você inseri-los, o script criará um arquivo .yaml secreto para que você possa executá-lo.
#> sudo bash ./secret-gen.sh
Crie o pod de segredos executando o seguinte:
sudo kubectl create -f omsagentsecret.yaml
Para verificar, execute o seguinte:
keiko@ubuntu16-13db:~# sudo kubectl get secrets
O resultado deve ser semelhante a este:
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
O resultado deve ser semelhante a este:
Name: omsagent-secret Namespace: default Labels: <none> Annotations: <none> Type: Opaque Data ==== WSID: 36 bytes KEY: 88 bytes
Criar o omsagent daemon-set executando
sudo kubectl create -f omsagent-ds-secrets.yaml
Verifique se o DaemonSet do Agente do Log Analytics está em execução, de forma semelhante à seguinte:
keiko@ubuntu16-13db:~# sudo kubectl get ds omsagent
NAME DESIRED CURRENT NODE-SELECTOR AGE omsagent 3 3 <none> 1h
Para o Kubernetes, use um script para gerar o arquivo .yaml de segredos para a ID do Workspace e a Chave Primária para o Agente para Linux do Log Analytics. Use as informações de exemplo a seguir com o arquivo yaml do omsagent para proteger suas informações secretas.
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
Configurar um agente para Windows do Log Analytics para o Kubernetes
Para o Windows Kubernetes, use um script para gerar o arquivo .yaml de segredos para a ID do Workspace e a Chave Primária para instalar o Agente do Log Analytics para Linux. Na página GitHub do Log Analytics Docker Kubernetes, existem arquivos que você pode usar com as informações secretas. Você precisa instalar o Agente do Log Analytics separadamente para os nós de agente e mestre.
Para usar o DaemonSet do Agente do Log Analytics usando informações secretas no nó Mestre, crie os segredos primeiro.
Copie o script e o arquivo de modelo de segredo e verifique se eles estão no mesmo diretório.
- Script de geração de segredo – secret-gen.sh
- modelo de segredo – secret-template.yaml
Execute o script, como no exemplo a seguir. O script solicitará a ID do Espaço de Trabalho do Log Analytics e a Chave Primária e, depois que você inseri-los, o script criará um arquivo .yaml secreto para que você possa executá-lo.
#> sudo bash ./secret-gen.sh
Criar o omsagent daemon-set executando
kubectl create -f omsagentsecret.yaml
Para verificar, execute o seguinte:
root@ubuntu16-13db:~# kubectl get secrets
O resultado deve ser semelhante a este:
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
Criar o omsagent daemon-set executando
kubectl create -f ws-omsagent-de-secrets.yaml
Verifique se o DaemonSet do Agente do Log Analytics está em execução, de forma semelhante à seguinte:
root@ubuntu16-13db:~# kubectl get deployment omsagent NAME DESIRED CURRENT NODE-SELECTOR AGE omsagent 1 1 <none> 1h
Para instalar o agente no nó de trabalho, que está executando o Windows, siga as etapas na seção instalar e configurar hosts de contêiner do Windows.
Usar Helm para implantar o agente do Log Analytics no Linux Kubernetes
Para usar helm para implantar o agente do Log Analytics em seu ambiente Linux Kubernetes, execute as seguintes etapas.
Criar o omsagent daemon-set executando
helm install --name omsagent --set omsagent.secret.wsid=<WSID>,omsagent.secret.key=<KEY> stable/msoms
O resultado parecerá com o seguinte:
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
Você pode verificar o status do omsagent executando:
helm status "omsagent"
e a saída será semelhante ao seguinte: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
Para obter mais informações, visite Gráfico Contêiner de Solução Helm.
Instalar e configurar hosts de contêiner do Windows
Use as informações na seção para instalar e configurar hosts de contêiner do Windows.
Preparação antes de instalar os agentes do Windows
Antes de instalar os agentes em computadores que executam o Windows, você precisa configurar o serviço Docker. A configuração permite que o agente do Windows ou a extensão de máquina virtual do Azure Monitor usem o soquete TCP do Docker para que os agentes possam acessar o daemon do Docker remotamente e capturar os dados de monitoramento.
Para configurar o serviço do Docker
Execute os seguintes comandos do PowerShell para habilitar o pipe TCP e o pipe nomeado para o Windows Server:
Stop-Service docker
dockerd --unregister-service
dockerd --register-service -H npipe:// -H 0.0.0.0:2375
Start-Service docker
Para obter mais informações sobre a configuração do daemon do Docker usada com os Contêineres do Windows, consulte Mecanismo do Docker no Windows.
Instalar agentes do Windows
Para habilitar o monitoramento do contêiner do Windows e do Hyper-V, instale o MMA (Microsoft Monitoring Agent) em computadores com Windows que sejam hosts do contêiner. Para computadores que executam o Windows no ambiente local, veja Conectar computadores Windows ao Azure Monitor. Para máquinas virtuais em execução no Azure, conecte-as ao Azure Monitor usando a extensão de máquina virtual.
Você pode monitorar os contêineres do Windows em execução no Service Fabric. No entanto, apenas máquinas virtuais em execução no Azure e computadores executando o Windows no seu ambiente local têm suporte atualmente para o Service Fabric.
Você pode verificar se a solução de Monitoramento de contêiner está definida corretamente para o Windows. Para verificar se o pacote de gerenciamento foi baixado corretamente, procure ContainerManagement.xxx. Os arquivos devem estar na pasta C:\Arquivos de Programas\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs.
Componentes da solução
No portal do Azure, navegue até a Galeria de Soluções e adicione a Solução de Monitoramento de Contêiner. Se você estiver usando agentes do Windows, o pacote de gerenciamento a seguir será instalado em cada computador que possui um agente quando você adicionar essa solução. Não é necessária nenhuma configuração nem manutenção do pacote de gerenciamento.
- ContainerManagement.xxx instalado em C:\Arquivos de Programas\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs
Detalhes da coleta de dados dos contêineres
A solução de Monitoramento de contêineres coleta vários dados de log e métricas de desempenho dos hosts de contêiner e dos contêineres que usam os agentes que você habilitou.
Os dados são coletados a cada três minutos pelos tipos de agente a seguir.
Registros de contêiner
A tabela a seguir mostra exemplos de registros coletados pela solução de Monitoramento de contêineres e os tipos de dados que aparecem nos resultados da pesquisa de log.
Tipo de dados | Tipo de dados na Pesquisa de Log | Campos |
---|---|---|
Desempenho de hosts e contêineres | Perf |
Computer, ObjectName, CounterName (%Processor Time, Disk Reads MB, Disk Writes MB, Memory Usage MB, Network Receive Bytes, Network Send Bytes, Processor Usage sec, Network), CounterValue, TimeGenerated, CounterPath, SourceSystem |
Inventário de contêiner | ContainerInventory |
TimeGenerated, Computer, container name, ContainerHostname, Image, ImageTag, ContainerState, ExitCode, EnvironmentVar, Command, CreatedTime, StartedTime, FinishedTime, SourceSystem, ContainerID, ImageID |
Inventário de imagem de contêiner | ContainerImageInventory |
TimeGenerated, Computer, Image, ImageTag, ImageSize, VirtualSize, Running, Paused, Stopped, Failed, SourceSystem, ImageID, TotalContainer |
Log do contêiner | ContainerLog |
TimeGenerated, Computer, image ID, container name, LogEntrySource, LogEntry, SourceSystem, ContainerID |
Log do serviço de contêiner | ContainerServiceLog |
TimeGenerated, Computer, TimeOfCommand, Image, Command, SourceSystem, ContainerID |
Inventário de nós do contêiner | ContainerNodeInventory_CL |
TimeGenerated, Computer, ClassName_s, DockerVersion_s, OperatingSystem_s, Volume_s, Network_s, NodeRole_s, OrchestratorType_s, InstanceID_g, SourceSystem |
Inventário de 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 do contêiner | 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 |
Eventos de Kubernetes | KubeEvents_CL |
TimeGenerated, Computer, Name_s, ObjectKind_s, Namespace_s, Reason_s, Type_s, SourceComponent_s, SourceSystem, Message |
Os rótulos anexado aos tipos de dados PodLabel são seus próprios rótulos personalizados. Os rótulos PodLabel anexados mostrados na tabela são exemplos. Portanto, PodLabel_deployment_s
, PodLabel_deploymentconfig_s
, PodLabel_docker_registry_s
serão diferentes no conjunto de dados de seu ambiente, e genericamente lembram PodLabel_yourlabel_s
.
Monitorar contêineres
Depois de habilitar a solução no portal do Azure, o bloco Contêineres mostrará informações resumidas sobre seus hosts de contêiner e os contêineres em execução neles.
O bloco mostra uma visão geral de quantos contêineres existem no ambiente e se eles estão com falha, em execução ou parados.
Usando o painel de Contêineres
Clique no bloco Contêineres. A partir daí, você verá exibições organizadas por:
- Eventos de Contêiner - Mostra o status do contêiner, e os computadores com contêineres com falha.
- Logs do Contêiner - Mostra um gráfico de arquivos de log gerados com o tempo, e uma lista de computadores com o maior número de arquivos de log.
- Eventos de Kubernetes - Mostra um gráfico de eventos de Kubernetes gerados com o tempo, e uma lista com os motivos de os compartimentos terem gerado os eventos. Esse conjunto de dados é usado somente em ambientes Linux.
- Inventário de Namespace de Kubernetes - Mostra o número de namespaces e compartimentos, e a hierarquia deles. Esse conjunto de dados é usado somente em ambientes Linux.
- Inventário de Nó do Contêiner - Mostra o número de tipos de orquestração usados em nós/hosts do contêiner. Os nós/hosts do computador também são listados pelo número de contêineres. Esse conjunto de dados é usado somente em ambientes Linux.
- Inventário de Imagens de Contêiner - Mostra o número total de imagens de contêiner usadas, e o número de tipos de imagem. O número de imagens também é listado por marca de imagem.
- Status dos Contêineres - Mostra o número total de computadores host/nós de contêiner com contêineres em execução. Os computadores também são listados pelo número de hosts em execução.
- Processo do Contêiner - Mostra um gráfico de linhas dos processos de contêiner em execução ao longo do tempo. Os contêineres também são listados por meio da execução do comando/processo dentro dos contêineres. Esse conjunto de dados é usado somente em ambientes Linux.
- Desempenho da CPU do Contêiner - Mostra um gráfico de linhas da utilização média da CPU ao longo do tempo para nós/hosts do computador. Também lista os nós/hosts do computador com base na utilização média da CPU.
- Desempenho de Memória de Contêiner - Mostra um gráfico de linhas do uso da memória ao longo do tempo. Também lista a utilização da memória do computador com base no nome da instância.
- Desempenho do Computador - Mostra os gráficos de linha do percentual de desempenho da CPU ao longo do tempo, porcentagem de uso da memória ao longo do tempo e megabytes de espaço livre em disco ao longo do tempo. Passe o cursor sobre qualquer linha em um gráfico para exibir mais detalhes.
Cada área do painel é uma representação visual de uma pesquisa executada nos dados coletados.
Na área Status do Contêiner, clique na área superior, como mostrado abaixo.
O Log Analytics é aberto, exibindo informações sobre o estado dos contêineres.
A partir daqui, você pode editar a consulta de pesquisa para modificá-la para localizar as informações específicas nas quais está interessado. Para saber mais sobre consultas de log, veja Consultas de log no Azure Monitor.
Solucionar problemas localizando um contêiner com falha
O Log Analytics marca um contêiner como Com Falha se ele tiver sido encerrado com um código de saída diferente de zero. Você pode conferir uma visão geral dos erros e falhas no ambiente na área Contêineres com Falha.
Para localizar contêineres com falha
- Clique na área Status do Contêiner.
- O Log Analytics é aberto e exibe o estado dos contêineres, semelhante ao seguinte.
- Expanda a linha Com falha e clique em + para adicionar os critérios dela à consulta. Em seguida, comente a linha Resumir na consulta.
- Execute a consulta e expanda uma linha nos resultados para exibir a ID da imagem.
- Digite o seguinte na consulta de log.
ContainerImageInventory | where ImageID == <ImageID>
para ver detalhes sobre a imagem, como o tamanho da imagem e o número de imagens paradas e com falha.
Consultar os logs quanto a dados de contêiner
Quando você estiver solucionando um erro específico, pode ajudar ver onde ele está ocorrendo em seu ambiente. Os tipos de log a seguir ajudarão você a criar consultas para retornar as informações desejadas.
- ContainerImageInventory – use este tipo quando estiver tentando localizar informações organizadas por imagem e para exibir informações da imagem como os tamanhos ou IDs da imagem.
- ContainerInventory – use este tipo quando desejar obter informações sobre a localização do contêiner, quais são seus nomes e quais imagens eles estão executando.
- ContainerLog – use este tipo quando desejar localizar entradas e informações de log de erro específicas.
- ContainerNodeInventory_CL Use este tipo quando você quiser informações sobre o nó/host onde os contêineres residem. Ele fornece ao Docker informações de versão, tipo de orquestração, armazenamento e rede.
- ContainerProcess_CL Use esse tipo para ver rapidamente o processo em execução dentro do contêiner.
- ContainerServiceLog – use este tipo quando estiver tentando localizar informações de trilha de auditoria para o daemon do Docker, como os comandos start, stop, delete ou pull.
- KubeEvents_CL Use este tipo para ver os eventos de Kubernetes.
- KubePodInventory_CL Use este tipo quando quiser entender as informações de hierarquia do cluster.
Para consultar os logs quanto a dados de contêiner
Escolha uma imagem que você saiba que falhou recentemente e encontre os logs de erros dela. Comece localizando um nome de contêiner que está executando a imagem com uma pesquisa ContainerInventory. Por exemplo, pesquise por
ContainerInventory | where Image == "ubuntu" and ContainerState == "Failed"
Expanda qualquer linha nos resultados para exibir os detalhes desse contêiner.
Exemplos de consultas de log
Costuma ser útil criar consultas começando com um ou dois exemplos e, em seguida, modificá-los de acordo com seu ambiente. Como ponto de partida, você pode testar a área CONSULTAS DE EXEMPLO no canto direito da página da solução para obter ajuda ao criar consultas mais avançadas.
Salvar consultas de log
Salvar consultas é um recurso padrão do Azure Monitor. Ao salvá-las, você terá aquelas que considerou úteis acessíveis para uso futuro.
Depois de criar uma consulta que considerar útil, salve-a clicando em Favoritos na parte superior da página Pesquisa de Log. Depois, você pode acessá-la facilmente pela página Meu Painel.
Removendo a solução do seu workspace
Para remover a Solução de Monitoramento de Contêiner, siga as instruções para remover soluções usando um dos seguintes: portal do Azure, PowerShellou CLI do Azure
Próximas etapas
Consulte os logs para exibir registros de dados de contêiner detalhados.