가상 머신, 확장 집합 또는 Kubernetes 클러스터에서 Azure Monitor 작업 영역으로 Prometheus 메트릭 보내기
Prometheus는 Kubernetes 클러스터 모니터링에만 국한되지 않습니다. Prometheus를 사용하여 서버에서 실행되는 애플리케이션과 서비스가 어디서 실행되는지 모니터링합니다. 예를 들어 가상 머신, 가상 머신 확장 집합 또는 온-프레미스 서버에서 실행되는 애플리케이션을 모니터링할 수 있습니다. 자체 관리 클러스터 및 Prometheus 서버에서 Azure Monitor 작업 영역으로 Prometheus 메트릭을 보낼 수도 있습니다.
이 문서에서는 자체 관리형 Prometheus 인스턴스에서 Azure Monitor 작업 영역으로 데이터를 보내도록 원격 쓰기를 구성하는 방법을 설명합니다.
원격 쓰기 옵션
자체 관리형 Prometheus는 Azure 및 비 Azure 환경에서 실행할 수 있습니다. 다음은 Prometheus가 실행 중인 환경에 따라 Azure Monitor 작업 영역에 원격 쓰기를 위한 인증 옵션입니다.
Azure 관리형 가상 머신, 가상 머신 확장 집합 및 Kubernetes 클러스터
Azure 환경에서 자체 관리 Prometheus를 실행하는 서비스에 사용자 할당 관리 ID 인증을 사용합니다. Azure 관리 서비스에는 다음이 포함됩니다.
- Azure Virtual Machines
- Azure Virtual Machine Scale Sets
- AKS(Azure Kubernetes Service)
Azure 관리형 리소스에 대한 원격 쓰기를 설정하려면 이 문서의 뒷부분에 있는 사용자 할당 관리 ID 인증을 사용하여 원격 쓰기를 참조하세요.
비 Azure 환경에서 실행되는 가상 머신 및 Kubernetes 클러스터
비 Azure 환경에 가상 머신 또는 Kubernetes 클러스터가 있거나 Azure Arc에 온보딩한 경우 자체 관리형 Prometheus를 설치하고 Microsoft Entra 애플리케이션 인증을 사용하여 원격 쓰기를 구성합니다. 자세한 내용은 이 문서의 뒷부분에 있는 Microsoft Entra 애플리케이션 인증을 사용하여 원격 쓰기를 참조하세요.
Azure Arc 지원 서버에 온보딩하면 Azure에서 비 Azure 가상 머신을 관리하고 구성할 수 있습니다. 자세한 내용은 Azure Arc 지원 서버 및 Azure Arc 지원 Kubernetes를 참조하세요. Azure Arc 지원 서버는 Microsoft Entra 인증만 지원합니다.
참고 항목
시스템 할당 관리 ID는 Azure Monitor 작업 영역에 대한 원격 쓰기에 대해 지원되지 않습니다. 사용자 할당 관리 ID 또는 Microsoft Entra 애플리케이션 인증을 사용합니다.
필수 조건
지원되는 버전
- 관리 ID 인증에는 2.45 이후의 Prometheus 버전이 필요합니다.
- 2.48 이후의 Prometheus 버전은 Microsoft Entra 애플리케이션 인증에 필요합니다.
Azure Monitor 작업 영역
이 문서에서는 Prometheus 메트릭을 Azure Monitor 작업 영역으로 보내는 방법을 다룹니다. Azure Monitor 작업 영역을 만들려면 Azure Monitor 작업 영역 관리를 참조하세요.
사용 권한
이 문서의 단계를 완료하려면 클러스터 또는 리소스에 대한 관리자 권한이 필요합니다.
원격 쓰기에 대한 인증 설정
Prometheus가 실행 중인 환경에 따라 사용자가 할당한 관리 ID 또는 Microsoft Entra 애플리케이션 인증을 사용하여 Azure Monitor 작업 영역으로 데이터를 보내도록 원격 쓰기를 구성할 수 있습니다.
Azure Portal 또는 Azure CLI를 사용하여 사용자 할당 관리 ID 또는 Microsoft Entra 애플리케이션을 만듭니다.
사용자 할당 관리 ID 인증을 사용하여 원격 쓰기
사용자가 할당한 관리 ID 인증은 모든 Azure 관리 환경에서 사용할 수 있습니다. Prometheus 서비스가 비 Azure 환경에서 실행되는 경우 Microsoft Entra 애플리케이션 인증을 사용할 수 있습니다.
Azure Monitor 작업 영역에 원격 쓰기를 위해 사용자 할당 관리 ID를 구성하려면 다음 단계를 완료합니다.
사용자 할당 관리 ID 만들기
원격 쓰기 구성에서 사용할 사용자 관리 ID를 만들려면 사용자 할당 관리 ID 관리를 참조 하세요.
만든 관리 ID의 clientId
값을 확인합니다. 이 ID는 Prometheus 원격 쓰기 구성에 사용됩니다.
애플리케이션에 모니터링 메트릭 게시자 역할 할당
작업 영역의 데이터 수집 규칙에서 모니터링 메트릭 게시자 역할을 관리 ID에 할당합니다.
Azure Monitor 작업 영역의 개요 창에서 데이터 수집 규칙 링크를 선택합니다.
데이터 수집 규칙 페이지에서 액세스 제어(IAM)를 선택합니다.
추가>역할 할당 추가를 선택합니다.
모니터링 메트릭 게시자를 검색하여 선택한 다음, 다음을 선택합니다.
관리 ID를 선택합니다.
멤버 선택을 선택합니다.
관리 ID 드롭다운 목록에서 사용자 할당 관리 ID를 선택합니다.
사용할 사용자 할당 ID를 선택한 다음, 선택을 선택합니다.
검토 + 할당을 선택하여 역할 할당을 완료합니다.
가상 머신 또는 가상 머신 확장 집합에 관리 ID 할당
Important
이 섹션의 단계를 완료하려면 가상 머신 또는 가상 머신 확장 집합에 대한 소유자 또는 사용자 액세스 관리자 권한이 있어야 합니다.
Azure Portal에서 클러스터, 가상 머신 또는 가상 머신 확장 집합의 페이지로 이동합니다.
ID를 선택합니다.
사용자 할당을 선택합니다.
추가를 선택합니다.
만든 사용자 할당 관리 ID를 선택한 다음 추가를 선택합니다.
Azure Kubernetes Service에 대한 관리 ID 할당
Azure Kubernetes Service의 경우 관리 ID를 가상 머신 확장 집합에 할당해야 합니다.
AKS는 가상 머신 확장 집합을 포함하는 리소스 그룹을 만듭니다. 리소스 그룹 이름은 MC_<resource group name>_<AKS cluster name>_<region>
형식입니다.
리소스 그룹의 각 가상 머신 확장 집합에 대해 이전 섹션의 단계에 따라 관리 ID를 할당하고 가상 머신 또는 가상 머신 확장 집합에 관리 ID를 할당합니다.
원격 쓰기 구성
원격 쓰기는 Prometheus 구성 파일 prometheus.yml
또는 Prometheus 연산자에서 구성됩니다.
원격 쓰기를 구성하는 방법에 대한 자세한 내용은 이 Prometheus.io 문서인 구성을 참조하세요. 원격 쓰기 구성 튜닝에 대한 자세한 내용은 원격 쓰기 튜닝을 참조 하세요.
Azure Monitor 작업 영역으로 데이터를 보내려면 자체 관리되는 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 Monitor 작업 영역의 메트릭 수집 엔드포인트를 지정합니다. Azure Portal의 Azure Monitor 작업 영역에 대한 개요 창에서 찾을 수 있습니다.
managed_identity
oauth
구현에 따라 또는 Microsoft Entra 애플리케이션 인증에 사용합니다. 사용하지 않는 개체를 제거합니다.
다음 Azure CLI 명령을 사용하여 관리 ID에 대한 클라이언트 ID를 찾습니다.
az identity list --resource-group <resource group name>
자세한 내용은 az identity list을 참조하세요.
포털에서 관리 ID 인증을 위한 클라이언트를 찾으려면 Azure Portal에서 관리 ID로 이동하여 관련 ID 이름을 선택합니다. 관리 ID의 개요 창에서 클라이언트 ID 값을 복사합니다.
Microsoft Entra ID 애플리케이션에 대한 클라이언트 ID를 찾으려면 다음 Azure CLI 명령을 사용합니다(또는 Microsoft Entra 애플리케이션 인증 섹션을 사용하여 이전 원격 쓰기의 첫 번째 단계 참조).
$ az ad app list --display-name < application name>
자세한 내용은 az ad app list를 참조하세요.
참고 항목
구성 파일을 편집한 후 Prometheus를 다시 시작하여 변경 내용을 적용합니다.
원격 쓰기 데이터가 흐르는지 확인
다음 메서드를 사용하여 Prometheus 데이터가 Azure Monitor 작업 영역으로 전송되고 있는지 확인합니다.
PromQL을 사용한 Azure Monitor 메트릭 탐색기
메트릭이 Azure Monitor 작업 영역으로 이동하는지 확인하려면 Azure Portal의 Azure Monitor 작업 영역에서 메트릭을 선택합니다. Prometheus Query Language(PromQL)와 함께 메트릭 탐색기를 사용하여 자체 관리형 Prometheus 환경에서 기대하는 메트릭을 쿼리합니다. 자세한 내용은 PromQL을 사용하는 Azure Monitor 메트릭 탐색기를 참조하세요.
Azure Monitor 작업 영역의 Prometheus 탐색기
Prometheus 탐색기는 Azure 환경 내에서 Prometheus 메트릭과 상호 작용하는 편리한 방법을 제공하므로 모니터링 및 문제 해결이 더 효율적입니다. Prometheus 탐색기를 사용하려면 Azure Portal에서 Azure Monitor 작업 영역으로 이동하여 Prometheus 탐색기를 선택합니다. 그런 다음 자체 관리되는 Prometheus 환경에서 기대하는 메트릭을 쿼리할 수 있습니다.
자세한 내용은 Azure 통합 문서를 사용하여 Prometheus 메트릭 쿼리를 참조하세요.
Grafana
Grafana에서 PromQL 쿼리를 사용하여 결과가 예상 데이터를 반환하는지 확인합니다. Grafana를 구성하려면 Grafana를 관리되는 Prometheus로 설정하는 방법에 대한 문서를 참조하세요.
원격 쓰기 문제 해결
Azure Monitor 작업 영역에 원격 데이터가 표시되지 않는 경우 일반적인 문제 및 해결 방법은 원격 쓰기 문제를 참조하세요.