共用方式為


將 Prometheus 計量從虛擬機器、擴展集或 Kubernetes 叢集傳送至 Azure 監視器工作區

Prometheus 不限於監視 Kubernetes 叢集。 使用 Prometheus 監視在伺服器上執行的應用程式和服務,無論其在何處執行作業。 例如,您可以監視在虛擬機、虛擬機擴展集或甚至是內部部署伺服器上執行的應用程式。 您也可以從自我管理叢集和 Prometheus 伺服器將 Prometheus 計量傳送至 Azure 監視器工作區。

本文說明如何設定遠端寫入,以將數據從自我管理 Prometheus 實例傳送至 Azure 監視器工作區。

遠端寫入的選項

自我管理 Prometheus 可以在 Azure 和非 Azure 環境中執行。 以下是根據 Prometheus 執行所在的環境,遠端寫入 Azure 監視器工作區的驗證選項。

Azure 管理的虛擬機、虛擬機擴展集和 Kubernetes 叢集

針對在 Azure 環境中執行自我管理 Prometheus 的服務,使用使用者指派的受控識別驗證。 Azure 受控服務包括:

  • Azure 虛擬機器
  • Azure 虛擬機器擴展集
  • Azure Kubernetes Service (AKS)

若要設定 Azure 受控資源的遠端寫入,請參閱 本文稍後使用使用者指派的受控識別驗證 進行遠端寫入。

在非 Azure 環境中執行的虛擬機和 Kubernetes 叢集

如果您在非 Azure 環境中有虛擬機或 Kubernetes 叢集,或已上線至 Azure Arc,請安裝自我管理 Prometheus,並使用 Microsoft Entra 應用程式驗證來設定遠端寫入。 如需詳細資訊,請參閱 本文稍後使用 Microsoft Entra 應用程式驗證 進行遠端寫入。

上線至已啟用 Azure Arc 的伺服器可讓您在 Azure 中管理和設定非 Azure 虛擬機。 如需詳細資訊,請參閱 已啟用 Azure Arc 的伺服器已啟用 Azure Arc 的 Kubernetes。 已啟用 Azure Arc 的伺服器僅支援Microsoft Entra 驗證。

注意

遠端寫入 Azure 監視器工作區不支援系統指派的受控識別。 使用使用者指派的受控識別或Microsoft Entra 應用程式驗證。

必要條件

支援的版本

  • 受控識別驗證需要 2.45 之前的 Prometheus 版本。
  • Microsoft Entra 應用程式驗證需要 2.48 之前的 Prometheus 版本。

Azure 監視器工作區

本文介紹將 Prometheus 計量傳送至 Azure 監視器工作區。 若要建立 Azure 監視器工作區,請參閱管理 Azure 監視器工作區

權限

需要叢集或資源的系統管理員權限,才能完成本文中的步驟。

設定遠端寫入的驗證

根據 Prometheus 執行所在的環境,您可以設定遠端寫入,以使用使用者指派的受控識別或Microsoft Entra 應用程式驗證,將數據傳送至 Azure 監視器工作區。

使用 Azure 入口網站 或 Azure CLI 來建立使用者指派的受控識別或Microsoft Entra 應用程式。

使用使用者指派的受控識別驗證進行遠端寫入

使用者指派的受控識別驗證可用於任何 Azure 受控環境。 如果您的 Prometheus 服務是在非 Azure 環境中執行,您可以使用 Microsoft Entra 應用程式驗證。

若要設定使用者指派的受控識別以遠端寫入 Azure 監視器工作區,請完成下列步驟。

建立使用者指派的受控識別

若要建立要用於遠端寫入組態的使用者受控識別,請參閱 管理使用者指派的受控識別

請注意您所建立受控識別的 值 clientId 。 此識別碼用於 Prometheus 遠端寫入設定。

將監視計量發行者角色指派給應用程式

在工作區的數據收集規則上,將監視計量發行者角色指派給受控識別:

  1. 在 Azure 監視器工作區的概觀窗格中,選取 [資料收集規則 ] 連結。

    顯示 Azure 監視器工作區窗格上數據收集規則連結的螢幕快照。

  2. 在數據收集規則的頁面上,選取 [訪問控制][IAM]。

  3. 選取 [新增>][新增角色指派]。

    顯示新增數據收集規則角色指派的螢幕快照。

  4. 搜尋並選取 [監視計量發行者],然後選取 [ 下一步]。

    顯示數據收集規則角色指派功能表的螢幕快照。

  5. 選取 [受控識別]。

  6. 選擇 [選取成員]

  7. 在 [ 受控識別] 下拉式 清單中,選取 [ 使用者指派的受控識別]。

  8. 選取您要使用的使用者指派身分識別,然後選擇 [選取]

    顯示針對數據收集規則選取成員和使用者指派受控識別的螢幕快照。

  9. 選取 [檢閱 + 指派],以完成角色指派。

