監視和記錄數據
適用於:Azure Local 22H2 上的 AKS、Windows Server 上的 AKS
本文說明如何監視 Azure Kubernetes Service (AKS) 部署,並在 Azure Arc 所啟用的 AKS 中收集記錄數據。您將瞭解如何使用 Prometheus
和 Graphana
設定及存取內部部署監視,以及如何使用 Elasticsearch
、Fluent Bit
和 Kibana
來收集及檢視記錄。
有兩種類型的監視和記錄解決方案可供使用,如下表所述:
解決方案 | Azure 連線能力 | 支援和服務 | 成本 | 部署 |
---|---|---|---|---|
Azure 監視器 | 需要使用適用於 Kubernetes 的 Azure Arc 將 Kubernetes 叢集連線到 Azure。 | Microsoft的完整支援與服務。 | 需要註冊 Azure 監視器服務。 | 使用 Azure Arc |
內部部署監視和記錄 | 不需要 Azure 連線。 | 本軟體作為開放原始碼由Microsoft、不含支援合約或SLA的形式、社群和/或外部廠商進行支援。 | 廠商相依。 | 客戶導向。 請參閱 監視叢集使用內部部署監視。 |
若要搭配 Kubernetes 叢集使用 Azure 監視器,請參閱 Azure 監視器概觀。
使用內部部署監視
在生產環境中執行應用程式時,請務必監控叢集中的控制平面節點與工作負載的健康狀況、效能和資源使用情況。 建議的監視解決方案包含下列兩個工具:
- Prometheus 是監視和警示工具組,可用來監視容器化工作負載。 Prometheus 可搭配不同類型的收集器和代理程式來收集計量,並將其儲存在您可以查詢數據和檢視報表的資料庫中。 AKS Arc 可讓您輕鬆地部署 Prometheus,本文稍後會加以說明。
- Grafana 是用來檢視、查詢及可視化 Grafana 儀錶板計量的工具。 您也可以將 Grafana 設定為使用 Prometheus 作為數據源。 您必須擁有與 AKS Arc 相容的 Grafana 授權複本。
監視解決方案概觀
作為 Arc 所啟用 AKS 中 Prometheus 解決方案的一部分,會部署並自動設定下列元件:
此部署是基於公開提供的 Kube-Prometheus-stack Helm 圖表
注意
由於 Prometheus 運算符、Prometheus 和 Kube 狀態計量元件僅在 Linux 上受到支援,因此您必須在 AKS 叢集中布建至少一個 Linux 節點,才能部署此解決方案。
Prometheus 解決方案所擷取的物件和端點包含下列項目:
- 用來收集 Kubernetes 所提供各種計量的 Kube 狀態計量
- Kubernetes API 伺服器
- Kubelet
- 用於收集 Linux 節點指標的 Node Exporter 工具
- 用於收集 Windows 節點指標的 Windows 資料導出工具
若要檢視 AKS Arc 中可用的 Grafana 儀錶板,請參閱 AKS Arc中提供的 Grafana 儀錶板。
使用PowerShell部署監視解決方案
本節描述可用來在工作負載叢集上部署監視的兩個選項。
選項1:建立工作負載叢集時部署監視解決方案
若要啟用監視,請在您使用 New-AksHciCluster 來建立工作負載叢集時提供 -enableMonitoring
參數,如下列範例所示:
New-AksHciCluster -name mynewcluster -enableMonitoring
使用下列預設組態安裝了監控:
- 布建用於存儲度量的永續性儲存空間大小
storageSizeGB
為100 GB。 - 所收集計量的保留時間(
retentionTimeHours
)為240小時(或10天)。
選項 2:在現有的工作負載叢集上部署監視解決方案
執行 Install-AksHciMonitoring 命令,在現有的工作負載叢集上部署監視解決方案,如下所示:
Install-AksHciMonitoring -Name mycluster -storageSizeGB 100 -retentionTimeHours 240
-storageSizeGB
參數會設定用來儲存度量的永續性磁碟區大小,而 -retentionTimeHours
參數會設定所收集度量的保存時間長度。
監視解決方案會安裝在名為 monitoring
的個別命名空間中,並使用名為 monitoring-sc
的 StorageClass。 Prometheus 暴露在內部端點上,該端點只能在叢集中存取,http://akshci-monitoring-prometheus-svc.monitoring:9090
。
使用PowerShell卸載監視解決方案
執行 Uninstall-AksHciMonitoring
PowerShell 命令以卸載 AKS Arc 監視解決方案,如下所示:
Uninstall-AksHciMonitoring -Name <target cluster name>
卸載過程會移除所有內容,包括命名空間、StorageClass,以及永續性磁碟區的實際數據和指標。
部署 Grafana,並將其設定為使用 Prometheus
您可以遵循任何可公開使用的 Grafana 部署指引。 您也可以檢視Microsoft的部署指引,以 使用 Grafana,詳細說明如何部署和設定 Grafana 以將它連線到 AKS Prometheus 實例。 此 GitHub 頁面也說明如何新增 Microsoft 提供的、由 Arc 啟用的 AKS 的 Grafana 儀錶板。
內部部署記錄
記錄對於疑難解答和診斷至關重要。 AKS Arc 中的記錄解決方案是以 Elasticsearch、Fluent Bit 和 Kibana (EFK) 為基礎。 這些元件全都部署為容器:
- Fluent Bit 是記錄處理器和轉寄站,可收集來自不同來源的數據和記錄。 然後,它會格式化、統一,並將其儲存在 Elasticsearch 中。
- Elasticsearch 是分散式搜尋和分析引擎,能夠集中儲存記錄,以進行快速搜尋和數據分析。
- Kibana 在 Web 儀錶板上提供互動式視覺效果。 此工具可讓您檢視和查詢儲存在 Elasticsearch 中的記錄,然後您可以透過圖形和儀錶板將其可視化。
若要設定內部部署的記錄解決方案,請參閱設定記錄以存取 Kibana的步驟。 本文包含收集、匯總和查詢整個叢集容器記錄所需的所有元件。
如需進階組態步驟,請參閱 Windows 日誌。