상태 리소스 이벤트를 구독하고 Azure Monitor 경고로 보내기(미리 보기)

Azure Event Grid의 상태 리소스 시스템 항목는 단일 인스턴스 VM(가상 머신), 가상 머신 확장 집합 VMS 및 Virtual Machine Scale Sets와 같은 Azure 리소스의 상태에 대한 정확하고 안정적이며 포괄적인 정보를 제공합니다. 이 기능을 사용하면 리소스에 영향을 미치는 다양한 서비스 문제를 더 깊이 이해할 수 있습니다. 이제 워크로드가 영향을 받을 때 알리도록 Azure Monitor 경고를 설정할 수 있습니다.

필수 조건

이벤트 구독 만들기 및 구성

  1. 필수 구성 요소의 일부로 만든 Event Grid 시스템 항목으로 이동합니다.

  2. 명령 모음에서 + 이벤트 구독을 선택합니다.

    구독 만들기 단추가 선택된 시스템 항목 페이지를 보여 주는 스크린샷.

  3. 이벤트 구독 이름을 입력합니다.

  4. 이벤트 스키마의 경우 이벤트 스키마를 클라우드 이벤트 스키마 v1.0으로 선택합니다. Azure Monitor 경고 대상이 지원하는 유일한 스키마 형식입니다.

  5. 토픽 유형microsoft resourcenotifications healthresources로 선택합니다.

  6. 이벤트 유형에서 관심 있는 이벤트 유형을 선택합니다. 이 경우 사용량을 위해 제공되는 두 가지 이벤트 유형인 AvailabilityStatusChangedResourceAnnotated를 선택합니다.

  7. 엔드포인트 유형의 경우 Azure Monitor 경고를 대상으로 선택합니다.

  8. 엔드포인트 구성 링크를 선택합니다.

  9. 모니터 경고 구성 선택 페이지에서 다음 단계를 수행합니다.

    1. 경고 심각도
    2. [선택 사항] 작업 그룹을 선택합니다. Azure Portal에서 작업 그룹 만들기를 참조하세요.
    3. 경고에 대한 설명 을 입력합니다.
    4. 선택 확인을 선택합니다.
  10. 이제 이벤트 구독 만들기 페이지에서 만들기를 선택하여 이벤트 구독을 만듭니다. 자세한 단계는 포털을 통해 이벤트 구독을 참조하세요.

    이벤트 구독 만들기 페이지를 보여 주는 스크린샷.

Azure Monitor 경고

Azure Monitor 경고에서 Event Grid 경고는 다음 이미지와 같이 나타납니다.

AvailabilityStatusChanged에 대한 샘플 Event Grid 경고:

Azure Monitor의 샘플 가용성 상태 변경됨 경고를 보여 주는 스크린샷.

ResourceAnnotated에 대한 샘플 Event Grid 경고:

Azure Monitor의 샘플 리소스 주석 경고를 보여 주는 스크린샷.

이벤트 필터

이벤트 필터를 사용하면 사용자는 특정 리소스 그룹, 특정 전환(가용성 상태가 변경되는 경우) 또는 특정 주석에 대한 경고를 받을 수 있습니다(전체 주석 목록은 Resource Health 가상 머신 상태 주석 참조). 사용자는 이 기능을 사용하여 특정 모니터링 요구 사항에 따라 경고를 사용자 지정할 수 있습니다.

  1. 필터 탭을 선택하여 제목 필터링 및 고급 필터링 기능을 제공합니다. 예를 들어 특정 리소스 그룹의 리소스에서 이벤트를 필터링하려면 다음 단계를 수행합니다.

    1. 제목 필터링 사용을 선택합니다.

    2. 제목 필터 섹션에서 다음으로 시작하는 제목의 경우 리소스 그룹의 값을 /subscriptions/{subscription-id}/resourceGroups/{resourceGroup-id} 형식으로 제공합니다.

      이벤트 구독의 필터를 보여 주는 스크린샷.

    3. 또는 다음 단계에 도입된 고급 필터 내에서 제목 종료 문자 매개 변수에 리소스 이름을 지정하여 특정 리소스를 필터링합니다.

  2. 고급 필터링을 사용하려면 이벤트 구독의 필터 탭으로 이동하여 고급 필터를 선택합니다. 자세한 지침은 Azure Event Grid에 대한 이벤트 필터링을 참조하세요.

    예를 들어, VM이 다운될 때 경고를 가져오려면 Available에서 Unavailable로 이동하는 VM 가용성 전환을 찾도록 필터를 설정합니다. 다음 조건을 만들면 됩니다.

    • Availabledata.resourceInfo.properties.availabilityState 키에 있고

    • Unavailabledata.resourceInfo.properties.availabilityState에 있음

      이벤트 구독의 고급 필터를 보여 주는 스크린샷.

