Řešení monitorování kontejnerů ve službě Azure Monitor
Tento článek popisuje, jak nastavit a používat řešení monitorování kontejnerů ve službě Azure Monitor, které vám pomůže zobrazit a spravovat hostitele kontejnerů Dockeru a Windows na jednom místě. Docker je systém virtualizace softwaru, který slouží k vytváření kontejnerů, které automatizují nasazování softwaru do infrastruktury IT.
Důležité
Řešení monitorování kontejnerů se postupně ukončuje. Pokud chcete monitorovat prostředí Kubernetes, doporučujeme přejít na Přehledy kontejnerů služby Azure Monitor.
Poznámka
Tento článek byl nedávno aktualizován tak, aby místo Log Analytics používal termín protokoly Azure Monitoru. Data protokolu jsou stále uložená v pracovním prostoru služby Log Analytics a stále je shromažďuje a analyzuje stejná služba Log Analytics. Aktualizujeme terminologii tak, aby lépe odrážela roli protokolů ve službě Azure Monitor. Podrobnosti najdete v tématu Změny terminologie služby Azure Monitor .
Řešení ukazuje, které kontejnery jsou spuštěné, jakou image kontejneru jsou spuštěné a kde kontejnery běží. Můžete zobrazit podrobné informace o auditu zobrazující příkazy používané s kontejnery. A můžete řešit potíže s kontejnery zobrazením a prohledáváním centralizovaných protokolů, aniž byste museli vzdáleně zobrazovat hostitele Dockeru nebo Windows. Můžete najít kontejnery, které můžou být hlučné a spotřebovávají nadbytečné prostředky na hostiteli. Můžete také zobrazit centralizované informace o využití procesoru, paměti, úložišti a síti a výkonu kontejnerů. Na počítačích s Windows můžete centralizovat a porovnávat protokoly z kontejnerů Windows Serveru, Hyper-V a Dockeru. Řešení podporuje následující orchestrátory kontejnerů:
- Docker Swarm
- DC/OS
- Service Fabric
K monitorování Kubernetes a Red Hat OpenShiftu doporučujeme použít přehledy kontejnerů Azure Monitoru:
- AKS (Konfigurace přehledů kontejneru pro AKS)
- Red Hat OpenShift (konfigurace přehledů kontejnerů pomocí Azure Arc)
Pokud máte kontejnery nasazené v Azure Service Fabric, doporučujeme povolit řešení Service Fabric i toto řešení tak, aby zahrnovalo monitorování událostí clusteru. Než povolíte řešení Service Fabric, přečtěte si téma Používání řešení Service Fabric , kde se dozvíte, co poskytuje a jak ho používat.
Pokud vás zajímá monitorování výkonu úloh nasazených do prostředí Kubernetes hostovaných v Azure Kubernetes Service (AKS), přečtěte si téma Monitorování Azure Kubernetes Service. Řešení monitorování kontejnerů nepodporuje monitorování této platformy.
Následující diagram znázorňuje vztahy mezi různými hostiteli kontejnerů a agenty se službou Azure Monitor.
Požadavky na systém a podporované platformy
Než začnete, projděte si následující podrobnosti a ověřte, že splňujete požadavky.
Podpora řešení monitorování kontejnerů pro docker Orchestrator a platformu operačního systému
Následující tabulka popisuje podporu orchestrace a monitorování operačního systému Dockeru pro inventář kontejnerů, výkon a protokoly pomocí služby Azure Monitor.
Orchestrace Dockeru | ACS | Linux | Windows | Kontejner inventář |
Image inventář |
Uzel inventář |
Kontejner Výkon |
Kontejner Událost |
Událost Protokol |
Kontejner Protokol |
---|---|---|---|---|---|---|---|---|---|---|
Kubernetes | • | • | • | • | • | • | • | • | • | • |
Mesosphere DC/OS |
• | • | • | • | • | • | • | • | • | |
Docker Roj |
• | • | • | • | • | • | • | • | • | |
Služba Fabric |
• | • | • | • | • | • | • | • | • | |
Red Hat Open Shift |
• | • | • | • | • | • | • | |||
Windows Server (samostatně) |
• | • | • | • | • | • | • | |||
Linux Server (samostatně) |
• | • | • | • | • | • | • |
Podporované verze Dockeru v Linuxu
- Docker 1.11 až 1.13
- Docker CE a EE v17.06
Linuxové distribuce x64 podporované jako hostitelé kontejnerů
- Ubuntu 14.04 LTS a 16.04 LTS
- CoreOS (stabilní)
- Amazon Linux 2016.09.0
- openSUSE 13.2
- openSUSE LEAP 42.2
- CentOS 7.2 a 7.3
- SLES 12
- RHEL 7.2 a 7.3
- Red Hat OpenShift Container Platform (OCP) 3.4 a 3.5
- ACS Mesosphere DC/OS 1.7.3 až 1.8.8
- ACS Kubernetes 1.4.5 až 1.6
- Události Kubernetes, inventář Kubernetes a procesy kontejnerů se podporují jenom s agentem Log Analytics pro Linux verze 1.4.1-45 a novější.
- ACS Docker Swarm
Poznámka
V rámci průběžného přechodu ze sady Microsoft Operations Management Suite na Azure Monitor se Agent sady Operations Management Suite pro Windows nebo Linux bude označovat jako agent Log Analytics pro Windows, resp. agent Log Analytics pro Linux.
Podporovaný operační systém Windows
- Windows Server 2016
- Windows 10 Anniversary Edition (Professional nebo Enterprise)
Verze Dockeru podporované ve Windows
- Docker 1.12 a 1.13
- Docker 17.03.0 a novější
Instalace a konfigurace řešení
K instalaci a konfiguraci řešení můžete použít následující informace.
Přidejte řešení monitorování kontejnerů do pracovního prostoru služby Log Analytics z Azure Marketplace nebo pomocí postupu popsaného v tématu Přidání řešení monitorování z galerie řešení.
Nainstalujte a používejte Docker s agentem Log Analytics. Na základě operačního systému a orchestrátoru Dockeru můžete ke konfiguraci agenta použít následující metody.
- Pro samostatné hostitele:
- V podporovaných operačních systémech Linux nainstalujte a spusťte Docker a pak nainstalujte a nakonfigurujte agenta Log Analytics pro Linux.
- V CoreOS nemůžete spustit agenta Log Analytics pro Linux. Místo toho spustíte kontejnerizovanou verzi agenta Log Analytics pro Linux. Pokud pracujete s kontejnery v Azure Government Cloudu, zkontrolujte hostitele kontejnerů Linuxu, včetně Azure Government hostitelů kontejnerů Linuxu, včetně CoreOS.
- Na Windows Server 2016 a Windows 10 nainstalujte modul Dockeru a klienta a pak připojte agenta, který shromáždí informace a odešle je do služby Azure Monitor. Pokud máte prostředí Windows, přečtěte si téma Instalace a konfigurace hostitelů kontejnerů Windows .
- Pro orchestraci s více hostiteli Dockeru:
- Pokud máte prostředí Red Hat OpenShift, přečtěte si téma Konfigurace agenta Log Analytics pro Red Hat OpenShift.
- Pokud máte cluster Kubernetes s využitím služby Azure Container Service:
- Projděte si téma Konfigurace agenta Log Analytics pro Linux pro Kubernetes.
- Projděte si téma Konfigurace agenta Log Analytics pro Windows pro Kubernetes.
- Projděte si téma Nasazení agenta Log Analytics v Linuxu Kubernetes pomocí Helmu.
- Pokud máte cluster Azure Container Service DC/OS, přečtěte si další informace v tématu Monitorování clusteru Azure Container Service DC/OS pomocí služby Azure Monitor.
- Pokud máte prostředí režimu Docker Swarm, přečtěte si další informace v tématu Konfigurace agenta Log Analytics pro Docker Swarm.
- Pokud máte cluster Service Fabric, přečtěte si další informace v tématu Monitorování kontejnerů pomocí Azure Monitoru.
- Pro samostatné hostitele:
Další informace o instalaci a konfiguraci modulů Dockeru na počítačích s Windows najdete v článku Modul Dockeru ve Windows .
Důležité
Před instalací agenta Log Analytics pro Linux na hostitele kontejneru musí být Docker spuštěný. Pokud jste už agenta nainstalovali před instalací Dockeru, musíte přeinstalovat agenta Log Analytics pro Linux. Další informace o Dockeru najdete na webu Dockeru.
Instalace a konfigurace hostitelů kontejnerů s Linuxem
Po instalaci Dockeru pomocí následujících nastavení pro hostitele kontejneru nakonfigurujte agenta pro použití s Dockerem. Nejprve potřebujete ID a klíč pracovního prostoru služby Log Analytics, které najdete v Azure Portal. V pracovním prostoru klikněte naPočítačes rychlým startem> a zobrazte ID pracovního prostoru a primární klíč. Obě hodnoty zkopírujte a vložte do oblíbeného editoru.
Pro všechny hostitele kontejnerů s Linuxem kromě CoreOS:
- Další informace a postup instalace agenta Log Analytics pro Linux najdete v tématu Přehled agenta Log Analytics.
Pro všechny hostitele kontejnerů s Linuxem, včetně CoreOS:
Spusťte kontejner, který chcete monitorovat. Upravte a použijte následující příklad:
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
Pro všechny hostitele kontejnerů Azure Government Linuxu, včetně CoreOS:
Spusťte kontejner, který chcete monitorovat. Upravte a použijte následující příklad:
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
Přechod z použití nainstalovaného agenta pro Linux na agenta v kontejneru
Pokud jste dříve používali přímo nainstalovaného agenta a chcete místo toho použít agenta spuštěného v kontejneru, musíte nejprve odebrat agenta Log Analytics pro Linux. Informace o tom, jak agenta úspěšně odinstalovat, najdete v tématu Odinstalace agenta Log Analytics pro Linux .
Konfigurace agenta Log Analytics pro Docker Swarm
Agenta Log Analytics můžete spustit jako globální službu v DockerU Swarm. Následující informace použijte k vytvoření služby agenta Log Analytics. Musíte zadat ID pracovního prostoru služby Log Analytics a primární klíč.
Na hlavním uzlu spusťte následující příkaz.
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
Zabezpečení tajných kódů pro Docker Swarm
V případě Dockeru Swarm použijte po vytvoření tajného kódu ID pracovního prostoru a primárního klíče následující informace k vytvoření tajných informací.
Na hlavním uzlu spusťte následující příkaz.
echo "WSID" | docker secret create WSID - echo "KEY" | docker secret create KEY -
Ověřte, že se tajné kódy správně vytvořily.
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
Spuštěním následujícího příkazu připojte tajné kódy ke kontejnerizovanému agentu Log Analytics.
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
Konfigurace agenta Log Analytics pro Red Hat OpenShift
Existují tři způsoby, jak přidat agenta Log Analytics do Red Hat OpenShiftu a začít shromažďovat data monitorování kontejnerů.
- Instalace agenta Log Analytics pro Linux přímo na každý uzel OpenShift
- Povolení rozšíření virtuálních počítačů Log Analytics na každém uzlu OpenShift umístěném v Azure
- Instalace agenta Log Analytics jako sady démonů OpenShift
V této části probereme kroky potřebné k instalaci agenta Log Analytics jako sady démonů OpenShift.
Přihlaste se k hlavnímu uzlu OpenShift a zkopírujte soubor yaml ocp-omsagent.yaml z GitHubu do hlavního uzlu a upravte hodnotu pomocí ID pracovního prostoru služby Log Analytics a primárního klíče.
Spuštěním následujících příkazů vytvořte projekt pro Azure Monitor a nastavte uživatelský účet.
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
Pokud chcete nasadit sadu démonů, spusťte následující příkaz:
oc create -f ocp-omsagent.yaml
Pokud chcete ověřit, že je správně nakonfigurovaná a funguje, zadejte následující příkaz:
oc describe daemonset omsagent
výstup by měl vypadat takto:
[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.
Pokud chcete k zabezpečení ID a primárního klíče pracovního prostoru služby Log Analytics použít tajné kódy při použití souboru yaml démona agenta Log Analytics, proveďte následující kroky.
Přihlaste se k hlavnímu uzlu OpenShift a zkopírujte soubor yaml ocp-ds-omsagent.yaml a skript pro generování tajných kódů ocp-secretgen.sh z GitHubu. Tento skript vygeneruje soubor yaml tajných kódů pro ID pracovního prostoru služby Log Analytics a primární klíč k zabezpečení informací o tajných klíčích.
Spuštěním následujících příkazů vytvořte projekt pro Azure Monitor a nastavte uživatelský účet. Skript pro generování tajného kódu požádá o ID
<WSID>
vašeho pracovního prostoru služby Log Analytics a primární klíč<KEY>
a po dokončení vytvoří soubor 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
Nasaďte soubor tajného kódu spuštěním následujícího příkazu:
oc create -f ocp-secret.yaml
Spuštěním následujícího příkazu ověřte nasazení:
oc describe secret omsagent-secret
výstup by měl vypadat takto:
[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
Spuštěním následujícího příkazu nasaďte soubor yaml daemon-set agenta Log Analytics:
oc create -f ocp-ds-omsagent.yaml
Spuštěním následujícího příkazu ověřte nasazení:
oc describe ds oms
výstup by měl vypadat takto:
[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.
Konfigurace agenta Log Analytics pro Linux pro Kubernetes
V případě Kubernetes použijete skript k vygenerování souboru yaml tajných kódů pro ID pracovního prostoru a primárního klíče pro instalaci agenta Log Analytics pro Linux. Na stránce Dockeru Kubernetes Pro Log Analytics na GitHubu jsou soubory, které můžete použít s tajnými informacemi nebo bez ní.
- Výchozí agent Log Analytics pro Linux DaemonSet nemá tajné informace (omsagent.yaml).
- Soubor yaml agenta Log Analytics pro Linux DaemonSet používá tajné informace (omsagent-ds-secrets.yaml) se skripty generování tajných kódů k vygenerování tajných kódů yaml (omsagentsecret.yaml).
Můžete se rozhodnout vytvářet omsagent daemonSets s tajnými kódy nebo bez nich.
Výchozí soubor yaml daemonSet OMSagent bez tajných kódů
Výchozí soubor yaml agenta Log Analytics DaemonSet nahraďte
<WSID>
a<KEY>
za WSID a KEY. Zkopírujte soubor do hlavního uzlu a spusťte následující příkaz:sudo kubectl create -f omsagent.yaml
Výchozí soubor OMSagent DaemonSet yaml s tajnými kódy
Pokud chcete použít agenta Log Analytics DaemonSet s využitím tajných informací, nejprve vytvořte tajné kódy.
Zkopírujte skript a soubor šablony tajného kódu a ujistěte se, že jsou ve stejném adresáři.
- Skript pro generování tajných kódů – secret-gen.sh
- šablona tajného kódu – secret-template.yaml
Spusťte skript jako v následujícím příkladu. Skript požádá o ID pracovního prostoru služby Log Analytics a primární klíč a po jejich zadání vytvoří tajný soubor yaml, abyste ho mohli spustit.
#> sudo bash ./secret-gen.sh
Vytvořte pod tajných kódů spuštěním následujícího příkazu:
sudo kubectl create -f omsagentsecret.yaml
Pokud to chcete ověřit, spusťte následující příkaz:
keiko@ubuntu16-13db:~# sudo kubectl get secrets
Výstup by měl vypadat takto:
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
Výstup by měl vypadat takto:
Name: omsagent-secret Namespace: default Labels: <none> Annotations: <none> Type: Opaque Data ==== WSID: 36 bytes KEY: 88 bytes
Vytvoření sady démonů omsagent spuštěním příkazu
sudo kubectl create -f omsagent-ds-secrets.yaml
Ověřte, že je spuštěný agent Log Analytics DaemonSet, podobně jako v následujícím příkladu:
keiko@ubuntu16-13db:~# sudo kubectl get ds omsagent
NAME DESIRED CURRENT NODE-SELECTOR AGE omsagent 3 3 <none> 1h
V případě Kubernetes pomocí skriptu vygenerujte soubor yaml tajných kódů pro ID pracovního prostoru a primární klíč agenta Log Analytics pro Linux. K zabezpečení tajných informací použijte následující ukázkové informace se souborem yaml omsagent .
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
Konfigurace agenta Log Analytics pro Windows pro Kubernetes
Pro Windows Kubernetes pomocí skriptu vygenerujete soubor yaml tajných kódů pro ID pracovního prostoru a primární klíč pro instalaci agenta Log Analytics. Na stránce GitHubu Dockeru Kubernetes pro Log Analytics najdete soubory, které můžete použít s tajnými informacemi. Agenta Log Analytics musíte nainstalovat samostatně pro hlavní uzel a uzel agenta.
Pokud chcete použít agenta Log Analytics DaemonSet s využitím tajných informací na hlavním uzlu, přihlaste se a nejprve vytvořte tajné kódy.
Zkopírujte skript a soubor šablony tajného kódu a ujistěte se, že jsou ve stejném adresáři.
- Skript pro generování tajných kódů – secret-gen.sh
- šablona tajného kódu – secret-template.yaml
Spusťte skript jako v následujícím příkladu. Skript požádá o ID pracovního prostoru služby Log Analytics a primární klíč a po jejich zadání vytvoří tajný soubor yaml, abyste ho mohli spustit.
#> sudo bash ./secret-gen.sh
Vytvoření sady démonů omsagent spuštěním příkazu
kubectl create -f omsagentsecret.yaml
Pokud to chcete zkontrolovat, spusťte následující příkaz:
root@ubuntu16-13db:~# kubectl get secrets
Výstup by měl vypadat takto:
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
Vytvoření sady démonů omsagent spuštěním příkazu
kubectl create -f ws-omsagent-de-secrets.yaml
Ověřte, že je spuštěný agent Log Analytics DaemonSet, podobně jako v následujícím příkladu:
root@ubuntu16-13db:~# kubectl get deployment omsagent NAME DESIRED CURRENT NODE-SELECTOR AGE omsagent 1 1 <none> 1h
Pokud chcete nainstalovat agenta na pracovní uzel se systémem Windows, postupujte podle pokynů v části Instalace a konfigurace hostitelů kontejnerů Windows.
Nasazení agenta Log Analytics v Linuxu Kubernetes pomocí Helmu
Pokud chcete k nasazení agenta Log Analytics v linuxovém prostředí Kubernetes použít helm, proveďte následující kroky.
Vytvoření sady démonů omsagent spuštěním příkazu
helm install --name omsagent --set omsagent.secret.wsid=<WSID>,omsagent.secret.key=<KEY> stable/msoms
Výsledky budou vypadat nějak takto:
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
Stav agenta omsagent můžete zkontrolovat spuštěním příkazu a
helm status "omsagent"
výstup bude vypadat nějak takto: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
Další informace najdete v chartu Helm řešení kontejneru.
Instalace a konfigurace hostitelů kontejnerů Windows
Informace v části použijte k instalaci a konfiguraci hostitelů kontejnerů Windows.
Příprava před instalací agentů pro Windows
Před instalací agentů do počítačů s Windows musíte nakonfigurovat službu Docker. Konfigurace umožňuje agentovi Windows nebo rozšíření virtuálního počítače Azure Monitoru používat soket Docker TCP, aby agenti mohli vzdáleně přistupovat k démonovi Dockeru a zaznamenávat data pro účely monitorování.
Konfigurace služby Dockeru
Provedením následujících příkazů PowerShellu povolte kanál TCP a pojmenovaný kanál pro Windows Server:
Stop-Service docker
dockerd --unregister-service
dockerd --register-service -H npipe:// -H 0.0.0.0:2375
Start-Service docker
Další informace o konfiguraci démona Dockeru používaném s kontejnery Windows najdete v tématu Modul Dockeru ve Windows.
Instalace agentů pro Windows
Pokud chcete povolit monitorování kontejnerů s Windows a Hyper-V, nainstalujte agenta Microsoft Monitoring Agent (MMA) na počítače s Windows, které jsou hostiteli kontejnerů. Informace o počítačích s Windows v místním prostředí najdete v tématu Připojení počítačů s Windows ke službě Azure Monitor. U virtuálních počítačů spuštěných v Azure je připojte ke službě Azure Monitor pomocí rozšíření virtuálního počítače.
Kontejnery Windows spuštěné v Service Fabric můžete monitorovat. V současné době se ale pro Service Fabric podporují jenom virtuální počítače běžící v Azure a počítače s Windows ve vašem místním prostředí .
Můžete ověřit, jestli je řešení monitorování kontejnerů pro Windows správně nastavené. Pokud chcete zkontrolovat, jestli se sada Management Pack stáhla správně, vyhledejte ContainerManagement.xxx. Soubory by měly být ve složce C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Pack.
Součásti řešení
V Azure Portal přejděte do galerie řešení a přidejte řešení pro monitorování kontejnerů. Pokud používáte agenty systému Windows, po přidání tohoto řešení se do každého počítače s agentem nainstaluje následující sada Management Pack. Sada Management Pack nevyžaduje žádnou konfiguraci ani údržbu.
- ContainerManagement.xxx nainstalované ve složce C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Pack
Podrobnosti o shromažďování dat kontejneru
Řešení monitorování kontejnerů shromažďuje různé metriky výkonu a data protokolů z hostitelů a kontejnerů kontejnerů pomocí agentů, které povolíte.
Následující typy agentů shromažďují data každé tři minuty.
Záznamy kontejneru
V následující tabulce jsou uvedeny příklady záznamů shromažďovaných řešením Monitorování kontejnerů a datové typy, které se zobrazují ve výsledcích prohledávání protokolu.
Datový typ | Datový typ ve vyhledávání protokolu | Pole |
---|---|---|
Výkon hostitelů a kontejnerů | Perf |
Počítač, ObjectName, CounterName (%Procesor Time, Disk Reads MB, Disk Writes MB, Memory Usage MB, Network Receive Bytes, Network Send Bytes, Processor Usage s, Network), CounterValue,TimeGenerated, CounterPath, SourceSystem |
Inventář kontejnerů | ContainerInventory |
TimeGenerated, Computer, název kontejneru, ContainerHostname, Image, ImageTag, ContainerState, ExitCode, EnvironmentVar, Command, CreatedTime, StartedTime, FinishedTime, SourceSystem, ContainerID, ImageID |
Inventář imagí kontejneru | ContainerImageInventory |
TimeGenerated, Computer, Image, ImageTag, ImageSize, VirtualSize, Running, Paused, Stopped, Failed, SourceSystem, ImageID, TotalContainer |
Protokol kontejneru | ContainerLog |
TimeGenerated, Počítač, ID image, název kontejneru, LogEntrySource, LogEntry, SourceSystem, ContainerID |
Protokol služby Container Service | ContainerServiceLog |
TimeGenerated, Computer, TimeOfCommand, Image, Command, SourceSystem, ContainerID |
Inventář uzlů kontejneru | ContainerNodeInventory_CL |
TimeGenerated, Počítač, ClassName_s, DockerVersion_s, OperatingSystem_s, Volume_s, Network_s, NodeRole_s, OrchestratorType_s, InstanceID_g, SourceSystem |
Inventář Kubernetes | KubePodInventory_CL |
TimeGenerated, Počítač, PodLabel_deployment_s, PodLabel_deploymentconfig_s, PodLabel_docker_registry_s, Name_s, Namespace_s, PodStatus_s, PodIp_s, PodUid_g, PodCreationTimeStamp_t, SourceSystem |
Proces kontejneru | ContainerProcess_CL |
TimeGenerated, Počítač, 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 |
Události Kubernetes | KubeEvents_CL |
TimeGenerated, Computer, Name_s, ObjectKind_s, Namespace_s, Reason_s, Type_s, SourceComponent_s, SourceSystem, Message |
Popisky připojené k datovým typům PodLabel jsou vaše vlastní popisky. Příklady jsou připojené popisky PodLabel zobrazené v tabulce. Takže , PodLabel_deployment_s
PodLabel_deploymentconfig_s
PodLabel_docker_registry_s
se bude lišit v datové sadě vašeho prostředí a obecně se bude podobat PodLabel_yourlabel_s
.
Monitorování kontejnerů
Po povolení řešení v Azure Portal se na dlaždici Kontejnery zobrazí souhrnné informace o hostitelích kontejnerů a kontejnerech spuštěných na hostitelích.
Dlaždice zobrazuje přehled toho, kolik kontejnerů máte v prostředí a jestli jsou neúspěšné, spuštěné nebo zastavené.
Použití řídicího panelu Kontejnery
Klikněte na dlaždici Kontejnery . Odtud uvidíte zobrazení uspořádaná podle:
- Události kontejneru – zobrazuje stav kontejneru a počítače s kontejnery, které selhaly.
- Protokoly kontejnerů – zobrazuje graf souborů protokolů kontejnerů vygenerovaných v průběhu času a seznam počítačů s nejvyšším počtem souborů protokolů.
- Události Kubernetes – zobrazuje graf událostí Kubernetes vygenerovaných v průběhu času a seznam důvodů, proč pody události vygenerovaly. Tato datová sada se používá jenom v prostředích Linuxu.
- Inventář oboru názvů Kubernetes – zobrazuje počet oborů názvů a podů a zobrazuje jejich hierarchii. Tato datová sada se používá jenom v prostředích Linuxu.
- Inventář uzlů kontejneru – zobrazuje počet typů orchestrace použitých na uzlech nebo hostitelích kontejneru. Uzly nebo hostitelé počítačů jsou také uvedeny podle počtu kontejnerů. Tato datová sada se používá jenom v prostředích Linuxu.
- Inventář imagí kontejnerů – zobrazuje celkový počet použitých imagí kontejneru a počet typů imagí. Značka image uvádí také počet obrázků.
- Stav kontejnerů – zobrazuje celkový počet uzlů kontejneru nebo hostitelských počítačů se spuštěnými kontejnery. Počítače jsou také uvedeny podle počtu spuštěných hostitelů.
- Proces kontejneru – zobrazuje spojnicový graf procesů kontejnerů spuštěných v průběhu času. Kontejnery jsou také uvedeny spuštěním příkazu nebo procesu v kontejnerech. Tato datová sada se používá jenom v prostředích Linuxu.
- Výkon procesoru kontejneru – zobrazuje spojnicový graf průměrného využití procesoru v průběhu času pro uzly nebo hostitele počítačů. Vypíše také uzly a hostitele počítačů na základě průměrného využití procesoru.
- Výkon paměti kontejneru – zobrazuje spojnicový graf využití paměti v průběhu času. Uvádí také využití paměti počítače na základě názvu instance.
- Výkon počítače – zobrazuje spojnicové grafy procenta výkonu procesoru v průběhu času, procenta využití paměti v průběhu času a megabajty volného místa na disku v průběhu času. Pokud chcete zobrazit další podrobnosti, můžete najet myší na libovolnou čáru v grafu.
Každá oblast řídicího panelu je vizuální reprezentací vyhledávání, které se spouští na shromážděných datech.
V oblasti Stav kontejneru klikněte na horní oblast, jak je znázorněno níže.
Otevře se Log Analytics a zobrazí informace o stavu kontejnerů.
Tady můžete upravit vyhledávací dotaz a upravit ho tak, abyste našli konkrétní informace, které vás zajímají. Další informace o dotazech na protokoly najdete v tématu Dotazy protokolu ve službě Azure Monitor.
Řešení potíží vyhledáním neúspěšného kontejneru
Log Analytics označí kontejner jako neúspěšný , pokud se ukončil s nenulovým ukončovacím kódem. Přehled chyb a selhání v prostředí najdete v oblasti Neúspěšné kontejnery .
Vyhledání neúspěšných kontejnerů
- Klikněte na oblast Stav kontejneru .
- Otevře se Log Analytics a zobrazí stav kontejnerů, podobně jako v následujícím příkladu.
- Rozbalte řádek Selhání a kliknutím na + přidejte do dotazu jeho kritéria. Potom v dotazu zakomentujte řádek Souhrn.
- Spusťte dotaz a rozbalte řádek ve výsledcích, abyste zobrazili ID image.
- Do dotazu na protokol zadejte následující příkaz.
ContainerImageInventory | where ImageID == <ImageID>
k zobrazení podrobností o obrázku, jako je velikost obrázku a počet zastavených a neúspěšných obrázků.
Dotazování protokolů na data kontejneru
Při řešení potíží s konkrétní chybou vám může pomoct zjistit, kde se ve vašem prostředí vyskytuje. Následující typy protokolů vám pomůžou vytvořit dotazy, které vrátí požadované informace.
- ContainerImageInventory – tento typ použijte, když se pokoušíte najít informace uspořádané podle obrázku a zobrazit informace o obrázku, jako jsou ID nebo velikosti obrázků.
- ContainerInventory – tento typ použijte, když chcete získat informace o umístění kontejneru, o jejich jménech a o tom, jaké image běží.
- ContainerLog – Tento typ použijte, pokud chcete najít konkrétní informace a položky protokolu chyb.
- ContainerNodeInventory_CL Tento typ použijte, pokud chcete získat informace o hostiteli nebo uzlu, kde se kontejnery nacházejí. Poskytuje informace o verzi Dockeru, typu orchestrace, úložišti a síti.
- ContainerProcess_CL Tento typ slouží k rychlému zobrazení procesu spuštěného v kontejneru.
- ContainerServiceLog – Tento typ použijte, když se pokoušíte najít informace o záznamu auditu pro démona Dockeru, jako jsou například příkazy start, stop, delete nebo pull.
- KubeEvents_CL Tento typ použijte k zobrazení událostí Kubernetes.
- KubePodInventory_CL Tento typ použijte, pokud chcete porozumět informacím o hierarchii clusteru.
Dotazování protokolů na data kontejneru
Vyberte image, o které víte, že v nedávné době selhala, a vyhledejte protokoly chyb. Začněte vyhledáním názvu kontejneru, na kterém je spuštěná tato image, pomocí hledání ContainerInventory . Vyhledejte například
ContainerInventory | where Image == "ubuntu" and ContainerState == "Failed"
Rozbalením libovolného řádku ve výsledcích zobrazíte podrobnosti o daném kontejneru.
Příklady dotazů na protokoly
Často je užitečné vytvářet dotazy začínající příkladem nebo dvěma a pak je upravit tak, aby vyhovovaly vašemu prostředí. Jako výchozí bod můžete experimentovat s oblastí UKÁZKOVÉ DOTAZY na pravé straně stránky řešení, která vám pomůže vytvářet pokročilejší dotazy.
Ukládání dotazů na protokoly
Ukládání dotazů je standardní funkcí ve službě Azure Monitor. Když si je uložíte, budete mít ty, které jste považovali za užitečné pro budoucí použití.
Po vytvoření dotazu, který je pro vás užitečný, ho uložte kliknutím na Oblíbené v horní části stránky Prohledávání protokolu. Pak k němu budete mít snadný přístup později ze stránky Můj řídicí panel .
Odebrání řešení z pracovního prostoru
Pokud chcete odebrat řešení pro monitorování kontejnerů, postupujte podle pokynů pro odebrání řešení pomocí jednoho z následujících způsobů: Azure Portal, PowerShell nebo Azure CLI.
Další kroky
Dotazování protokolů pro zobrazení podrobných záznamů dat kontejneru