共用方式為


監視和記錄數據

適用於:Azure Local 22H2 上的 AKS、Windows Server 上的 AKS

本文說明如何監視 Azure Kubernetes Service (AKS) 部署,並在 Azure Arc 所啟用的 AKS 中收集記錄數據。您將瞭解如何使用 PrometheusGraphana設定及存取內部部署監視,以及如何使用 ElasticsearchFluent BitKibana 來收集及檢視記錄。

有兩種類型的監視和記錄解決方案可供使用,如下表所述:

解決方案 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 圖表 並已擴展以支援 Windows 匯出器,以及保護 Prometheus 和代理程式之間的計量抓取。 部署 Prometheus 解決方案之後,節點導出工具會在每個 Linux 節點上執行,而 Windows 導出工具會在每個 Windows 節點上執行。

注意

由於 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 日誌

後續步驟