本文說明如何在 Azure 監視器中設定和使用容器監視解決方案,以協助您在單一位置檢視和管理 Docker 和 Windows 容器主機。 Docker 是一種軟體虛擬化系統,用來建立將軟體部署自動化至其 IT 基礎結構的容器。
這很重要
容器監視解決方案正在逐步淘汰。若要監視 Kubernetes 環境,建議您轉換至 Azure 監視器容器深入解析。
備註
本文最近有所更新,改為使用「Azure 監視器記錄」一詞,而非 Log Analytics。 記錄資料仍儲存在 Log Analytics 工作區中,並仍由相同的 Log Analytics 服務收集和分析。 我們正在更新術語,以更好地反映 Azure 監視器中的記錄角色。 如需詳細資訊 ,請參閱 Azure 監視器術語變更 。
解決方案會顯示哪些容器正在執行、正在執行的容器映像,以及容器正在執行的位置。 您可以檢視詳細的稽核資訊,其中顯示與容器搭配使用的命令。 此外,您可以藉由檢視和搜尋集中式記錄,而不需從遠端檢視 Docker 或 Windows 主機,對容器進行疑難解答。 您可以在主機上找到可能嘈雜且耗用過多資源的容器。 而且,您可以檢視容器的集中式CPU、記憶體、記憶體、記憶體和網路使用量和效能資訊。 在執行 Windows 的電腦上,您可以集中並比較來自 Windows Server、Hyper-V 和 Docker 容器的記錄。 解決方案支援下列容器協調器:
- Docker Swarm
- DC/OS
- Service Fabric
建議您使用 Azure 監視器容器深入解析來監視 Kubernetes 和 Red Hat OpenShift:
- AKS (設定 AKS 的容器監控功能)
- Red Hat OpenShift (使用 Azure Arc 設定容器深入解析)
如果您已在 Azure Service Fabric 中部署容器,建議您同時啟用 Service Fabric 解決方案 和此解決方案,以包含監視叢集事件。 啟用 Service Fabric 解決方案之前,請先檢閱 使用 Service Fabric 解決方案 以瞭解其提供的內容,以及如何使用它。
如果您想要監視部署至 Azure Kubernetes Service 上所裝載 Kubernetes 環境的工作負載效能,請參閱 監視 Azure Kubernetes Service。 容器監視解決方案不支援監視該平臺。
下圖顯示各種容器主機與代理程式與 Azure 監視器之間的關聯性。
系統需求和支持的平臺
開始之前,請先檢閱下列詳細數據,以確認您符合必要條件。
支援 Docker Orchestrator 和作業系統平臺的容器監控解決方案
下表概述了 Azure Monitor 對 Docker 協調功能及作業系統監控支援中的容器清查、效能和日誌的支援。
| Docker 協調流程 | ACS | Linux | 窗戶 | 容器 庫存 |
圖片 庫存 |
節點 庫存 |
容器 績效 |
容器 事件 |
事件 日誌 |
容器 日誌 |
|---|---|---|---|---|---|---|---|---|---|---|
| Kubernetes | • | • | • | • | • | • | • | • | • | • |
| 中層 DC/OS |
• | • | • | • | • | • | • | • | • | |
| Docker(用於開發、傳遞和運行應用程式的平台) 群集 |
• | • | • | • | • | • | • | • | • | |
| 服務 織物 |
• | • | • | • | • | • | • | • | • | |
| Red Hat Open 轉變 |
• | • | • | • | • | • | • | |||
| Windows 伺服器 (獨立) |
• | • | • | • | • | • | • | |||
| Linux 伺服器 (獨立) |
• | • | • | • | • | • | • |
Linux 上支援的 Docker 版本
- Docker 1.11 至 1.13
- Docker CE 和 EE v17.06
支援作為容器主機的 x64 Linux 發行版
- Ubuntu 14.04 LTS 和 16.04 LTS
- CoreOS(穩定)
- Amazon Linux 2016.09.0
- openSUSE 13.2
- openSUSE LEAP 42.2
- CentOS 7.2 和 7.3
- SLES 12
- RHEL 7.2 和 7.3
- Red Hat OpenShift 容器平臺 (OCP) 3.4 和 3.5
- ACS Mesosphere DC/OS 1.7.3 至 1.8.8
- ACS Kubernetes 1.4.5 至 1.6
- 只有適用於Linux的Log Analytics代理程式1.4.1-45版和更新版本才支援 Kubernetes事件、Kubernetes 清查和容器進程
- ACS Docker Swarm
備註
正在從 Microsoft Operations Management Suite 過渡為 Azure 監視器的過程中,適用於 Windows 或 Linux 的 Operations Management Suite 代理程式將會改稱為適用於 Windows 的 Log Analytics 代理程式和適用於 Linux 的 Log Analytics 代理程式。
支援的 Windows 作業系統
- Windows Server 2016
- Windows 10 年度版 (專業版或企業版)
Windows 上支援的 Docker 版本
- Docker 1.12 和 1.13
- Docker 17.03.0 和更新版本
安裝和設定解決方案
使用下列資訊來安裝和設定解決方案。
從 Azure Marketplace 或使用 從解決方案庫新增監視解決方案中所述的程式,將容器監視解決方案新增至您的 Log Analytics 工作區。
安裝並使用 Docker 搭配 Log Analytics 代理程式。 根據您的作系統和 Docker 協調器,您可以使用下列方法來設定代理程式。
- 針對獨立主機:
- 在支援的Linux作系統上,安裝並執行 Docker,然後安裝並設定 適用於 Linux 的 Log Analytics 代理程式。
- 在 CoreOS 上,您無法執行適用於 Linux 的 Log Analytics 代理程式。 相反地,您會執行適用於Linux的Log Analytics代理程式的容器化版本。 如果您使用 Azure Government Cloud 中的容器,請檢閱 Linux 容器主機,包括 CoreOS 或 Azure Government Linux 容器主機,包括 CoreOS。
- 在 Windows Server 2016 和 Windows 10 上安裝 Docker 引擎和客戶端,然後連線代理程式以收集資訊,並將其傳送至 Azure 監視器。 如果您有 Windows 環境,請檢閱 安裝和設定 Windows 容器主機 。
- 針對 Docker 多主機編排:
- 如果您有 Red Hat OpenShift 環境,請檢閱設定 Red Hat OpenShift 的 Log Analytics 代理程式。
- 如果您有使用 Azure Container Service 的 Kubernetes 叢集:
- 檢閱 設定 Kubernetes 的 Log Analytics Linux 代理程式。
- 查看 設定 Kubernetes 的 Log Analytics Windows 代理程式。
- 檢閱使用 Helm 在 Linux Kubernetes 上部署 Log Analytics 代理程式。
- 如果您有 Azure Container Service DC/OS 叢集,請深入瞭解 使用 Azure 監視器監視 Azure Container Service DC/OS 叢集。
- 如果您有 Docker Swarm 模式環境,請深入瞭解設定適用於 Docker Swarm 的 Log Analytics 代理程式。
- 如果您有 Service Fabric 叢集,請在 使用 Azure 監視器監視容器中深入瞭解。
- 針對獨立主機:
如需如何在執行 Windows 的電腦上安裝及設定 Docker 引擎的其他資訊,請參閱 Windows 上的 Docker 引擎 一文。
這很重要
Docker 必須先執行, 才能在容器主機上安裝 適用於Linux的Log Analytics代理程式 。 如果您已在安裝 Docker 之前安裝代理程式,則必須重新安裝適用於 Linux 的 Log Analytics 代理程式。 如需 Docker 的詳細資訊,請參閱 Docker 網站。
安裝和設定Linux容器主機
安裝 Docker 之後,請使用容器主機的下列設定來設定代理程式以搭配 Docker 使用。 首先,您需要 Log Analytics 工作區識別碼和密鑰,您可以在 Azure 入口網站中找到該識別符。 在您的工作區中,按兩下 [ 快速入門>計算機 ] 以檢視 您的工作區識別碼 和 主鍵。 將兩者複製並貼到您最愛的編輯器中。
針對 CoreOS 以外的所有 Linux 容器主機:
- 如需如何安裝適用於Linux的Log Analytics代理程式的詳細資訊和步驟,請參閱 Log Analytics 代理程式概觀。
針對所有 Linux 容器主機,包括 CoreOS:
啟動您想要監視的容器。 修改並使用下列範例:
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
針對所有 Azure Government Linux 容器主機,包括 CoreOS:
啟動您想要監視的容器。 修改並使用下列範例:
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
從使用已安裝的Linux代理程式切換到容器中的代理程式
如果您先前曾使用直接安裝的代理程式,而想要改用在容器中執行的代理程式,您必須先移除適用於Linux的Log Analytics代理程式。 請參閱 卸載適用於Linux的Log Analytics代理程式 ,以瞭解如何成功卸載代理程式。
設定 Docker Swarm 的 Log Analytics 代理程式
您可以在 Docker Swarm 上以全域服務身分執行 Log Analytics 代理程式。 使用下列資訊來建立Log Analytics代理程序服務。 您必須提供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 -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
保護 Docker Swarm 機密資訊的安全
針對 Docker Swarm,一旦建立工作區 ID 和主要金鑰的機密資訊,請使用下列資訊來建立您的機密資訊。
在主要節點上執行下列命令。
echo "WSID" | docker secret create WSID - echo "KEY" | docker secret create KEY -請確認機密資料是否已正確建立。
keiko@swarmm-master-13957614-0:/run# sudo docker secret lsID NAME CREATED UPDATED j2fj153zxy91j8zbcitnjxjiv WSID 43 minutes ago 43 minutes ago l9rh3n987g9c45zffuxdxetd9 KEY 38 minutes ago 38 minutes ago執行下列命令,將秘密掛接至容器化的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
設定 Red Hat OpenShift 的 Log Analytics 代理程式
有三種方式可將Log Analytics代理程式新增至 Red Hat OpenShift,以開始收集容器監視數據。
- 直接在每個 OpenShift 節點上安裝適用於 Linux 的 Log Analytics 代理程式
- 在每個位於 Azure 的 OpenShift 節點上啟用 Log Analytics VM 擴充功能
- 將 Log Analytics 代理程式安裝為 OpenShift 精靈集
在本節中,我們將討論將Log Analytics代理程式安裝為OpenShift精靈集所需的步驟。
登入 OpenShift 主要節點,並將 yaml 檔案 ocp-omsagent.yaml 從 GitHub 複製到您的主要節點,並使用 Log Analytics 工作區標識符和主要密鑰修改值。
執行下列命令來建立 Azure 監視器的專案,並設定用戶帳戶。
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若要部署精靈集,請執行下列命令:
oc create -f ocp-omsagent.yaml若要確認其已設定且正常運作,請輸入下列內容:
oc describe daemonset omsagent和輸出應該類似:
[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.
如果您想要在使用Log Analytics代理程式精靈集 yaml 檔案時,使用秘密來保護Log Analytics工作區標識碼和主鍵,請執行下列步驟。
登入 OpenShift 主要節點,並從 GitHub 複製 yaml 檔案 ocp-ds-omsagent.yaml 和秘密生成腳本 ocp-secretgen.sh。 此腳本會產生 Log Analytics 工作區識別碼和主要密鑰的秘密 yaml 檔案,以保護秘密資訊。
執行下列命令來建立 Azure 監視器的專案,並設定用戶帳戶。 產生秘密的腳本會要求 Log Analytics 工作區標識碼
<WSID>和主鍵<KEY>,並在完成時建立 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執行下列命令來部署秘密檔案:
oc create -f ocp-secret.yaml執行下列命令來確認部署:
oc describe secret omsagent-secret和輸出應該類似:
[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執行下列命令,以部署 Log Analytics 代理程序精靈集 yaml 檔案:
oc create -f ocp-ds-omsagent.yaml執行下列命令來確認部署:
oc describe ds oms和輸出應該類似:
[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.
設定適用於 Kubernetes 的 Log Analytics Linux 代理程式
針對 Kubernetes,您可以使用腳本來產生工作區標識碼和主要密鑰的秘密 yaml 檔案,以安裝適用於 Linux 的 Log Analytics 代理程式。 在 Log Analytics Docker Kubernetes GitHub 頁面上,您可以選擇搭配或不搭配您的秘密資訊使用檔案。
- Linux DaemonSet 的預設 Log Analytics 代理程序沒有秘密資訊(omsagent.yaml)
- 適用於Linux DaemonSet yaml 檔案的Log Analytics代理程式會使用秘密資訊(omsagent-ds-secrets.yaml)搭配秘密產生腳本來產生秘密 yaml (omsagentsecret.yaml) 檔案。
您可以選擇使用或不使用秘密來建立 omsagent DaemonSets。
不含機密的預設 OMSagent DaemonSet yaml 檔案
針對預設 Log Analytics 代理程式 DaemonSet yaml 檔案,將
<WSID>和<KEY>替換為您的 WSID 和 KEY。 將檔案複製到您的主要節點,然後執行下列命令:sudo kubectl create -f omsagent.yaml
默認 OMSagent DaemonSet yaml 檔案與機密
若要使用Log Analytics代理程式 DaemonSet 使用秘密資訊,請先建立秘密。
複製文稿和秘密範本檔案,並確定它們位於相同的目錄中。
- 產生秘密腳本 - secret-gen.sh
- 祕密範本 - secret-template.yaml
執行腳本,例如下列範例。 腳本會要求 Log Analytics 工作區識別碼和主鍵,並在輸入它們之後,腳本會建立秘密 yaml 檔案,以便執行它。
#> sudo bash ./secret-gen.sh執行下列命令來建立 Secrets Pod:
sudo kubectl create -f omsagentsecret.yaml若要確認,請執行下列命令:
keiko@ubuntu16-13db:~# sudo kubectl get secrets輸出應該類似:
NAME TYPE DATA AGE default-token-gvl91 kubernetes.io/service-account-token 3 50d omsagent-secret Opaque 2 1dkeiko@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若要建立您的 omsagent daemonset,請執行指令
sudo kubectl create -f omsagent-ds-secrets.yaml
確認 Log Analytics 代理程式 DaemonSet 正在執行,如下所示:
keiko@ubuntu16-13db:~# sudo kubectl get ds omsagentNAME DESIRED CURRENT NODE-SELECTOR AGE omsagent 3 3 <none> 1h
針對 Kubernetes,使用腳本生成適用於 Linux 的 Log Analytics 代理程式的工作區 ID 和主鍵的密碼 yaml 檔案。 使用下列範例資訊搭配 omsagent yaml 檔案 來保護秘密資訊。
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
設定適用於 Kubernetes 的 Log Analytics Windows 代理程式
針對 Windows Kubernetes,您可以使用腳本來產生工作區識別碼和主要密鑰的秘密 yaml 檔案,以安裝 Log Analytics 代理程式。 在 Log Analytics Docker Kubernetes GitHub 頁面上,有您可以搭配秘密資訊使用的檔案。 您必須針對主要節點和代理程式節點個別安裝Log Analytics代理程式。
若要使用主要節點上的秘密資訊使用 Log Analytics 代理程式 DaemonSet,請先登入並建立秘密。
複製文稿和秘密範本檔案,並確定它們位於相同的目錄中。
- 產生秘密腳本 - secret-gen.sh
- 祕密範本 - secret-template.yaml
執行腳本,例如下列範例。 腳本會要求 Log Analytics 工作區識別碼和主鍵,並在輸入它們之後,腳本會建立秘密 yaml 檔案,以便執行它。
#> sudo bash ./secret-gen.sh若要建立您的 omsagent daemonset,請執行指令
kubectl create -f omsagentsecret.yaml若要檢查,請執行下列命令:
root@ubuntu16-13db:~# kubectl get secrets輸出應該類似:
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若要建立您的 omsagent daemonset,請執行指令
kubectl create -f ws-omsagent-de-secrets.yaml
確認 Log Analytics 代理程式 DaemonSet 正在執行,如下所示:
root@ubuntu16-13db:~# kubectl get deployment omsagent NAME DESIRED CURRENT NODE-SELECTOR AGE omsagent 1 1 <none> 1h若要在執行 Windows 的背景工作節點上安裝代理程式,請遵循 安裝和設定 Windows 容器主機一節中的步驟。
使用 Helm 在 Linux Kubernetes 上部署 Log Analytics 代理程式
若要使用 helm 在 Linux Kubernetes 環境中部署 Log Analytics 代理程式,請執行下列步驟。
若要建立您的 omsagent daemonset,請執行指令
helm install --name omsagent --set omsagent.secret.wsid=<WSID>,omsagent.secret.key=<KEY> stable/msoms結果看起來會如下所示:
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您可以執行 下列命令來檢查 omsagent 的狀態:
helm status "omsagent"輸出看起來會如下所示: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如需詳細資訊,請造訪 容器方案 Helm Chart。
安裝和設定 Windows 容器主機
使用 區段中的資訊來安裝和設定 Windows 容器主機。
安裝 Windows 代理程式前的準備
在執行 Windows 的電腦上安裝代理程式之前,您必須設定 Docker 服務。 設定可讓 Windows 代理程式或 Azure 監視器虛擬機擴充功能使用 Docker TCP 套接字,讓代理程式可以從遠端存取 Docker 精靈,並擷取數據以進行監視。
設定 Docker 服務
執行下列 PowerShell 命令,以啟用 Windows Server 的 TCP 管道和命名管道:
Stop-Service docker
dockerd --unregister-service
dockerd --register-service -H npipe:// -H 0.0.0.0:2375
Start-Service docker
如需搭配 Windows 容器使用之 Docker 精靈設定的詳細資訊,請參閱 Windows 上的 Docker 引擎。
安裝 Windows 代理程式
若要啟用 Windows 和 Hyper-V 容器監視,請在容器主機的 Windows 電腦上安裝Microsoft監視代理程式 (MMA)。 如需在內部部署環境中執行 Windows 的電腦,請參閱 將 Windows 電腦連線到 Azure 監視器。 針對在 Azure 中執行的虛擬機,請使用 虛擬機擴充功能將其連線到 Azure 監視器。
您可以監視 Service Fabric 上執行的 Windows 容器。 不過,Service Fabric 目前僅支援 在 Azure 中執行的虛擬機 ,以及在您的 內部部署環境中執行 Windows 的電腦 。
您可以確認容器監視解決方案已針對 Windows 正確設定。 若要檢查管理元件是否已正確下載,請尋找 ContainerManagement.xxx。 這些檔案應該位於 C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs 資料夾中。
解決方案元件
從 Azure 入口網站,流覽至 [解決方案庫 ],然後新增 容器監視解決方案。 如果您使用 Windows 代理程式,當您新增此解決方案時,每個電腦上都會安裝下列管理元件與代理程式。 管理元件不需要任何設定或維護。
- ContainerManagement.xxx 安裝在 C:\Program Files\Microsoft Monitoring Agent\Agent\Health Service State\Management Packs 中
容器數據收集詳情
容器監視解決方案會使用您啟用的代理程式,從容器主機和容器收集各種效能計量和記錄數據。
下列代理程式類型每隔三分鐘收集一次數據。
容器記錄
下表顯示容器監視解決方案所收集的記錄範例,以及記錄搜尋結果中顯示的數據類型。
| 數據類型 | 記錄搜尋中的數據類型 | 領域 |
|---|---|---|
| 主機和容器的效能 | Perf |
Computer,ObjectName,CounterName(%Processor 時間,Disk Reads MB,Disk Writes MB,Memory Usage MB,Network Receive Bytes,Network Send Bytes,Processor Usage sec,Network),CounterValue,TimeGenerated,CounterPath,SourceSystem |
| 容器清查 | ContainerInventory |
生成時間,計算機,容器名稱,容器主機名,映像,映像標籤,容器狀態,退出代碼,環境變量,命令,創建時間,開始時間,結束時間,來源系統,容器ID,映像ID |
| 容器映像庫存 | ContainerImageInventory |
TimeGenerated、Computer、Image、ImageTag、ImageSize、VirtualSize、Running、Paused、Stopped、Failed、SourceSystem、ImageID、TotalContainer |
| 容器記錄檔 | ContainerLog |
生成時間、電腦、映像 ID、容器名稱、日誌條目來源、日誌條目、來源系統、容器 ID |
| 容器服務記錄 | ContainerServiceLog |
TimeGenerated、Computer、TimeOfCommand、Image、Command、SourceSystem、ContainerID |
| 容器節點清查 | ContainerNodeInventory_CL |
TimeGenerated、Computer、ClassName_s、DockerVersion_s、OperatingSystem_s、Volume_s、Network_s、NodeRole_s、OrchestratorType_s、InstanceID_g、SourceSystem |
| 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 |
| 容器進程 | 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 |
| Kubernetes 事件 | KubeEvents_CL |
TimeGenerated、Computer、Name_s、ObjectKind_s、Namespace_s、Reason_s、Type_s、SourceComponent_s、SourceSystem、Message |
附加至 PodLabel 資料類型的標籤是您自己的自訂標籤。 數據表中顯示的附加 PodLabel 標籤是範例。 因此,PodLabel_deployment_s、PodLabel_deploymentconfig_s、PodLabel_docker_registry_s 將在您的環境數據集中有所不同,並通常類似於 PodLabel_yourlabel_s。
監視容器
在 Azure 入口網站中啟用解決方案之後, [容器 ] 圖格會顯示容器主機和在主機中執行的容器的摘要資訊。
此圖格顯示您在環境中有多少容器,並提供這些容器是失敗、運行中還是已停止的概覽。
使用容器儀錶板
按一下 容器 圖格。 您會從該處看到依下列方式組織的檢視:
- 容器事件 - 顯示容器狀態和具有失敗容器的計算機。
- 容器記錄 - 顯示一段時間內產生的容器記錄檔圖表,以及記錄檔數目最高的計算機清單。
- Kubernetes 事件 - 顯示一段時間所產生的 Kubernetes 事件圖表,以及 Pod 產生事件的原因清單。 此數據集只會在Linux環境中使用。
- Kubernetes 命名空間清查 - 顯示命名空間和 Pod 的數目,並顯示其階層。 此數據集只會在Linux環境中使用。
- 容器節點清查 - 顯示容器節點/主機上所使用的協調流程類型數目。 計算機節點/主機也會依容器數目列出。 此數據集只會在Linux環境中使用。
- 容器映射清查 - 顯示使用的容器映射總數和映像類型數目。 影像標籤也會列出影像數目。
- 容器狀態 - 顯示具有執行中容器的容器節點/主計算機總數。 計算機也會依執行中的主機數目列出。
- 容器進程 - 顯示一段時間內執行的容器進程的折線圖。 容器也會藉由在容器內執行命令/進程來列出。 此數據集只會在Linux環境中使用。
- 容器 CPU 效能 - 顯示電腦節點/ 主機一段時間內平均 CPU 使用率的折線圖。 也會根據平均 CPU 使用率列出電腦節點/主機。
- 容器記憶體效能 - 顯示一段時間的記憶體使用量折線圖。 也會根據實例名稱列出計算機記憶體使用率。
- 計算機效能 - 顯示一段時間內 CPU 效能百分比的折線圖、一段時間的記憶體使用量百分比,以及一段時間的可用磁碟空間百分比。 您可以將滑鼠停留在圖表中的任何線條上,以檢視更多詳細數據。
儀表板的每個區域都是在收集的數據上執行的搜尋的視覺化呈現。
在 [ 容器狀態] 區域中,按兩下頂端區域,如下所示。
Log Analytics 隨即開啟,顯示容器狀態的相關信息。
您可以從這裡編輯搜尋查詢來修改它,以尋找您感興趣的特定資訊。 如需記錄查詢的詳細資訊,請參閱 在 Azure 監視器中記錄查詢。
尋找故障的容器來進行疑難排解
Log Analytics 會將容器標示為 失敗 ,如果容器已以非零結束代碼結束。 您可以在 [ 失敗的容器 ] 區域中查看環境中的錯誤和失敗概觀。
找出失敗的容器
- 按兩下 [ 容器狀態] 區域。
- Log Analytics 隨即開啟並顯示容器的狀態,如下所示。
- 展開 [失敗] 行,然後點擊 [+],將其條件新增到查詢中。 然後將查詢中的 Summarize 這行註解掉。 顯示應該註解掉之行的螢幕截圖。
- 執行查詢,然後展開結果中的一行,以檢視影像標識碼。
- 在記錄查詢中輸入下列內容。
ContainerImageInventory | where ImageID == <ImageID>以查看映像的詳細數據,例如影像大小和已停止和失敗的映射數目。
容器數據的查詢記錄
當您針對特定錯誤進行疑難解答時,有助於查看它在您的環境中發生的位置。 下列記錄類型可協助您建立查詢,以傳回您想要的資訊。
- ContainerImageInventory – 當您嘗試尋找依影像組織的資訊,以及檢視影像標識碼或大小等影像資訊時,請使用此類型。
- ContainerInventory – 當您想要容器位置、其名稱及其執行所在的映像相關信息時,請使用此類型。
- ContainerLog – 當您想要尋找特定的錯誤記錄資訊和條目時,使用此類型即可。
- ContainerNodeInventory_CL 當您想要容器所在的主機/節點相關信息時,請使用此類型。 它提供 Docker 版本、協調流程類型、記憶體和網路資訊。
- ContainerProcess_CL 使用此類型快速查看在容器內執行的進程。
- ContainerServiceLog – 當您嘗試尋找 Docker 精靈的稽核線索資訊時,請使用此類型,例如啟動、停止、刪除或提取命令。
- KubeEvents_CL 使用此類型來查看 Kubernetes 事件。
- KubePodInventory_CL 當您想要瞭解叢集階層資訊時,請使用此類型。
查詢容器數據日誌
選擇您知道最近失敗的映像,並尋找其錯誤記錄檔。 首先,透過 ContainerInventory 搜尋來尋找正在運行該映像的容器名稱。 例如,搜尋
ContainerInventory | where Image == "ubuntu" and ContainerState == "Failed"
展開結果中的任何數據列,以檢視該容器的詳細數據。
範例記錄查詢
從範例或兩個範例開始建置查詢,然後修改查詢以符合您的環境,通常很有用。 作為起點,您可以在解決方案頁面最右邊的 [SAMPLE QUERIES ] 區域進行實驗,以協助您建置更進階的查詢。
儲存記錄查詢
儲存查詢是 Azure 監視器中的標準功能。 藉由儲存它們,您將隨時有您找到的實用物,以備將來使用。
建立適合使用的查詢之後,請按兩下 [記錄搜尋] 頁面頂端的 [ 我的最愛 ] 加以儲存。 然後,您稍後可以從 [我的儀錶板 ] 頁面輕鬆存取它。
從工作區移除解決方案
若要移除容器監視解決方案,請遵循使用下列其中一項移除解決方案的指示: Azure 入口網站、 PowerShell 或 Azure CLI
後續步驟
查詢記錄 以檢視詳細的容器數據記錄。