監視和記錄數據

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

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

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

解決方法 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 作為資料來源。 您必須擁有自己的 Grafana 授權複本與 AKS Arc。

監視解決方案概觀

作為 Arc 所啟用 AKS 中 Prometheus 解決方案的一部分,會部署並自動設定下列元件:

此部署是以公開可用的 Kube-Prometheus-stack Helm 圖表為基礎,此圖表已擴充以支援 Windows 導出工具,並保護 Prometheus 與代理程式之間抓取的計量。 部署 Prometheus 解決方案之後,節點導出工具就會在每個 Linux 節點上執行,而 Windows 導出工具則會在每個 Windows 節點上執行。

注意

由於 Linux 上僅支援 Prometheus 運算子、Prometheus 和 Kube 狀態計量元件,因此您必須在 AKS 叢集中佈建至少一個 Linux 節點,才能部署此解決方案。

Prometheus 解決方案所抓取的物件和端點包含下列項目:

  • Kube 狀態計量以收集 Kubernetes 所提供的各種計量
  • Kubernetes API 伺服器
  • Kubelet
  • Node 匯出工具以收集 Linux 節點的計量
  • 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-scStorageClass。 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 記錄 (英文)。

後續步驟