針對遠端寫入進行疑難排解
本文說明如何疑難排解在適用於 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_ID
與 IDENTITY_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 監視器工作區 (AMW) 建立自訂資料收集端點 (DCE) 和自訂資料收集規則 (DCR),以擷取 Prometheus 計量。