將受控識別指派給虛擬機或虛擬機擴展集

重要

若要完成本節中的步驟,您必須擁有虛擬機或虛擬機擴展集的擁有者或使用者存取系統管理員許可權。

  1. 在 Azure 入口網站 中,移至叢集、虛擬機或虛擬機擴展集的頁面。

  2. 選取 [身分識別]。

  3. 選取 [已指派的使用者]

  4. 選取 [新增]。

  5. 選取您所建立的使用者指派受控識別,然後選取 [ 新增]。

    顯示 [建立使用者指派的受控識別] 窗格的螢幕擷取畫面。

指派 Azure Kubernetes Service 的受控識別

針對 Azure Kubernetes Service,受控識別必須指派給虛擬機擴展集。

AKS 會建立包含虛擬機擴展集的資源群組。 資源群組名稱的格式為 MC_<resource group name>_<AKS cluster name>_<region>

針對資源群組中的每個虛擬機擴展集,請根據上一節中的步驟指派受控識別, 將受控識別指派給虛擬機或虛擬機擴展集

設定遠端寫入

遠端寫入是在 Prometheus 組態檔 prometheus.yml 或 Prometheus 運算符中設定。

如需設定遠端寫入的詳細資訊,請參閱此 Prometheus.io 文章: 設定。 如需微調遠端寫入組態的資訊,請參閱 遠端寫入微調

若要將數據傳送至您的 Azure 監視器工作區,請將下列區段新增至自我管理 Prometheus 實例的組態檔 (prometheus.yml

remote_write:   
  - url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
# Microsoft Entra ID configuration.
# The Azure cloud. Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
    azuread:
      cloud: 'AzurePublic'
      managed_identity:
        client_id: "<client-id of the managed identity>"
      oauth:
        client_id: "<client-id from the Entra app>"
        client_secret: "<client secret from the Entra app>"
        tenant_id: "<Azure subscription tenant Id>"

url 參數指定 Azure 監視器工作區的計量擷取端點。 您可以在 Azure 入口網站 中 Azure 監視器工作區的概觀窗格中找到它。

顯示 Azure 監視器工作區計量擷取端點的螢幕快照。

managed_identity視您的實作而定,請使用 或 oauth Microsoft Entra 應用程式驗證。 移除您未使用的物件。

使用下列 Azure CLI 命令來尋找受控識別的用戶端識別碼:

az identity list --resource-group <resource group name>

如需詳細資訊,請參閱 az 身分識別清單

若要在入口網站中尋找您的用戶端以進行受控識別驗證,請移至 Azure 入口網站 中的受控識別,然後選取相關的身分識別名稱。 從受控識別的 [概觀] 窗格複製 [用戶端標識符] 的值

顯示受控識別概觀窗格上用戶端標識碼的螢幕快照。

若要尋找 Microsoft Entra ID 應用程式的用戶端識別符,請使用下列 Azure CLI 命令(或參閱先前 使用 Microsoft Entra 應用程式驗證 進行遠端寫入的第一個步驟):

$ az ad app list --display-name < application name>

如需詳細資訊,請參閱 az ad 應用程式清單

注意

編輯組態檔之後,請重新啟動 Prometheus 以套用變更。

確認遠端寫入數據正在流動

使用下列方法來確認 Prometheus 數據已傳送至您的 Azure 監視器工作區。

搭配 PromQL 的 Azure 監視器計量瀏覽器

若要檢查計量是否流向 Azure 監視器工作區,請從 Azure 入口網站中的 Azure 監視器工作區選取 [計量]。 使用計量總管搭配 Prometheus 查詢語言 (PromQL) 來查詢您預期來自自我管理 Prometheus 環境的計量。 如需詳細資訊,請參閱 使用 PromQL 的 Azure 監視器計量總管。

Azure 監視器工作區中的 Prometheus 總管

Prometheus 總管可讓您在 Azure 環境中與 Prometheus 計量互動,讓監視和疑難解答更有效率。 若要使用 Prometheus 總管,請移至 Azure 入口網站 中的 Azure 監視器工作區,然後選取 [Prometheus 總管]。 然後,您可以查詢您預期來自自我管理 Prometheus 環境的計量。

如需詳細資訊,請參閱 使用 Azure 活頁簿查詢 Prometheus 計量。

Grafana

在 Grafana 中使用 PromQL 查詢來驗證結果傳回預期的資料。 若要設定 Grafana,請參閱 有關使用 Managed Prometheus 設定 Grafana 的文章。

針對遠端寫入進行疑難排解

如果遠端數據未出現在 Azure 監視器工作區中,請參閱 針對常見問題和解決方案進行遠端寫入 疑難解答。