가상 머신, 확장 집합 또는 Kubernetes 클러스터에서 Azure Monitor 작업 영역으로 Prometheus 메트릭 보내기
아티클
Prometheus는 Kubernetes 클러스터 모니터링에만 국한되지 않습니다. Prometheus를 사용하여 서버에서 실행되는 애플리케이션과 서비스가 어디서 실행되는지 모니터링합니다. 예를 들어, Virtual Machine Scale Sets 또는 온-프레미스 서버에서 실행되는 애플리케이션을 모니터링할 수 있습니다. 자체 관리 클러스터 및 Prometheus 서버에서 Azure Monitor 작업 영역으로 Prometheus 메트릭을 보낼 수도 있습니다. 서버에 prometheus를 설치하고 Azure Monitor 작업 영역에 메트릭을 보내도록 원격 쓰기를 구성합니다.
이 문서에서는 자체 관리되는 Prometheus 인스턴스에서 Azure Monitor 작업 영역으로 데이터를 보내도록 원격 쓰기를 구성하는 방법을 설명합니다.
원격 쓰기 옵션
자체 관리되는 Prometheus는 Azure 및 비 Azure 환경에서 실행될 수 있습니다. 다음은 Prometheus가 실행되는 환경을 기반으로 Azure Monitor 작업 영역에 원격으로 쓰기 위한 인증 옵션입니다.
Azure 관리 가상 머신, 가상 머신 확장 집합 및 Kubernetes 클러스터
Azure 환경에서 자체 관리되는 Prometheus를 실행하는 서비스에 대해 사용자 할당 관리 ID 인증을 사용합니다. Azure 관리 서비스에는 다음이 포함됩니다.
Azure 이외의 환경에 가상 머신 또는 Kubernetes 클러스터가 있거나 Azure Arc에 온보딩한 경우, 자체 관리 Prometheus를 설치하고 Microsoft Entra ID 애플리케이션 인증을 사용하여 원격 쓰기를 구성합니다. 자세한 내용은 Microsoft Entra ID 애플리케이션 인증을 사용한 원격 쓰기를 참조하세요.
Azure Arc 지원 서비스에 온보딩하면 Azure에서 비 Azure 가상 머신을 관리하고 구성할 수 있습니다. Azure Arc 지원 서버에 가상 머신을 온보딩하는 방법에 관한 자세한 내용은 Azure Arc 지원 서버와 Azure Arc 지원 Kubernetes를 참조하세요. Arc 지원 서비스는 Microsoft Entra ID 인증만 지원합니다.
참고 항목
Azure Monitor 작업 영역에 대한 원격 쓰기에는 시스템이 할당한 관리 ID가 지원되지 않습니다. 사용자가 할당한 관리 ID 또는 Microsoft Entra ID 애플리케이션 인증을 사용합니다.
필수 조건
지원되는 버전
관리 ID 인증에는 v2.45보다 큰 Prometheus 버전이 필요합니다.
Microsoft Entra ID 애플리케이션 인증을 위해서는 v2.48 이상의 Prometheus 버전이 필요합니다.
Azure Monitor 작업 영역
이 문서에서는 Prometheus 메트릭을 Azure Monitor 작업 영역으로 보내는 방법을 다룹니다. Azure Monitor 작업 영역을 만들려면 Azure Monitor 작업 영역 관리를 참조하세요.
사용 권한
이 문서의 단계를 완료하려면 클러스터 또는 리소스에 대한 관리자 권한이 필요합니다.
원격 쓰기에 대한 인증 설정
Prometheus가 실행되는 환경에 따라 사용자 할당 관리 ID 또는 Microsoft Entra ID 애플리케이션 인증을 사용하여 Azure Monitor 작업 영역에 데이터를 보내도록 원격 쓰기를 구성할 수 있습니다.
Azure Portal 또는 CLI를 사용하여 사용자 할당 관리 ID 또는 Microsoft Entra ID 애플리케이션을 만듭니다.
만든 관리 ID의 clientId 값을 기록해 둡니다. 이 ID는 Prometheus 원격 쓰기 구성에 사용됩니다.
애플리케이션에 모니터링 메트릭 게시자 역할 할당
작업 영역의 데이터 수집 규칙에서 관리 ID에 Monitoring Metrics Publisher 역할을 할당하세요.
Azure Monitor 작업 영역 개요 페이지에서 데이터 수집 규칙 링크를 선택합니다.
데이터 수집 규칙 페이지에서 액세스 제어(IAM)를 선택합니다.
추가 및 역할 할당 추가를 선택합니다.
모니터링 메트릭 게시자를 검색하여 선택한 후 다음을 선택합니다.
관리 ID를 선택합니다.
멤버 선택을 선택합니다.
관리 개체 드롭다운에서 사용자 할당 관리 ID를 선택합니다.
사용하려는 사용자 할당 ID를 선택한 다음 선택을 클릭합니다.
검토 + 할당을 선택하여 역할 할당을 완료합니다.
가상 머신 또는 가상 머신 확장 집합에 관리 ID를 할당하세요.
Important
이 섹션의 단계를 완료하려면 가상 머신 또는 가상 머신 확장 집합에 대한 소유자 또는 사용자 액세스 관리자 권한이 있어야 합니다.
Azure Portal에서 클러스터, 가상 머신 또는 가상 머신 확장 집합의 페이지로 이동합니다.
ID를 선택합니다.
사용자 할당을 선택합니다.
추가를 선택합니다.
만든 사용자가 할당한 관리 ID를 선택한 다음 추가를 선택합니다.
Azure Kubernetes Service에 대한 관리 ID 할당
AKS(Azure Kubernetes Services)의 경우 관리 ID를 가상 머신 확장 집합에 할당해야 합니다.
AKS는 가상 머신 확장 집합을 포함하는 리소스 그룹을 만듭니다. 리소스 그룹 이름은 MC_<resource group name>_<AKS cluster name>_<region> 형식입니다.
리소스 그룹의 각 가상 머신 확장 집합에 대해 이전 관리 ID를 가상 머신 또는 가상 머신 확장 집합에 할당 섹션의 단계에 따라 관리 ID를 할당합니다.
Microsoft Entra ID 애플리케이션 인증을 사용한 원격 쓰기
Microsoft Entra ID 애플리케이션 인증은 모든 환경에서 사용할 수 있습니다. Prometheus 서비스가 Azure 관리 환경에서 실행되는 경우, 사용자가 할당한 관리 ID 인증을 사용하는 것이 좋습니다.
Microsoft Entra ID 애플리케이션을 사용하여 Azure Monitor 작업 영역에 대한 원격 쓰기를 구성하려면 Microsoft Entra 애플리케이션을 만듭니다. Azure Monitor 작업 영역의 데이터 수집 규칙에서 Monitoring Metrics Publisher 역할을 Microsoft Entra 애플리케이션에 할당합니다.
참고 항목
Microsoft Entra 애플리케이션은 클라이언트 암호 또는 비밀을 사용합니다. 클라이언트 암호의 만료 날짜가 있습니다. 인증된 액세스 권한을 잃지 않도록 만료되기 전에 새 클라이언트 암호를 만듭니다.
출력에는 appId 및 password 값이 포함됩니다. Prometheus 원격 쓰기 구성에서 사용할 값을 client_id 및 client_secret의 값으로 저장합니다. 비밀 또는 클라이언트 암호 값은 만들어질 때만 표시되며 나중에 검색할 수 없습니다. 분실한 경우 새 클라이언트 암호를 만들어야 합니다.
Azure Monitor 작업 영역으로 데이터를 보내려면 자체 관리되는 Prometheus 인스턴스의 구성 파일(prometheus.yml)에 다음 섹션을 추가합니다.
remote_write:
- url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
# AzureAD 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>"
Prometheus 연산자
Prometheus 연산자를 실행하는 Kubernetes 클러스터에 있는 경우 아래 단계에 따라 Azure Monitor 작업 영역으로 데이터를 전송합니다.
Microsoft Entra ID 인증을 사용하는 경우 base64 인코딩을 사용하여 비밀을 변환하고 Kubernetes 클러스터에 비밀을 적용합니다. 다음을 yaml 파일에 저장합니다. 관리 ID 인증을 사용하는 경우 이 단계를 건너뜁니다.
apiVersion: v1
kind: Secret
metadata:
name: remote-write-secret
namespace: monitoring # Replace with namespace where Prometheus Operator is deployed.
type: Opaque
data:
password: <base64-encoded-secret>
비밀을 적용합니다.
# set context to your cluster
az aks get-credentials -g <aks-rg-name> -n <aks-cluster-name>
kubectl apply -f <remote-write-secret.yaml>
Prometheus 연산자에서 원격 쓰기 섹션의 값을 업데이트합니다. 다음 yaml을 복사하여 파일로 저장합니다. Prometheus Operator의 Azure Monitor 작업 영역 원격 쓰기 사양에 대한 자세한 내용은 Prometheus Operator 설명서를 참조하세요.
prometheus:
prometheusSpec:
remoteWrite:
- url: "<metrics ingestion endpoint for your Azure Monitor workspace>"
azureAd:
# AzureAD configuration.
# The Azure Cloud. Options are 'AzurePublic', 'AzureChina', or 'AzureGovernment'.
cloud: 'AzurePublic'
managedIdentity:
clientId: "<clientId of the managed identity>"
oauth:
clientId: "<clientId of the Entra app>"
clientSecret:
name: remote-write-secret
key: password
tenantId: "<Azure subscription tenant Id>"
위의 yaml 파일을 사용하여 원격 쓰기 구성을 업데이트하려면 Helm을 사용합니다.
helm upgrade -f <YAML-FILENAME>.yml prometheus prometheus-community/kube-prometheus-stack --namespace <namespace where Prometheus Operator is deployed>
url 매개 변수는 Azure Monitor 작업 영역의 메트릭 수집 엔드포인트를 지정합니다. Azure Portal에 있는 Azure Monitor 작업 영역의 개요 페이지에서 찾을 수 있습니다.
구현에 따라 Microsoft Entra ID 애플리케이션 인증에 managed_identity 또는 oauth를 사용합니다. 사용하지 않는 개체를 제거합니다.
다음 Azure CLI 명령을 사용하여 관리 ID에 대한 클라이언트 ID를 찾습니다.
az identity list --resource-group <resource group name>
다음 방법을 사용하여 Prometheus 데이터가 Azure Monitor 작업 영역으로 전송되고 있는지 확인합니다.
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 탐색기를 참조하세요.