如 Azure 監視器中的 Kubernetes 監視中所述,Azure 監視器的多個功能會一起運作,以提供 Kubernetes 叢集的完整監視。 本文說明如何針對在其他雲端和內部部署中執行的已啟用 Arc 叢集啟用下列功能:
- Prometheus 指標
- 受控 Grafana
- 容器記錄
- 控制層日誌
支援的叢集
本文所述的上線和設定程式支援下列叢集。
- Azure Local 上的 AKS
- AKS 邊緣程式集
- Canonical
- Azure 上的叢集 API 提供者
- Azure Stack Edge 上的 K8s
- Red Hat OpenShift 發行版,包括 Azure Red Hat OpenShift (ARO)
- SUSE Rancher (Rancher Kubernetes 引擎)
- SUSE Rancher K3s
- VMware(TKG)
對於支援 Arc 且 有 Windows 節點的叢集,你可以在叢集內的 Linux 節點上設置 Managed Prometheus,並從 Windows 節點上運行的指標端點設定擷取指標。 請參見 在具有 Windows 節點的 Arc 啟用叢集中啟用度量收集
支援在 Azure Arc 啟用叢集上的 ARM64 節點。 如需支援 ARM64 節點之已啟用 Azure Arc 叢集的詳細數據,請參閱 叢集需求 。
先決條件
- 您至少需要參與者存取叢集才能上線。
- 您需要監視讀取器或監視參與者,才能在啟用監視之後檢視資料。
- 除了已啟用 Azure Arc 的 Kubernetes 網路需求之外,請確認防火牆需求。
建立工作區
下表說明支援本文中啟用的 Azure 監視器功能所需的工作區。 如果您還沒有每種類型的現有工作區,您可以在上線流程中建立它們。 請參閱設計Log Analytics工作區架構,以取得要建立的工作區數目和放置位置的指引。
| 特徵 / 功能 | 工作空間 | 註釋 |
|---|---|---|
| 受控 Prometheus | Azure 監視器工作區 | 如果您在上線時未指定現有的 Azure 監視器工作區,則會使用資源群組的預設工作區。 若叢集區域中還沒有預設工作區,則名稱格式為 DefaultAzureMonitorWorkspace-<mapped_region> 的工作區將在名稱為 DefaultRG-<cluster_region> 的資源群組建立。Contributor 權限足以讓附加元件將資料傳送至 Azure 監視器工作區。 連結 Azure 監視器工作區以檢視 Azure 受控 Grafana 中的計量時,您將需要 Owner 層級權限。 這是必要的,因為執行上線步驟的使用者必須能夠提供 Azure 受控 Grafana 系統識別 Monitoring Reader 角色在 Azure 監視器工作區上查詢計量。 |
| 容器記錄 控制層日誌 |
Log Analytics 工作區 | 您可以將叢集連結至相同 Microsoft Entra 租使用者中不同 Azure 訂用帳戶中的 Log Analytics 工作區,但您必須使用 Azure CLI 或 Azure Resource Manager 範本。 您目前無法使用 Azure 入口網站執行此設定。 如果您要將現有的叢集連接到另一個訂用帳戶中的Log Analytics工作區,則必須在訂用帳戶中向Log Analytics工作區註冊 Microsoft.ContainerService 資源提供者。 如需詳細資訊,請參閱 註冊資源提供者。 如果您未指定現有的 Log Analytics 工作區,則會使用資源群組的預設工作區。 若叢集區域中還沒有預設工作區,則會使用格式為 DefaultWorkspace-<GUID>-<Region> 的名稱建立一個工作區。欲了解用於預設工作區的支援對應配對清單,請參閱容器深入解析支援的區域對應。 如需如何使用網路安全界限設定工作區的指引,請參閱使用網路安全界限設定 Azure 監視器。 |
| 受控 Grafana | Azure 受控 Grafana 工作區 | 將 Grafana 工作區連結至 Azure 監視器工作區,讓從叢集收集的 Prometheus 計量可供 Grafana 儀表板使用。 |
啟用 Prometheus 指標和容器記錄
當您在叢集上啟用 Prometheus 和容器記錄時,叢集中會安裝容器化版本的 Azure 監視器代理程式 。 您可以在新的或現有的叢集上同時設定這些功能,或個別啟用每個功能。
在為您的叢集啟用受控 Grafana 的同時,啟用 Prometheus 計量的抓取。 如需連結 Azure 監視器工作區和 Azure 受控 Grafana 工作區的選項,請參閱連結 Grafana 工作區。
先決條件
- 叢集必須使用受控識別驗證。
- 下列資源提供者必須在叢集和 Azure 監視器工作區的訂用帳戶中註冊:
- Microsoft.ContainerService(微軟容器服務)
- Microsoft.Insights
- Microsoft.AlertsManagement
- Microsoft.Monitor
- 下列資源提供者必須在 Grafana 工作區訂用帳戶中註冊:
- Microsoft.Dashboard
先決條件
- CLI 2.49.0 版或更高版本中預設有受控識別驗證。
Prometheus 指標
使用 azure-monitor-metrics 選項搭配 az k8s-extension create 以安裝抓取 Prometheus 計量的度量附加元件。 這會使用 Azure 監視器中的預設 Prometheus 計量設定中所述的設定。 如需修改此設定,請參閱 在 Azure 監視器適用於 Prometheus 的受控服務中自訂 Prometheus 計量的抓取。
請參閱下列範例。
### Use default Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics
## Use existing Azure Monitor workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id>
### Use an existing Azure Monitor workspace and link with an existing Grafana workspace
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id>
### Use optional parameters
az k8s-extension create --name azuremonitor-metrics --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id=<workspace-name-resource-id> grafana-resource-id=<grafana-workspace-name-resource-id> AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowList="pods=[k8s-annotation-1,k8s-annotation-n]" AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist "namespaces=[k8s-label-1,k8s-label-n]"
範例
az k8s-extension create --name azuremonitor-metrics --cluster-name "my-cluster"--resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers.Metrics --configuration-settings azure-monitor-workspace-resource-id "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/microsoft.monitor/accounts/my-workspace" grafana-resource-id="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.Dashboard/grafana/my-workspace"
選擇性參數
下列額外的選擇性參數適用於已啟用 Azure Arc 的叢集:
| 參數 | Description | 預設 | 上游 Arc 叢集設定 |
|---|---|---|---|
ClusterDistribution |
叢集的分佈。 | Azure.Cluster.Distribution |
yes |
CloudEnvironment |
叢集的雲端環境。 | Azure.Cluster.Cloud |
yes |
MountCATrustAnchorsDirectory |
是否要掛載 CA 信任錨點目錄。 | true |
no |
MountUbuntuCACertDirectory |
是否要掛接Ubuntu CA 憑證目錄。 |
true,除非是 aks_edge 發行版本。 |
no |
| 參數 | 名稱和描述 |
|---|---|
| 註釋鍵 | AzureMonitorMetrics.KubeStateMetrics.MetricAnnotationsAllowListKubernetes 註解索引鍵的逗號分隔清單,要在資源的 kube_resource_annotations 計量中使用。 例如,kube_pod_annotations 是 Pod 資源的註釋計量。 根據預設,計量只包含名稱和命名空間標籤。 若要包含更多註釋,請提供資源名稱的複數形式列表以及您想為這些資源允許的 Kubernetes 註釋鍵。 您可以改為對於每個資源提供單一 *,允許任何註釋,但會產生嚴重的效能影響。 例如: pods=[kubernetes.io/team,...],namespaces=[kubernetes.io/team],... 。 |
| 標籤索引鍵 | AzureMonitorMetrics.KubeStateMetrics.MetricLabelsAllowlist以逗號分隔的更多 Kubernetes 標籤索引鍵清單,用於資源的 kube_resource_labels 計量 kube_resource_labels 計量。 例如,kube_pod_labels 是 pods 資源的標籤指標。 根據預設此計量只包含名稱和命名空間標籤。 若要包含更多標籤,請以複數形式提供資源名稱清單,以及您想要允許它們的 Kubernetes 標籤索引鍵:每個資源都可以提供單一 * 以允許任何標籤,但這具有嚴重的效能影響。 例如: pods=[app],namespaces=[k8s-label-1,k8s-label-n,...],... 。 |
容器日誌
使用 azuremonitor-containers 選項搭配 az k8s-extension create 來安裝記錄附加元件。
請參閱下列範例。
### Use default Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers
### Use existing Log Analytics workspace
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID=<workspace-resource-id>
### Use managed identity authentication (default as k8s-extension version 1.43.0)
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true
### Use advanced configuration settings
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.resources.daemonset.limits.cpu=150m amalogs.resources.daemonset.limits.memory=600Mi amalogs.resources.deployment.limits.cpu=1 amalogs.resources.deployment.limits.memory=750Mi
### With custom mount path for container stdout & stderr logs
### Custom mount path not required for Azure Stack Edge version > 2318. Custom mount path must be /home/data/docker for Azure Stack Edge cluster with version <= 2318
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.logsettings.custommountpath=<customMountPath>
### Customize log collection settings
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=true dataCollectionSettings='{"interval":"1m","namespaceFilteringMode": "Include", "namespaces": [ "kube-system"],"enableContainerLogV2": true,"streams": ["<streams to be collected>"]}'
檢視 Helm 圖表的資源要求和限制區段,以取得可用的組態設定。
範例
az k8s-extension create --name azuremonitor-containers --cluster-name "my-cluster" --resource-group "my-resource-group" --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings logAnalyticsWorkspaceResourceID="/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/my-resource-group/providers/Microsoft.OperationalInsights/workspaces/my-workspace"
具有正向 Proxy 的已啟用 Arc 的叢集
如果已將叢集設為正向 Proxy,則 Proxy 設定會自動套用至延伸模組。 如果是具有 AMPLS + Proxy 的叢集,應該忽略 Proxy 設定。 使用組態設定 amalogs.ignoreExtensionProxySettings=true 將延伸模組上線。
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.ignoreExtensionProxySettings=true
帶有 Windows 節點的 Arc 啟用叢集
管理式身份驗證不支援已啟用 Arc 的 Windows 節點 Kubernetes 叢集。 藉由指定 amalogs.useAADAuth=false 來使用舊版驗證,如下列範例所示。
az k8s-extension create --name azuremonitor-containers --cluster-name <cluster-name> --resource-group <resource-group> --cluster-type connectedClusters --extension-type Microsoft.AzureMonitor.Containers --configuration-settings amalogs.useAADAuth=false
刪除延伸模組執行個體
下列命令只會刪除延伸模組執行個體,但不會刪除 Log Analytics 工作區。 Log Analytics 資源內的資料會保持不變。
az k8s-extension delete --name azuremonitor-containers --cluster-type connectedClusters --cluster-name <cluster-name> --resource-group <resource-group>
記錄配置檔
若要自訂叢集的日誌收集設定,您可以使用下列格式將組態提供為 JSON 檔案。 如果您未提供組態檔,則會使用下表中識別的預設設定。
{
"interval": "1m",
"namespaceFilteringMode": "Include",
"namespaces": ["kube-system"],
"enableContainerLogV2": true,
"streams": ["Microsoft-Perf", "Microsoft-ContainerLogV2"]
}
下表說明組態中的每個設定。
| 名稱 | Description |
|---|---|
interval |
決定代理程式收集資料的頻率。 有效值為 1m - 30m,間隔為 1m 如果值超出允許範圍,則預設為 1 m。 預設值:1 分鐘。 |
namespaceFilteringMode |
包含:只從 [命名空間] 欄位中的值收集資料。 排除:從 [命名空間] 欄位中的值以外的所有命名空間收集資料。 關閉:忽略所有 命名空間 的選擇,並收集所有命名空間的資料。 預設值:關閉 |
namespaces |
以逗號分隔的 Kubernetes 命名空間陣列,可根據 namespaceFilteringMode 收集庫存和效能資料。 例如,搭配 Include 的 namespaces = ["kube-system", "default"] 設定只會收集這兩個命名空間。 如果使用 Exclude 設定,則代理程式會從kube-system 和 default 以外的所有其他命名空間收集資料。 如果使用 Off 設定,代理程式會從所有命名空間收集資料,包括 kube-system 和 default。 無效和無法辨識的命名空間會被忽略。 沒有。 |
enableContainerLogV2 |
啟用 ContainerLogV2 結構描述的布林值旗標。 如果設定為 true,stdout/stderr 記錄會擷取至 ContainerLogV2 資料表。 如果未設定,除非在 ConfigMap 中另有指定,否則容器記錄會擷取至 ContainerLog 資料表。 指定個別資料流時,您必須包含 ContainerLog 或 ContainerLogV2 的對應資料表。 預設值:True |
streams |
資料表網流陣列。 請參閱 串流值 ,以取得有效串流及其對應資料表的清單。 預設:Microsoft-ContainerInsights-Group-Default |
串流值
當你指定要用 CLI 或 BICEP/ARM 收集的資料表時,你會指定對應 Log Analytics 工作區中特定資料表的串流名稱。 下表列出了溪流名稱及其對應的表。
| Stream | 容器深入解析資料表 |
|---|---|
| Microsoft-ContainerInventory | ContainerInventory |
| Microsoft-ContainerLog | ContainerLog |
| Microsoft-ContainerLogV2 | ContainerLogV2 |
| Microsoft-ContainerLogV2-HighScale | ContainerLogV2 (高縮放模式)1 |
| Microsoft-ContainerNodeInventory | ContainerNodeInventory |
| Microsoft-InsightsMetrics | InsightsMetrics |
| Microsoft-KubeEvents | KubeEvents |
| Microsoft-KubeMonAgentEvents | KubeMonAgentEvents |
| Microsoft-KubeNodeInventory | KubeNodeInventory |
| Microsoft-KubePodInventory | KubePodInventory |
| Microsoft-KubePVInventory | KubePVInventory |
| Microsoft-KubeServices | KubeServices |
| Microsoft-Perf | Perf |
| Microsoft-ContainerInsights-Group-Default | 包含上述所有直播的群組串流。2 |
1 不要同時使用 Microsoft-ContainerLogV2 和 Microsoft-ContainerLogV2-HighScale。 這會導致資料重複。 2 使用群組串流作為簡寫,指定所有個別串流。 如果你想收集特定的串流集合,就分別指定每個串流,而不是使用群組串流。
適用的資料表和計量
收集頻率和命名空間篩選的設定不會套用至所有記錄資料。 下表列出了 Log Analytics 工作區中的資料表及其套用於每個資料表的設定。
| 資料表名稱 | 間隔? | 命名空間? | 備註 |
|---|---|---|---|
| ContainerInventory | Yes | Yes | |
| ContainerNodeInventory | Yes | 否 | 用於命名空間的資料收集設定不適用,因為 Kubernetes 節點不是以命名空間為範圍的資源 |
| KubeNodeInventory | Yes | 否 | 用於命名空間的資料收集設定不適用,Kubernetes 節點不是以命名空間為範圍的資源 |
| KubePodInventory | Yes | Yes | |
| KubePVInventory | Yes | Yes | |
| KubeServices | Yes | Yes | |
| KubeEvents | 否 | Yes | 用於間隔的資料收集設定不適用於 Kubernetes 事件 |
| Perf | Yes | Yes | 用於命名空間的資料收集設定不適用於 Kubernetes 節點相關計量,因為 Kubernetes 節點不是以命名空間為範圍的物件。 |
| InsightsMetrics | Yes | Yes | 資料收集設定僅適用於收集下列命名空間的計量收集:container.azm.ms/kubestate、container.azm.ms/pv 和 container.azm.ms/gpu |
備註
命名空間篩選不適用於 ama-logs 代理程式記錄。 因此,即使 kube-system 命名空間列在排除的命名空間中,仍會內嵌與 ama-logs 代理程式容器相關聯的記錄。
| 計量命名空間 | 間隔? | 命名空間? | 備註 |
|---|---|---|---|
| Insights.container/nodes | Yes | 否 | 節點不是以命名空間為範圍的資源 |
| Insights.container/pods | Yes | Yes | |
| Insights.container/containers | Yes | Yes | |
| Insights.container/persistentvolumes | Yes | Yes |
特殊場景
請查看以下參考資料,以瞭解特定案例的組態需求。
- 如果您使用私人連結,請參閱 在 Azure 監視器中啟用 Kubernetes 監視的私人連結。
- 若要在具有網路安全性周邊的環境中啟用容器記錄,請參閱 使用網路安全性周邊設定 Azure 監視器 以配置您的 Log Analytics 工作區。
- 若要啟用監控附加元件的高擴展模式,請遵循啟用高擴展模式中的上線程式。 您還必須按照更新 ConfigMap 中的說明設定 ConfigMap,並且需要將 DCR 串流從
Microsoft-ContainerLogV2變更為Microsoft-ContainerLogV2-HighScale。
啟用控制平面記錄
控制平面記錄會在 Azure 監視器中實作為 資源記錄 。 若要收集這些記錄,請建立叢集的 診斷設定 。 將它們傳送至與容器記錄相同的 Log Analytics 工作區。
使用 az monitor diagnostic-settings create 命令,使用 Azure CLI 建立診斷設定。 請參閱此命令的文件,以取得其參數的說明。
下列範例會建立診斷設定,將所有 Kubernetes 類別傳送至 Log Analytics 工作區。 這包括 資源特定模式 ,可將記錄傳送至 Microsoft.ContainerService/fleets 支援的資源記錄中列出的特定資料表。
az monitor diagnostic-settings create \
--name 'Collect control plane logs' \
--resource /subscriptions/<subscription ID>/resourceGroups/<resource group name>/providers/Microsoft.ContainerService/managedClusters/<cluster-name> \
--workspace /subscriptions/<subscription ID>/resourcegroups/<resource group name>/providers/microsoft.operationalinsights/workspaces/<log analytics workspace name> \
--logs '[{"category": "karpenter-events","enabled": true},{"category": "kube-audit","enabled": true},
{"category": "kube-apiserver","enabled": true},{"category": "kube-audit-admin","enabled": true},{"category": "kube-controller-manager","enabled": true},{"category": "kube-scheduler","enabled": true},{"category": "cluster-autoscaler","enabled": true},{"category": "cloud-controller-manager","enabled": true},{"category": "guard","enabled": true},{"category": "csi-azuredisk-controller","enabled": true},{"category": "csi-azurefile-controller","enabled": true},{"category": "csi-snapshot-controller","enabled": true},{"category": "fleet-member-agent","enabled": true},{"category": "fleet-member-net-controller-manager","enabled": true},{"category": "fleet-mcs-controller-manager","enabled": true}]'
--metrics '[{"category": "AllMetrics","enabled": true}]' \
--export-to-resource-specific true
啟用 Windows 計量 (預覽版)
Windows 指標收集自 Managed Prometheus 外掛容器版本 6.4.0-main-02-22-2023-3ee44b9e 起啟用。 當你加入 Azure 監視器 Metrics 外掛時,Windows DaemonSet Pods 會開始在你的節點池上執行。 Windows Server 2019 和 Windows Server 2022 都有支援。 請遵循下列步驟,讓 Pod 從您的 Windows 節點集區收集計量。
備註
這個windows-exporter-daemonset.yaml檔案不會設定 CPU 或記憶體限制,所以可能會過度配置 Windows 節點。 欲了解更多資訊,請參閱 資源保留。
當您部署工作負載時,請設定容器的資源儲存體和 CPU 限制。 此設定也會從 NodeAllocatable 中扣除,並協助叢集層級的排程器判斷應將哪些 Pod 放置到哪些節點上。 若排程 Pod 而未予限制,可能會造成過度佈建 Windows 節點,且在某些極端情況下,甚至造成節點狀況不良。
安裝 Windows 匯出工具
要存取 Windows 指標,請手動在叢集節點安裝 windows-exporter-exporter,並部署 windows-exporter-daemonset YAML 檔案。 啟用下列收集器。 如需更多收集器,請參閱 適用於 Windows 指標的 Prometheus 匯出工具。
[defaults]containermemoryprocesscpu_info
部署 windows-exporter-daemonset YAML 檔案。 如果節點有污染,你需要施加適當的容忍度。
kubectl apply -f windows-exporter-daemonset.yaml
啟用 Windows 計量
在指標設定 ConfigMap 中將 windowsexporter 和 windowskubeproxy 布林值 設定為 true ,並將其套用至叢集。 請參閱 使用 ConfigMap 自訂 Kubernetes 叢集的 Prometheus 指標集合。
啟用錄製規則
開啟立即可用儀表板所需的錄製規則:
- 如果您使用 CLI 上線,請包含選項
--enable-windows-recording-rules。 - 如果你是用 ARM 範本、Bicep 或 Azure 原則 來導入,請在參數檔裡設定
enableWindowsRecordingRules為 。true - 如果叢集已上線,請使用此 ARM 範本和此參數檔案來建立規則群組。 這個過程會新增必要的錄影規則,並非叢集上的 ARM 操作。 這不會影響叢集目前的監控狀態。
新增抓取作業
設定在叢集中的 Linux 節點上執行的受控 Prometheus,以從在 Windows 節點上執行的端點抓取計量。 將下列抓取工作新增至ama-metrics-prometheus-config-configmap.yaml,然後將該 configmap 套用到您的叢集。
scrape_configs:
- job_name: windows-exporter
scheme: http
scrape_interval: 30s
label_limit: 63
label_name_length_limit: 511
label_value_length_limit: 1023
tls_config:
ca_file: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
insecure_skip_verify: true
bearer_token_file: /var/run/secrets/kubernetes.io/serviceaccount/token
kubernetes_sd_configs:
- role: node
relabel_configs:
- source_labels: [__meta_kubernetes_node_name]
target_label: instance
- action: keep
source_labels: [__meta_kubernetes_node_label_kubernetes_io_os]
regex: windows
- source_labels:
- __address__
action: replace
target_label: __address__
regex: (.+?)(\:\d+)?
replacement: $$1:9182
確認部署
使用 kubectl 命令行工具 來確認代理程式是否已正確部署。
受控 Prometheus
確認 DaemonSet 是否正確部署在 Linux 節點池上
kubectl get ds ama-metrics-node --namespace=kube-system
Pod 的數量應該與叢集中的 Linux 節點數量相符。 輸出應類似下列範例:
User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-metrics-node 1 1 1 1 1 <none> 10h
確認 Windows 節點是否正確部署
kubectl get ds ama-metrics-win-node --namespace=kube-system
Pod 的數量應該與叢集中的 Windows 節點數量相符。 輸出應類似下列範例:
User@aksuser:~$ kubectl get ds ama-metrics-node --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-metrics-win-node 3 3 3 3 3 <none> 10h
確認這兩個 ReplicaSets 是否已部署於 Prometheus。
kubectl get rs --namespace=kube-system
輸出應類似下列範例:
User@aksuser:~$kubectl get rs --namespace=kube-system
NAME DESIRED CURRENT READY AGE
ama-metrics-5c974985b8 1 1 1 11h
ama-metrics-ksm-5fcf8dffcd 1 1 1 11h
容器洞察與日誌記錄
確認 DaemonSets 是否正確部署在 Linux 節點池中
kubectl get ds ama-logs --namespace=kube-system
Pod 的數量應該與叢集中的 Linux 節點數量相符。 輸出應類似下列範例:
User@aksuser:~$ kubectl get ds ama-logs --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs 2 2 2 2 2 <none> 1d
確認 Windows 節點是否正確部署
kubectl get ds ama-logs-windows --namespace=kube-system
Pod 的數量應該與叢集中的 Windows 節點數量相符。 輸出應類似下列範例:
User@aksuser:~$ kubectl get ds ama-logs-windows --namespace=kube-system
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
ama-logs-windows 2 2 2 2 2 <none> 1d
驗證容器記錄解決方案的部署
kubectl get deployment ama-logs-rs --namespace=kube-system
輸出應類似下列範例:
User@aksuser:~$ kubectl get deployment ama-logs-rs --namespace=kube-system
NAME READY UP-TO-DATE AVAILABLE AGE
ama-logs-rs 1/1 1 1 24d
使用 CLI 來檢視設定
使用 aks show 命令來了解解決方案已啟用、Log Analytics 工作區資源識別碼,以及叢集的摘要資訊。
az aks show --resource-group <resourceGroupofAKSCluster> --name <nameofAksCluster>
此命令會傳回解決方案的 JSON 格式資訊。
addonProfiles 區段應包含 omsagent 的相關資訊,如下列範例所示:
"addonProfiles": {
"omsagent": {
"config": {
"logAnalyticsWorkspaceResourceID": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/my-resource-group/providers/microsoft.operationalinsights/workspaces/my-workspace",
"useAADAuth": "true"
},
"enabled": true,
"identity": null
},
}
後續步驟
- 如果您在嘗試上線時遇到問題,請檢閱 疑難排解指南。
- 請學習如何在 Azure 入口網站中使用容器分析來分析 Kubernetes 監視資料。