共用方式為


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

本文說明如何在適用於 Prometheus 的 Azure 監視器受控服務中針對遠端寫入進行疑難解答。 如需遠端寫入的詳細資訊,請參閱 適用於 Prometheus 的 Azure 監視器受控服務中的遠端寫入。

支援的版本

  • 受控識別驗證需要大於 v2.45 的 Prometheus 版本。
  • Microsoft Entra ID 應用程式驗證需要大於 v2.48 的 Prometheus 版本。

Prometheus 記錄中的 HTTP 403 錯誤

角色指派生效大約需要 30 分鐘的時間。 在此期間,您可能會在 Prometheus 記錄中看到 HTTP 403 錯誤。 確認您已使用工作區數據收集規則上的角色正確 Monitoring Metrics Publisher 設定受控識別或 Microsoft Entra ID 應用程式。 如果組態正確,請等候 30 分鐘讓角色指派生效。

沒有 Kubernetes 數據正在流動

如果遠端資料未流動,請執行下列命令來尋找遠端寫入容器中的錯誤。

kubectl --namespace <Namespace> describe pod <Prometheus-Pod-Name>

容器會重複重新啟動

容器定期重新啟動可能是因為容器設定錯誤所致。 執行下列命令來檢視為容器設定的組態值。 請確認群組態值特別是 AZURE_CLIENT_IDIDENTITY_TYPE

kubectl get pod <Prometheus-Pod-Name> -o json | jq -c  '.spec.containers[] | select( .name | contains("<Azure-Monitor-Side-Car-Container-Name>"))'

這個指令的輸出格式如下:

{"env":[{"name":"INGESTION_URL","value":"https://my-azure-monitor-workspace.eastus2-1.metrics.ingest.monitor.azure.com/dataCollectionRules/dcr-00000000000000000/streams/Microsoft-PrometheusMetrics/api/v1/write?api-version=2021-11-01-preview"},{"name":"LISTENING_PORT","value":"8081"},{"name":"IDENTITY_TYPE","value":"userAssigned"},{"name":"AZURE_CLIENT_ID","value":"00000000-0000-0000-0000-00000000000"}],"image":"mcr.microsoft.com/azuremonitor/prometheus/promdev/prom-remotewrite:prom-remotewrite-20221012.2","imagePullPolicy":"Always","name":"prom-remotewrite","ports":[{"containerPort":8081,"name":"rw-port","protocol":"TCP"}],"resources":{},"terminationMessagePath":"/dev/termination-log","terminationMessagePolicy":"File","volumeMounts":[{"mountPath":"/var/run/secrets/kubernetes.io/serviceaccount","name":"kube-api-access-vbr9d","readOnly":true}]}

擷取配額和限制

設定 Prometheus 遠端寫入以將資料傳送至 Azure 監視器工作區時,您通常會從 Azure 監視器工作區概觀頁面上顯示的遠端寫入端點開始。 此端點牽涉到系統產生的數據收集規則 (DCR) 和數據收集端點 (DCE)。 這些資源具有擷取限制。 如需擷取限制的詳細資訊,請參閱 Azure 監視器服務限制。 針對傳送數據至相同端點的多個叢集設定遠端寫入時,您可能會達到這些限制。 請考慮建立其他 DCR 和 DCE,以將擷取負載分散到多個端點。 這種方法有助於優化效能,並確保有效率的數據處理。 如需建立 DCR 和 DCE 的詳細資訊,請參閱 如何為現有的 Azure 監視器工作區建立自定義數據收集端點(DCE)和自定義數據收集規則(DCR),以內嵌 Prometheus 計量