샘플 JSON 이벤트

샘플 ResourceAnnotated 이벤트

다음은 샘플 ResourceAnnotated 이벤트입니다. typeMicrosoft.ResourceNotifications.HealthResources.ResourceAnnotated로 설정되어 있다는 점에 유의하세요.

{
    "id": "sample-id",
    "source": "/subscriptions/sample-subscription",
    "specversion": "1.0",
    "type": "Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated",
    "subject": "/subscriptions/sample-subscription/resourceGroups/sample-rg/providers/Microsoft.Compute/virtualMachines/sample-machine",
    "time": "2024-02-22T01:39:48.3385828Z",
    "data": {
        "resourceInfo": {
            "id": "/subscriptions/sample-subscription/resourceGroups/sample-rg/providers/Microsoft.Compute/virtualMachines/sample-machine/providers/Microsoft.ResourceHealth/resourceAnnotations/current",
            "name": "current",
            "type": "Microsoft.ResourceHealth/resourceAnnotations",
            "properties": {
                "targetResourceId": "/subscriptions/sample-subscription/resourceGroups/sample-rg/providers/Microsoft.Compute/virtualMachines/sample-machine",
                "targetResourceType": "Microsoft.Compute/virtualMachines",
                "occurredTime": "2024-02-22T01:39:48.3385828Z",
                "annotationName": "VirtualMachineRebootInitiatedByControlPlane",
                "reason": "Rebooted by user",
                "summary": "The Virtual Machine is undergoing a reboot as requested by an authorized user or process from within the Virtual machine. No other action is required at this time. ",
                "context": "Customer Initiated",
                "category": "Not Applicable",
                "impactType": "Informational"
            }
        },
        "operationalInfo": {
            "resourceEventTime": "2024-02-22T01:39:48.3385828+00:00"
        },
        "apiVersion": "2022-08-01"
    }
}

샘플 AvailabilityStatusChanged 이벤트

다음은 샘플 AvailabilityStatusChanged 이벤트입니다. typeMicrosoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged로 설정되어 있다는 점에 유의하세요.

{
    "id": "sample-id",
    "source": "/subscriptions/sample-subscription",
    "specversion": "1.0",
    "type": "Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged",
    "subject": "/subscriptions/sample-subscription/resourceGroups/sample-rg/providers/Microsoft.Compute/virtualMachines/sample-machine",
    "time": "2024-02-22T01:40:17.6532683Z",
    "data": {
        "resourceInfo": {
            "id": "/subscriptions/sample-subscription/resourceGroups/sample-rg/providers/Microsoft.Compute/virtualMachines/sample-machinee/providers/Microsoft.ResourceHealth/availabilityStatuses/current",
            "name": "current",
            "type": "Microsoft.ResourceHealth/availabilityStatuses",
            "properties": {
                "targetResourceId": "/subscriptions/sample-subscription/resourceGroups/sample-rg/providers/Microsoft.Compute/virtualMachines/sample-machine",
                "targetResourceType": "Microsoft.Compute/virtualMachines",
                "occurredTime": "2024-02-22T01:39:50.177Z",
                "previousAvailabilityState": "Available",
                "availabilityState": "Unavailable"
            }
        },
        "operationalInfo": {
            "resourceEventTime": "2024-02-22T01:39:50.177+00:00"
        },
        "apiVersion": "2023-12-01"
    }
}

다음 단계

다음 문서를 참조하세요.