다음을 통해 공유


Project Flash - Azure Resource Graph를 사용하여 Azure Virtual Machine 가용성 모니터링

Azure Resource Graph는 Flash에서 제공하는 하나의 솔루션입니다. Flash는 고객이 VM(가상 머신) 상태를 모니터링할 수 있는 강력하고 안정적이며 신속한 메커니즘을 구축하는 데 전념하는 프로젝트의 내부 이름입니다.

이 문서에서는 Azure Resource Graph를 사용하여 Azure Virtual Machine 가용성을 모니터링하는 방법을 설명합니다. Flash 솔루션에 대한 일반적인 개요는 Flash 개요를 참조하세요.

Flash에서 제공하는 다른 솔루션과 관련된 설명서는 다음 문서 중에서 선택합니다.

Azure Resource Graph - HealthResources

이 기능은 현재 일반 공급됩니다. 대규모 조사를 수행하는 데 유용합니다. KQL(kusto 쿼리 언어)을 사용하여 정보 검색을 위한 매우 사용자에게 친숙한 환경을 제공합니다. 또한 리소스 정보의 중앙 허브 역할을 할 수 있으며 기록 데이터를 쉽게 검색할 수 있습니다.

이미 흐르는 VM 가용성 상태 외에도 자세한 오류 특성 및 가동 중지 시간 분석을 위해 ARG(Azure Resource Graph)VM 가용성 주석을 게시했으며, 빠른 디버깅을 위해 VM 가용성의 기록 변경 내용을 추적하기 위한 14일 변경 내용 추적 메커니즘을 사용하도록 설정했습니다. 이러한 새로운 추가 기능을 통해 ARG의 HealthResources 데이터 세트에서 VM 가용성 정보의 일반 공급을 발표하게 되어 기쁘게 생각합니다. 이 제품을 사용하면 사용자는 다음을 수행할 수 있습니다.

  • 주기적이고 전체적인 모니터링을 위해 모든 Azure 구독에서 VM 가용성의 최신 스냅샷을 짧은 대기 시간으로 한 번에 효율적으로 쿼리합니다.
  • 전체 비즈니스 SLA에 미치는 영향을 정확하게 평가하고 중단 및 오류 서명 유형에 대응하여 결정적인 완화 조치를 신속하게 트리거합니다.
  • ARG에 있는 리소스 메타데이터VM 가용성 정보 조인을 통해 애플리케이션의 포괄적인 상태를 감독하도록 사용자 지정 대시보드를 설정합니다.
  • 자세한 조사를 수행하기 위해 변경 내용 추적 메커니즘을 사용하여 롤링 14일 기간 동안 VM 가용성의 관련 변경 내용을 추적합니다.

샘플 쿼리

시작하기

사용자는 PowerShell, REST API, Azure CLI 또는 Azure Portal을 통해 ARG를 쿼리할 수 있습니다. 다음 단계에서는 Azure Portal에서 데이터에 액세스하는 방법을 자세히 설명합니다.

  1. Azure Portal에서 Resource Graph Explorer로 이동합니다.

    Azure Portal의 Azure Resource Graph Explorer 방문 페이지 스크린샷

  2. 테이블 탭을 선택하고 HealthResources 테이블을 (한 번) 클릭하여 VM 가용성 정보(가용성 상태 및 상태 주석)의 최신 스냅샷을 검색합니다.

    상태 리소스 테이블의 최신 VM 가용성 상태 및 VM 가용성 주석을 보여 주는 Azure Resource Graph Explorer 창의 스크린샷

HealthResources 테이블에는 다음 두 가지 유형의 이벤트가 채워집니다.

Azure Portal의 Resource Graph Explorer에 표시된 것처럼 상태 리소스 테이블의 이벤트 형식에 대한 스냅샷입니다.

  • resourcehealth/availabilitystatuses

이 이벤트는 기본 Azure 플랫폼에서 수행하는 상태 검사를 기반으로 VM의 최신 가용성 상태를 나타냅니다. 현재 VM에 대해 내보내는 가용성 상태는 다음과 같습니다.

  • 사용 가능: VM이 예상대로 실행되고 있습니다.
  • 사용할 수 없음: VM의 정상적인 작동 중단이 감지되었으므로 애플리케이션이 예상대로 실행되지 않습니다.
  • 알 수 없음: 플랫폼에서 VM의 상태를 정확하게 감지할 수 없습니다. 사용자는 일반적으로 몇 분 후에 업데이트된 상태를 다시 확인할 수 있습니다.

최신 VM 가용성 상태를 폴링하려면 다음 세부 정보가 포함된 속성 필드를 참조하세요.

예제

{
 "targetResourceType": "Microsoft.Compute/virtualMachines",
 "previousAvailabilityState": "Available",
 "targetResourceId": "/subscriptions//resourceGroups//providers/Microsoft.Compute/virtualMachines/",
 "occurredTime": "2022-10-11T11:13:59.9570000Z",
 "availabilityState": "Unavailable"
 }

속성 설명

속성 설명 해당 RHC(리소스 상태 범주)
targetResourceType 상태 데이터가 흐르는 리소스 유형 resourceType
targetResourceId 리소스 ID resourceId
occurredTime 플랫폼이 최신 가용성 상태를 내보내는 타임스탬프 eventTimestamp
previousAvailabilityState VM의 이전 가용성 상태 previousHealthStatus
availabilityState VM의 현재 가용성 상태 currentHealthStatus

