Virtual Machines의 Prometheus 메트릭을 Azure Monitor 작업 영역으로 보내기

Prometheus는 Kubernetes 클러스터 모니터링에만 국한되지 않습니다. Prometheus를 사용하여 서버에서 실행되는 애플리케이션과 서비스가 어디서 실행되는지 모니터링합니다. 예를 들어, Virtual Machine Scale Sets 또는 온-프레미스 서버에서 실행되는 애플리케이션을 모니터링할 수 있습니다. 서버에 prometheus를 설치하고 Azure Monitor 작업 영역에 메트릭을 보내도록 원격 쓰기를 구성합니다.

이 문서에서는 자체 관리되는 Prometheus 인스턴스에서 Azure Monitor 작업 영역으로 데이터를 보내도록 원격 쓰기를 구성하는 방법을 설명합니다.

원격 쓰기 옵션

자체 관리되는 Prometheus는 Azure 및 비 Azure 환경에서 실행될 수 있습니다. 다음은 Prometheus가 실행되는 환경을 기반으로 Azure Monitor 작업 영역에 원격으로 쓰기 위한 인증 옵션입니다.

Azure 관리되는 Virtual Machines 및 Virtual Machine Scale Sets

Azure 환경에서 자체 관리되는 Prometheus를 실행하는 서비스에 대해 사용자 할당 관리 ID 인증을 사용합니다. Azure 관리되는 서비스에는 다음이 포함됩니다.

  • Azure Virtual Machines
  • Azure Virtual Machine Scale Sets
  • Azure Arc 지원 Virtual Machines

Azure 관리되는 리소스에 대한 원격 쓰기를 설정하려면 사용자가 할당한 관리 ID를 사용한 원격 쓰기를 참조하세요.

비 Azure 환경에서 실행되는 가상 머신.

Azure Arc 지원 서비스에 온보딩하면 Azure에서 비 Azure Virtual Machines를 관리하고 구성할 수 있습니다. 온보딩되면 사용자 할당 관리 ID를 사용한 원격 쓰기 인증을 구성합니다. Azure Arc 지원 서버에 Virtual Machines를 온보딩하는 방법에 대한 자세한 내용은 Azure Arc 지원 서버를 참조하세요.

비 Azure 환경에 가상 머신이 있고 Azure Arc에 온보딩하지 않으려는 경우 자체 관리되는 Prometheus를 설치하고 Microsoft Entra 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 인증을 사용한 원격 쓰기

Azure Monitor 작업 영역에 대한 원격 쓰기를 위해 사용자 할당 관리 ID를 구성하려면 다음 단계를 완료합니다.

사용자가 할당한 관리 ID 만들기

원격 쓰기 구성에 사용할 사용자 관리 ID를 만들려면 사용자 할당 관리 ID 관리를 참조하세요.

만든 관리 ID의 clientId 값을 기록해 둡니다. 이 ID는 Prometheus 원격 쓰기 구성에 사용됩니다.

애플리케이션에 모니터링 메트릭 게시자 역할 할당

작업 영역의 데이터 수집 규칙에 대한 Monitoring Metrics Publisher 역할을 관리 ID에 할당합니다.

  1. Azure Monitor 작업 영역 개요 페이지에서 데이터 수집 규칙 링크를 선택합니다.

    Azure Monitor 작업 영역 페이지의 데이터 수집 규칙 링크를 보여 주는 스크린샷.

  2. 데이터 수집 규칙 페이지에서 액세스 제어(IAM)를 선택합니다.

  3. 추가역할 할당 추가를 선택합니다. 데이터 수집 규칙을 보여 주는 스크린샷.

  4. 모니터링 메트릭 게시자를 검색하여 선택한 후 다음을 선택합니다. 데이터 수집 규칙에 대한 역할 할당 메뉴를 보여 주는 스크린샷.

  5. 관리 ID를 선택합니다.

  6. 멤버 선택을 선택합니다.

  7. 관리 개체 드롭다운에서 사용자 할당 관리 ID를 선택합니다.

  8. 사용하려는 사용자 할당 ID를 선택한 다음 선택을 클릭합니다.

  9. 검토 + 할당을 선택하여 역할 할당을 완료합니다.

    데이터 수집 규칙에 대한 멤버 선택 메뉴를 보여 주는 스크린샷.

