Azure Monitor Prometheus용 관리 서비스 원격 쓰기
Azure Monitor Prometheus용 관리 서비스는 자체 관리 Prometheus를 바꾸기 위한 것이므로 Kubernetes 클러스터에서 Prometheus 서버를 관리할 필요가 없습니다. 관리되는 서비스를 사용하여 장기 데이터 보존을 위해 자체 관리 Prometheus 클러스터의 데이터를 중앙 집중화하고 클러스터 전체에 중앙 집중식 보기를 만들도록 선택할 수도 있습니다. 이 경우 remote_write를 사용하여 자체 관리 Prometheus에서 Azure 관리되는 서비스로 데이터를 보낼 수 있습니다.
아키텍처
Azure Monitor 작업 영역에 원격으로 쓰기 위해 Kubernetes 클러스터에서 실행되는 Prometheus를 구성할 수 있습니다. 현재 사용자가 할당한 관리 ID 또는 Microsoft Entra ID 애플리케이션은 Azure Monitor 작업 영역에 메트릭을 수집하기 위해 Prometheus 원격 쓰기 구성을 사용하여 지원되는 인증 유형입니다.
또한 Azure Monitor는 Prometheus 원격 쓰기 메트릭을 수집하기 위한 추상화를 제공하고 패킷 인증에 도움이 되는 역방향 프록시 컨테이너(Azure Monitor 사이드카 컨테이너)를 제공합니다.
사용자의 환경에서 실행되는 자체 관리되는 Prometheus 구성에서 직접 원격 쓰기를 구성하는 것이 좋습니다. 직접 구성을 통해 기본 인증이 지원되지 않는 경우 Azure Monitor 사이드카 컨테이너를 사용할 수 있습니다.
지원되는 버전
- 관리 ID 인증에는 v2.45보다 큰 Prometheus 버전이 필요합니다.
- Microsoft Entra ID 애플리케이션 인증을 위해서는 v2.48 이상의 Prometheus 버전이 필요합니다.
원격 쓰기 구성
원격 쓰기 구성은 클러스터 구성과 사용하는 인증 형식에 따라 다릅니다.
- 관리 ID는 AKS(Azure Kubernetes Service) 및 Azure Arc 지원 Kubernetes 클러스터에 권장됩니다.
- Microsoft Entra ID는 AKS(Azure Kubernetes Service) 및 Azure Arc 지원 Kubernetes 클러스터에 사용할 수 있으며 다른 클라우드 또는 온-프레미스에서 실행되는 Kubernetes 클러스터에 필요합니다.
사용자가 할당한 관리 ID와 Microsoft Entra ID 애플리케이션에 대한 원격 쓰기 구성에 대한 자세한 내용은 Prometheus Operator에 대한 Kubernetes에서 원격 쓰기 구성을 참조하세요. 이 옵션은 모든 환경에서 실행되는 자체 관리되는 Prometheus에 사용할 수 있습니다.
Kubernetes 클러스터에서 Prometheus에 대한 원격 쓰기는 사이드 카 컨테이너를 사용하여 구성할 수도 있습니다. 사이드카 컨테이너를 사용하여 Kubernetes 클러스터에 대한 원격 쓰기를 구성하는 방법에 대한 자세한 내용은 다음 문서를 참조하세요.
- 관리 ID 인증이 포함된 사이드카 컨테이너를 사용하여 AKS에서 Azure Monitor로 Prometheus 데이터 보내기
- Microsoft Entra ID 인증이 포함된 사이드카 컨테이너를 사용하여 AKS에서 Azure Monitor로 Prometheus 데이터 보내기
- Microsoft Entra ID 워크로드 ID 인증을 사용하여 사이드카 컨테이너를 사용하여 Azure Monitor에 Prometheus 데이터 보내기
- [사용되지 않음] Microsoft Entra ID Pod 관리 ID(미리 보기) 인증을 사용하여 사이드카 컨테이너를 사용하여 Prometheus 데이터를 Azure Monitor로 보냅니다. Microsoft Entra Pod 관리 ID는 더 이상 사용되지 않으며 Microsoft Entra 워크로드 ID로 대체되었습니다. Microsoft Entra 워크로드 ID 인증을 사용하는 것이 좋습니다.
Virtual Machines 및 Virtual Machine Scale Sets에서 원격 쓰기
원격 쓰기를 사용하여 Virtual Machines 및 Virtual Machines 확장 집합의 Prometheus 데이터를 Azure Monitor 작업 영역으로 보낼 수 있습니다. 서버는 Azure에서 관리되거나 다른 환경에 있을 수 있습니다. 자세한 내용은 Virtual Machines에서 Azure Monitor 작업 영역으로 Prometheus 메트릭 보내기를 참조하세요.
원격 쓰기가 올바르게 작동하는지 확인
다음 방법을 사용하여 Prometheus 데이터가 Azure Monitor 작업 영역으로 전송되고 있는지 확인합니다.
Kubectl 명령
다음 명령을 사용하여 사이드카 컨테이너에서 로그를 볼 수 있습니다. 출력이 avgBytesPerRequest
및 avgRequestDuration
에 대해 0이 아닌 값을 갖는 경우 원격 쓰기 데이터가 흐르는 것입니다.
kubectl logs <Prometheus-Pod-Name> <Azure-Monitor-Side-Car-Container-Name> --namespace <namespace-where-Prometheus-is-running>
# example: kubectl logs prometheus-prometheus-kube-prometheus-prometheus-0 prom-remotewrite --namespace monitoring
이 명령의 출력 형식은 다음과 같습니다.
time="2022-11-02T21:32:59Z" level=info msg="Metric packets published in last 1 minute" avgBytesPerRequest=19713 avgRequestDurationInSec=0.023 failedPublishing=0 successfullyPublished=122
PromQL을 사용한 Azure Monitor 메트릭 탐색기
메트릭이 Azure Monitor 작업 영역으로 이동하는지 확인하려면 Azure Portal의 Azure Monitor 작업 영역에서 메트릭을 선택합니다. 메트릭 탐색기를 사용하여 자체 관리되는 Prometheus 환경에서 기대하는 메트릭을 쿼리합니다. 자세한 내용은 메트릭 탐색기를 참조하세요.
Azure Monitor 작업 영역의 Prometheus 탐색기
Prometheus Explorer는 Azure 환경 내에서 Prometheus 메트릭과 상호 작용하는 편리한 방법을 제공하여 모니터링 및 문제 해결을 더욱 효율적으로 만듭니다. Prometheus 탐색기를 사용하려면 Azure Portal의 Azure Monitor 작업 영역에서 Prometheus Explorer를 선택하여 자체 관리되는 Prometheus 환경에서 기대하는 메트릭을 쿼리합니다. 자세한 내용은 Prometheus 탐색기를 참조하세요.
Grafana
Grafana에서 PromQL 쿼리를 사용하고 결과가 예상했던 데이터를 반환하는지 확인합니다. Prometheus용 Azure 관리되는 서비스용 Grafana 구성에 대한 자세한 내용은 관리 시스템 ID를 사용하여 Azure Monitor Prometheus용 관리 서비스를 Grafana용 데이터 원본으로 사용을 참조하세요.
원격 쓰기 문제 해결
Azure Monitor 작업 영역에 원격 데이터가 표시되지 않는 경우 일반적인 문제 및 솔루션은 원격 쓰기 문제 해결을 참조하세요.