이 데이터를 추가로 탐색하는 시작 쿼리 목록은 샘플 쿼리 설명서의 HealthResources 섹션을 참조하세요.

  • resourcehealth/resourceannotations(새로 추가됨)

이 이벤트는 사용자가 필요에 따라 중단을 조사하고 완화하는 데 도움이 되는 필요한 오류 특성을 자세히 설명하여 VM 가용성에 대한 변경 내용을 컨텍스트화합니다. 플랫폼에서 내보내는 VM 가용성 주석의 전체 목록을 참조하세요. 이러한 주석은 세 개의 버킷으로 광범위하게 분류할 수 있습니다.

  • 가동 중지 시간 주석: 플랫폼에서 사용할 수 없음으로의 VM 가용성 전환을 감지하면 이러한 주석이 내보내집니다. (예를 들어 예기치 않은 호스트 충돌 시 재부팅 복구 작업이 있습니다).
  • 정보 주석: 이러한 주석은 VM 가용성에 영향을 주지 않고 컨트롤 플레인 작업 중에 내보내집니다. (예: VM 할당/중지/삭제/시작). 일반적으로 응답에 더 이상 고객 조치가 필요하지 않습니다.
  • 성능이 저하된 주석: 이러한 주석은 VM 가용성이 위험에 처한 것으로 감지될 때 내보내집니다. (예를 들어 오류 예측 모델이 지정된 시간에 VM을 다시 부팅할 수 있는 성능 저하된 하드웨어 구성 요소를 예측하는 경우가 있습니다). 예기치 않은 데이터 손실 또는 가동 중지 시간을 방지하기 위해 사용자에게 주석 메시지에 지정된 마감일까지 다시 배포할 것을 강력히 권장합니다. 다음 시나리오 중 하나에서 Azure 가상 머신 확장 집합 Resource Health 또는 활동 로그에 경고가 표시될 수 있습니다.
    • Azure 가상 머신 확장 집합의 VM은 중지, 할당 취소, 삭제 또는 시작 중입니다.
    • 가상 머신 확장 집합에서 스케일 인 또는 스케일 아웃 작업을 수행했습니다.
    • 경고는 가상 머신 확장 집합에 집계된 플랫폼 상태가 일시적인 "성능 저하" 상태임을 나타냅니다.

리소스에 대해 연결된 VM 가용성 주석을 폴링하려면(있는 경우) 다음 세부 정보가 포함된 속성 필드를 참조하세요.

예제

{
 "targetResourceType": "Microsoft.Compute/virtualMachines", "targetResourceId": "/subscriptions//resourceGroups//providers/Microsoft.Compute/virtualMachines/",
 "annotationName": "VirtualMachineHostRebootedForRepair",
 "occurredTime": "2022-09-25T20:21:37.5280000Z",
 "category": "Unplanned",
 "summary": "We're sorry, your virtual machine isn't available because an unexpected failure on the host server. Azure has begun the auto-recovery process and is currently rebooting the host server. No further action is required from you at this time. The virtual machine will be back online after the reboot completes.",
 "context": "Platform Initiated",
 "reason": "Unexpected host failure"
 }

속성 설명

속성 설명 해당 RHC
targetResourceType 상태 데이터가 흐르는 리소스 유형 resourceType
targetResourceId 리소스 ID resourceId
occurredTime 플랫폼에서 최신 가용성 상태를 내보낸 타임스탬프 eventTimestamp
annotationName 내보낸 주석의 이름 eventName
reason 고객이 관찰한 가용성 영향에 대한 간략한 개요 title
category 주석을 트리거하는 플랫폼 활동이 계획된 유지 관리인지 또는 계획되지 않은 복구인지 여부를 나타냅니다. 이 필드는 고객/VM 시작 이벤트에는 적용되지 않습니다. 가능한 값: 계획됨, 계획되지 않음, 해당 사항 없음, Null category
context 주석을 트리거한 활동이 권한 있는 사용자 또는 프로세스(고객 시작), Azure 플랫폼(플랫폼 시작) 또는 가용성에 영향을 미치는 게스트 OS의 활동(VM 시작)으로 인한 것인지 여부를 나타냅니다. 가능한 값: 플랫폼 시작, 사용자 시작, VM 시작, 해당 사항 없음, Null context
요약 사용자가 수행할 수 있는 수정 단계와 함께 주석 배출의 원인을 자세히 설명하는 문 요약

이 데이터를 추가로 탐색하는 시작 쿼리 목록은 샘플 쿼리 설명서의 HealthResources 섹션을 참조하세요.

HealthResources 데이터 세트에 표시되는 주석 메타데이터에 대해 여러 가지 개선 사항이 계획되어 있습니다. 이러한 보강을 통해 사용자는 더 풍부한 오류 특성에 액세스하여 중단에 대한 대응을 단호하게 준비할 수 있습니다. 이왕 동시에 사용자가 VM 가용성의 과거 변경 내용을 포괄적으로 추적할 수 있도록 기록 조회 기간을 최소 30일로 연장하는 것을 목표로 합니다.

다음 단계

제공되는 솔루션에 대해 자세히 알아보려면 해당 솔루션 문서를 계속 진행합니다.

Azure Virtual Machines를 모니터링하는 방법에 대한 일반적인 개요는 Azure 가상 머신 모니터링Azure 가상 머신 모니터링 참조를 확인하세요.