가상 머신 또는 가상 머신 확장 집합에 관리 ID를 할당합니다.

Important

이 섹션의 단계를 완료하려면 가상 머신 또는 가상 머신 확장 집합에 대한 소유자 또는 사용자 액세스 관리자 권한이 있어야 합니다.

  1. Azure Portal에서 클러스터, 가상 머신 또는 가상 머신 확장 집합의 페이지로 이동합니다.

  2. ID를 선택합니다.

  3. 사용자 할당을 선택합니다.

  4. 추가를 선택합니다.

  5. 만든 사용자가 할당한 관리 ID를 선택한 다음 추가를 선택합니다.

    사용자가 할당한 관리 ID 추가 페이지를 보여 주는 스크린샷.

원격 쓰기 구성

원격 쓰기는 Prometheus 구성 파일 prometheus.yml에 구성되어 있습니다.

원격 쓰기 구성에 대한 자세한 내용은 Prometheus.io 문서: 구성을 참조하세요. 원격 쓰기 구성 튜닝에 대한 자세한 내용은 원격 쓰기 튜닝을 참조하세요.

Azure Monitor 작업 영역으로 데이터를 보내려면 자체 관리되는 Prometheus 인스턴스의 구성 파일에 다음 섹션을 추가합니다.

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>"

url 매개 변수는 Azure Monitor 작업 영역의 메트릭 수집 엔드포인트를 지정합니다. Azure Portal에 있는 Azure Monitor 작업 영역의 개요 페이지에서 찾을 수 있습니다.

Azure Monitor 작업 영역에 대한 메트릭 수집 엔드포인트를 보여 주는 스크린샷.

구현에 따라 Microsoft Entra ID 애플리케이션 인증에 managed_identity 또는 oauth를 사용합니다. 사용하지 않는 개체를 제거합니다.

다음 Azure CLI 명령을 사용하여 관리 ID에 대한 클라이언트 ID를 찾습니다.

az identity list --resource-group <resource group name>

자세한 내용은 az identity list을 참조하세요.

포털에서 관리 ID 인증을 위한 클라이언트를 찾으려면 Azure Portal의 관리 ID 페이지로 이동하여 관련 ID 이름을 선택합니다. ID 개요 페이지에서 클라이언트 ID 값을 복사합니다.

ID 개요 페이지의 클라이언트 ID를 보여 주는 스크린샷.

Microsoft Entra ID 애플리케이션의 클라이언트 ID를 찾으려면 다음 CLI를 사용하거나 Azure Portal을 사용하여 Microsoft Entra ID 애플리케이션 만들기 섹션의 첫 번째 단계를 참조하세요.

$ 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 환경에서 기대하는 메트릭을 쿼리합니다. 자세한 내용은 메트릭 탐색기를 참조하세요.

Azure Monitor 작업 영역의 Prometheus 탐색기

Prometheus Explorer는 Azure 환경 내에서 Prometheus 메트릭과 상호 작용하는 편리한 방법을 제공하여 모니터링 및 문제 해결을 더욱 효율적으로 만듭니다. Prometheus 탐색기를 사용하려면 Azure Portal의 Azure Monitor 작업 영역으로 이동하고 Prometheus Explorer를 선택하여 자체 관리되는 Prometheus 환경에서 기대하는 메트릭을 쿼리합니다. 자세한 내용은 Prometheus 탐색기를 참조하세요.

Grafana

Grafana에서 PromQL 쿼리를 사용하여 결과가 예상 데이터를 반환하는지 확인합니다. Grafana를 구성하려면 Managed Prometheus로 Grafana 설정 가져오기를 참조하세요.

원격 쓰기 문제 해결

Azure Monitor 작업 영역에 원격 데이터가 표시되지 않는 경우 일반적인 문제 및 솔루션은 원격 쓰기 문제 해결을 참조하세요.

다음 단계