Share via


원격 쓰기 문제 해결

이 문서에서는 Prometheus용 Azure Monitor 관리되는 서비스에서 원격 쓰기 문제를 해결하는 방법을 설명합니다. 원격 쓰기에 대한 자세한 내용은 Prometheus용 Azure Monitor 관리되는 서비스에서 원격 쓰기를 참조하세요.

지원되는 버전

  • 관리 ID 인증에는 v2.45보다 큰 Prometheus 버전이 필요합니다.
  • Microsoft Entra ID 애플리케이션 인증을 위해서는 v2.48 이상의 Prometheus 버전이 필요합니다.

Prometheus 로그의 HTTP 403 오류

역할 할당이 적용되는 데 약 30분이 걸립니다. 이 시간 동안 Prometheus 로그에 HTTP 403 오류가 표시 될 수 있습니다. 작업 영역의 데이터 수집 규칙에서 Monitoring Metrics Publisher 역할을 사용하여 관리 ID 또는 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}]}

수집 할당량 및 제한

Azure Monitor 작업 영역으로 데이터를 보내도록 Prometheus 원격 쓰기를 구성하는 경우 일반적으로 Azure Monitor 작업 영역 개요 페이지에 표시되는 원격 쓰기 엔드포인트를 사용하여 시작합니다. 이 엔드포인트에는 시스템에서 생성된 DCR(데이터 수집 규칙) 및 DCE(데이터 수집 엔드포인트)가 포함됩니다. 이러한 리소스에는 수집 제한이 있습니다. 수집 제한에 대한 자세한 내용은 Azure Monitor 서비스 제한을 참조하세요. 동일한 엔드포인트로 데이터를 보내는 여러 클러스터에서 원격 쓰기를 설정하는 경우 이러한 제한에 도달할 수 있습니다. 여러 엔드포인트에 걸쳐 수집 부하를 분산하기 위해 추가 DCR 및 DCE를 만드는 것이 좋습니다. 이 방법은 성능을 최적화하고 효율적인 데이터 처리를 보장합니다. DCR 및 DCE를 만드는 방법에 대한 자세한 내용은 기존 AMW(Azure Monitor 작업 영역)에 사용자 지정 DCE(데이터 수집 엔드포인트) 및 DCR(사용자 지정 데이터 수집 규칙)을 만들어 Prometheus 메트릭을 수집하는 방법을 참조하세요.