다음을 통해 공유


Azure Resource Manager 모니터링

이 문서에서는 다음을 설명합니다.

  • 이 서비스에 대해 수집할 수 있는 모니터링 데이터의 유형.
  • 해당 데이터를 분석하는 방법.

참고 항목

이 서비스 및/또는 Azure Monitor에 이미 익숙하고 모니터링 데이터를 분석하는 방법만 알고 싶은 경우 이 문서의 끝부분에 있는 분석 섹션을 참조하세요.

Azure 리소스를 사용하는 중요한 애플리케이션 및 비즈니스 프로세스가 있는 경우 시스템을 모니터링하고 시스템에 대한 경고를 받아야 합니다. Azure Monitor 서비스는 시스템의 모든 구성 요소에서 메트릭과 로그를 수집하고 집계합니다. Azure Monitor는 가용성, 성능, 복원력에 대한 보기를 제공하고 문제를 알려 줍니다. Azure Portal, PowerShell, Azure CLI, REST API 또는 클라이언트 라이브러리를 사용하여 모니터링 데이터를 설정하고 볼 수 있습니다.

Insights

Azure의 일부 서비스에는 서비스 모니터링을 위한 시작점을 제공하는 모니터링 대시보드가 Azure Portal에 있습니다. 이러한 대시보드를 인사이트라고 하며, Azure Portal에서 Azure Monitor의 Insights Hub에서 찾을 수 있습니다.

자세한 내용은 Azure Monitor Resource Group 인사이트 모니터링을 참조하세요.

리소스 유형

Azure는 리소스 유형 및 ID의 개념을 사용하여 구독의 모든 항목을 식별합니다. 리소스 유형은 Azure에서 실행되는 모든 리소스에 대한 리소스 ID의 일부이기도 합니다. 예를 들어 가상 머신의 리소스 유형 중 하나는 Microsoft.Compute/virtualMachines입니다. 서비스 및 관련 리소스 유형 목록은 리소스 공급자를 참조하세요.

마찬가지로 Azure Monitor는 네임스페이스라고도 하는 리소스 유형에 따라 핵심 모니터링 데이터를 메트릭 및 로그로 구성합니다. 리소스 유형에 따라 다른 메트릭 및 로그를 사용할 수 있습니다. 서비스는 둘 이상의 리소스 유형과 연결될 수 있습니다.

Resource Manager의 리소스 종류에 대한 자세한 내용은 Azure Resource Manager 모니터링 데이터 참조를 참조하세요.

데이터 저장소

Azure Monitor의 경우:

  • 메트릭 데이터는 Azure Monitor 메트릭 데이터베이스에 저장됩니다.
  • 로그 데이터는 Azure Monitor 로그 저장소에 저장됩니다. 로그 분석은 이 저장소를 쿼리할 수 있는 Azure Portal의 도구입니다.
  • Azure 활동 로그는 Azure Portal에 자체 인터페이스가 있는 별도의 저장소입니다.

선택적으로 메트릭 및 활동 로그 데이터를 Azure Monitor 로그 저장소로 라우팅할 수 있습니다. 그런 다음 Log Analytics를 사용하여 데이터를 쿼리하고 다른 로그 데이터와 상호 연결할 수 있습니다.

많은 서비스에서는 진단 설정을 사용하여 메트릭 및 로그 데이터를 Azure Monitor 외부의 다른 스토리지 위치로 보낼 수 있습니다. 예를 들면 Azure Storage, 호스트된 파트너 시스템Event Hubs를 사용하는 비 Azuree 파트너 시스템이 있습니다.

Azure Monitor가 데이터를 저장하는 방법에 대한 자세한 내용은 Azure Monitor 데이터 플랫폼을 참조하세요.

Azure Monitor 플랫폼 메트릭

Azure Monitor는 대부분의 서비스에 대한 플랫폼 메트릭을 제공합니다. 이러한 메트릭은 다음과 같습니다.

  • 각 네임스페이스에 대해 개별적으로 정의됩니다.
  • Azure Monitor 시계열 메트릭 데이터베이스에 저장됩니다.
  • 간단하며 실시간에 가까운 경고를 지원할 수 있습니다.
  • 시간 경과에 따른 리소스의 성능을 추적하는 데 사용됩니다.

수집: Azure Monitor는 플랫폼 메트릭을 자동으로 수집합니다. 구성이 필요하지 않습니다.

라우팅: 일부 플랫폼 메트릭을 Azure Monitor 로그/Log Analytics로 라우팅하여 다른 로그 데이터로 쿼리할 수도 있습니다. 각 메트릭에 대한 DS 내보내기 설정을 확인하여 진단 설정을 사용하여 메트릭을 Azure Monitor 로그/Log Analytics로 라우팅할 수 있는지 확인합니다.

  • 자세한 내용은 메트릭 진단 설정을 참조하세요.
  • 서비스에 대한 진단 설정을 구성하려면 Azure Monitor에서 진단 설정 만들기를 참조하세요.

Azure Monitor의 모든 리소스에 대해 수집할 수 있는 모든 메트릭 목록은 Azure Monitor에서 지원되는 메트릭을 참조하세요.

Resource Manager에 사용 가능한 메트릭 목록은 Azure Resource Manager 모니터링 데이터 참조를 참조하세요.

Azure에서 리소스를 만들고 관리할 때 요청은 Azure의 컨트롤 플레인인 Azure Resource Manager를 통해 오케스트레이션됩니다. 이 문서에서는 Azure에 대한 컨트롤 플레인 요청의 볼륨 및 대기 시간을 모니터링하는 방법을 설명합니다.

이러한 메트릭을 사용하면 구독 전체에서 컨트롤 플레인 요청에 대한 트래픽 및 대기 시간을 관찰할 수 있습니다. 예를 들어 이제 스로틀된 요청을 검사하여 요청이 스로틀된 시기를 파악할 수 있습니다. 특정 상태 코드를 필터링하고 서버 오류를 검사하여 실패했는지 확인합니다.

메트릭은 최대 3개월(93일)까지 사용할 수 있으며 동기 요청만 추적할 수 있습니다. 가상 머신 만들기와 같은 시나리오의 경우 메트릭은 장기 비동기 작업의 성능 또는 안정성을 나타내지 않습니다.

Azure Resource Manager 메트릭 액세스

Azure Monitor REST API, SDK, Azure Portal을 사용하여 Azure Resource Manager 메트릭을 선택하여 컨트롤 플레인 메트릭에 액세스할 수 있습니다. Azure Monitor에 대한 개요는 Azure Monitor 메트릭을 참조하세요.

컨트롤 플레인 메트릭에 액세스하기 위한 옵트인 또는 등록 프로세스가 없습니다.

전달자 토큰을 검색하고 Azure에 요청하는 방법에 대한 지침은 Azure REST API 참조를 참조하세요.

메트릭 정의

Azure Monitor의 Azure Resource Manager 메트릭에 대한 정의는 2017-12-01-preview API 버전을 통해서만 액세스할 수 있습니다. 정의를 검색하려면 다음 코드 조각을 실행할 수 있습니다. 00000000-0000-0000-0000-000000000000는 구독 ID로 바꿉니다.

curl --location --request GET 'https://management.azure.com/subscriptions/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/providers/microsoft.insights/metricDefinitions?api-version=2017-12-01-preview&metricnamespace=microsoft.resources/subscriptions' \
--header 'Authorization: bearer {{bearerToken}}'

이 코드 조각은 메트릭 스키마에 대한 정의를 반환합니다. 특히 이 스키마에는 Monitor API를 사용하여 필터링할 수 있는 차원이 포함되어 있습니다.

메트릭 예제

Azure Resource Manager 메트릭을 탐색하는 데 도움이 되는 몇 가지 시나리오는 다음과 같습니다.

Azure Portal을 사용하여 트래픽 및 대기 시간 컨트롤 플레인 메트릭 쿼리

먼저 포털 내에서 Azure Monitor 페이지로 이동합니다.

메트릭 탐색이 강조 표시된 Azure Portal의 모니터링 페이지로 이동하는 스크린샷

메트릭 탐색을 선택한 후 단일 구독을 선택한 다음, Azure Resource Manager 메트릭을 선택합니다.

Azure Portal에서 단일 구독 및 Azure Resource Manager 메트릭 선택의 스크린샷

그런 다음, 적용을 선택한 후 사용자 지정 필터링 및 분할을 사용하여 트래픽 또는 대기 시간 컨트롤 플레인 메트릭을 시각화할 수 있습니다.

차원별로 필터링 및 분할하는 옵션을 보여 주는 Azure Portal에서 메트릭 시각화의 스크린샷

REST API를 사용하여 트래픽 및 대기 시간 컨트롤 플레인 메트릭 쿼리

Azure로 인증한 후 구독에 대한 컨트롤 플레인 메트릭을 검색하도록 요청할 수 있습니다. 스크립트에서 00000000-0000-0000-0000-000000000000을 구독 ID로 바꿉니다. 스크립트는 1일 간격으로 세분화된 2일 기간의 평균 요청 대기 시간(초)과 총 요청 수를 검색합니다.

curl --location --request GET "https://management.azure.com/subscriptions/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=average,count&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z" \
--header "Authorization: bearer {{bearerToken}}"

Azure Resource Manager 메트릭의 경우 대기 시간 메트릭을 사용하고 ‘count’ 집계를 포함하여 트래픽 수를 검색할 수 있습니다. 요청에 대한 JSON 응답이 표시됩니다.

{
    "cost": 5758,
    "timespan": "2021-11-01T00:00:00Z/2021-11-03T00:00:00Z",
    "interval": "P1D",
    "value": [
        {
            "id": "subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Insights/metrics/Latency",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Latency",
                "localizedValue": "Latency"
            },
            "displayDescription": "Latency data for all requests to Azure Resource Manager",
            "unit": "Seconds",
            "timeseries": [
                {
                    "metadatavalues": [],
                    "data": [
                        {
                            "timeStamp": "2021-11-01T00:00:00Z",
                            "count": 1406.0,
                            "average": 0.19345163584637273
                        },
                        {
                            "timeStamp": "2021-11-02T00:00:00Z",
                            "count": 1517.0,
                            "average": 0.28294792353328935
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.resources/subscriptions",
    "resourceregion": "global"
}

트래픽 수만 검색하려는 경우 count 집계를 사용하여 트래픽 메트릭을 활용할 수 있습니다.

curl --location --request GET 'https://management.azure.com/subscriptions/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Traffic&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z' \
--header 'Authorization: bearer {{bearerToken}}'

요청에 대한 응답은 다음과 같습니다.

{
    "cost": 2879,
    "timespan": "2021-11-01T00:00:00Z/2021-11-03T00:00:00Z",
    "interval": "P1D",
    "value": [
        {
            "id": "subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/providers/Microsoft.Insights/metrics/Traffic",
            "type": "Microsoft.Insights/metrics",
            "name": {
                "value": "Traffic",
                "localizedValue": "Traffic"
            },
            "displayDescription": "Traffic data for all requests to Azure Resource Manager",
            "unit": "Count",
            "timeseries": [
                {
                    "metadatavalues": [],
                    "data": [
                        {
                            "timeStamp": "2021-11-01T00:00:00Z",
                            "count": 1406.0
                        },
                        {
                            "timeStamp": "2021-11-02T00:00:00Z",
                            "count": 1517.0
                        }
                    ]
                }
            ],
            "errorCode": "Success"
        }
    ],
    "namespace": "microsoft.resources/subscriptions",
    "resourceregion": "global"
}

메트릭 지원 차원의 경우 해당 메트릭 값을 보려면 차원 값을 지정해야 합니다. 예를 들어 Resource Manager에 대한 성공적인 요청의 대기 시간에 집중하려면 2XX를 사용하여 StatusCodeClass 차원을 필터링해야 합니다.

Virtual Networks 및 Load Balancers와 같은 네트워킹 리소스에 대한 구독에서 요청한 수를 확인하려면 MICROSOFT.NETWORK에 대한 네임스페이스 차원을 필터링해야 합니다.

스로틀된 요청 검사

스로틀된 요청만 표시하려면 429개 상태 코드 응답만 필터링해야 합니다. REST API 호출의 경우 다음 코드 조각의 요청 끝에 표시된 것처럼 $filter 속성 및 StatusCode 차원을 사용하여 $filter=StatusCode eq '429'를 추가하여 필터링을 수행합니다.

curl --location --request GET 'https://management.azure.com/subscriptions/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count,average&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z&$filter=StatusCode%20eq%20%27429%27' \
--header 'Authorization: bearer {{bearerToken}}'

포털에서 직접 필터링할 수도 있습니다. Azure Portal에서 HTTP 상태 코드를 429 응답으로 필터링하는 스크린샷

서버 오류 검사

스로틀된 요청을 보는 것과 유사하게 5xx 응답만 필터링하여 서버 오류 응답 코드를 반환한 모든 요청을 볼 수 있습니다. REST API 호출의 경우 다음 코드 조각의 요청 끝에 표시된 것처럼 $filter 속성 및 StatusCodeClass 차원을 사용하여 $filter=StatusCodeClass eq '5xx'를 추가하여 필터링을 수행합니다.

curl --location --request GET 'https://management.azure.com/subscriptions/ffff5f5f-aa6a-bb7b-cc8c-dddddd9d9d9d/providers/microsoft.insights/metrics?api-version=2021-05-01&interval=P1D&metricnames=Latency&metricnamespace=microsoft.resources/subscriptions&region=global&aggregation=count,average&timespan=2021-11-01T00:00:00Z/2021-11-03T00:00:00Z&$filter=StatusCodeClass%20eq%20%275xx%27' \
--header 'Authorization: bearer {{bearerToken}}'

스로틀 예제에서 수행한 대로 필터 속성을 StatusCodeClass로 설정하고 값을 5xx로 설정하여 포털 내에서 일반 서버 오류 필터링을 수행할 수도 있습니다.

Azure Monitor 리소스 로그

리소스 로그는 Azure 리소스에서 수행한 작업에 대한 인사이트를 제공합니다. 로그는 자동으로 생성되지만 저장하거나 쿼리하려면 Azure Monitor 로그로 라우팅해야 합니다. 로그는 범주로 구성됩니다. 지정된 네임스페이스에는 수집할 수 있는 여러 리소스 로그 범주가 있을 수 있습니다.

이 서비스는 리소스 로그를 수집하지 않지만 Azure 리소스 모니터링 데이터에서 해당 로그에 대한 정보를 찾을 수 있습니다.

Azure 활동 로그

활동 로그에는 해당 리소스의 외부에서 볼 때 각 Azure 리소스에 대한 작업을 추적하는 구독 수준 이벤트(예: 새 리소스 만들기 또는 가상 머신 시작)가 포함되어 있습니다.

수집: 활동 로그 이벤트는 자동으로 생성되고 별도의 저장소에 수집되어 Azure Portal에서 볼 수 있습니다.

라우팅: 다른 로그 데이터와 함께 분석할 수 있도록 활동 로그 데이터를 Azure Monitor 로그로 보낼 수 있습니다. Azure Storage, Azure Event Hubs, 특정 Microsoft 모니터링 파트너와 같은 다른 위치도 사용할 수 있습니다. 활동 로그를 라우팅하는 방법에 대한 자세한 내용은 Azure 활동 로그 개요를 참조하세요.

모니터링 데이터 분석

모니터링 데이터를 분석하기 위한 많은 도구가 있습니다.

Azure Monitor 도구

Azure Monitor는 다음과 같은 기본 도구를 지원합니다.

더 복잡한 시각화를 허용하는 도구는 다음과 같습니다.

  • 대시보드: 다양한 종류의 데이터를 Azure Portal에서 하나의 창에 결합할 수 있습니다.
  • 통합 문서: Azure Portal에서 만들 수 있는 사용자 지정 가능한 보고서입니다. 통합 문서에는 텍스트, 메트릭, 로그 쿼리가 포함될 수 있습니다.
  • Grafana: 뛰어난 운영 대시보드를 제공하는 개방형 플랫폼 도구입니다. Grafana를 사용하여 Azure Monitor 외의 여러 소스에서 온 데이터를 포함하는 대시보드를 만들 수 있습니다.
  • Power BI: 다양한 데이터 소스에서 대화형 시각화를 제공하는 비즈니스 분석 서비스입니다. Azure Monitor에서 자동으로 로그 데이터를 가져오도록 Power BI를 구성하여 이러한 시각화를 활용할 수 있습니다.

Azure Monitor 내보내기 도구

다음 방법을 사용하여 Azure Monitor에서 다른 도구로 데이터를 내보낼 수 있습니다.

Azure Monitor용 REST API를 시작하려면 Azure 모니터링 REST API 연습을 참조하세요.

Kusto 쿼리

KQL(Kusto 쿼리 언어)을 사용하여 Azure Monitor 로그/로그 분석 저장소에서 모니터링 데이터를 분석할 수 있습니다.

Important

포털의 서비스 메뉴에서 로그를 선택하면 쿼리 범위가 현재 서비스로 설정된 상태로 로그 분석이 열립니다. 이 범위는 로그 쿼리에 해당 유형의 리소스의 데이터만 포함된다는 의미입니다. 다른 Azure 서비스의 데이터를 포함하는 쿼리를 실행하려면 Azure Monitor 메뉴에서 로그를 선택합니다. 자세한 내용은 Azure Monitor Log Analytics의 로그 쿼리 범위 및 시간 범위를 참조하세요.

모든 서비스에 대한 일반적인 쿼리 목록은 로그 분석 쿼리 인터페이스를 참조하세요.

경고

Azure Monitor 경고는 모니터링 데이터에서 특정한 조건이 발견될 때 사용자에게 사전에 알립니다. 경고를 통해 사용자에게 알리기 전에 시스템 문제를 식별하고 해결할 수 있습니다. 자세한 내용은 Azure Monitor 경고을 참조하세요.

Azure 리소스에 대한 일반적인 경고의 소스에는 여러 가지가 있습니다. Azure 리소스에 대한 일반적인 경고의 예는 샘플 로그 경고 쿼리를 참조하세요. AMBA(Azure Monitor 기준 경고) 사이트는 중요한 플랫폼 메트릭 경고, 대시보드 및 지침을 구현하는 반자동 방법을 제공합니다. 이 사이트는 ALZ(Azure 랜딩 존)의 일부인 전체 서비스를 포함하여 지속적으로 확장되는 Azure 서비스 하위 집합에 적용됩니다.

공통 경고 스키마는 Azure Monitor 경고 알림의 사용을 표준화합니다. 자세한 내용은 일반 경고 스키마를 참조하세요.

경고 유형

Azure Monitor 데이터 플랫폼의 모든 메트릭 또는 로그 데이터 원본에 대해 경고할 수 있습니다. 모니터링하는 서비스 및 수집하는 모니터링 데이터에 따라 다양한 유형의 경고가 있습니다. 서로 다른 형식의 경고에는 다양한 장점과 단점이 있습니다. 자세한 내용은 올바른 모니터링 경고 유형 선택을 참조하세요.

다음 목록에서는 만들 수 있는 Azure Monitor 경고의 유형에 대해 설명합니다.

  • 메트릭 경고는 정기적으로 리소스 메트릭을 평가합니다. 메트릭은 플랫폼 메트릭, 사용자 지정 메트릭, 메트릭으로 변환된 Azure Monitor의 로그 또는 Application Insights 메트릭일 수 있습니다. 메트릭 경고는 여러 조건과 동적 임계값을 적용할 수도 있습니다.
  • 로그 경고를 사용하면 사용자가 로그 분석 쿼리를 사용하여 미리 정의된 빈도로 리소스 로그를 평가할 수 있습니다.
  • 활동 로그 경고는 정의된 조건과 일치하는 새 활동 로그 이벤트가 발생할 때 트리거됩니다. Resource Health 경고 및 Service Health 경고는 서비스 및 Resource Health를 보고하는 활동 로그 경고입니다.

일부 Azure 서비스는 스마트 검색 경고, Prometheus 경고 또는 권장 경고 규칙도 지원합니다.

일부 서비스의 경우 동일한 Azure 지역에 존재하는 동일한 형식의 여러 리소스에 동일한 메트릭 경고 규칙을 적용하여 대규모로 모니터링할 수 있습니다. 모니터링되는 각 리소스에 대해 개별 알림이 전송됩니다. 지원되는 Azure 서비스 및 클라우드에 대한 내용은 하나의 경고 규칙을 사용하여 여러 리소스 모니터링을 참조하세요.

참고 항목

서비스에서 실행되는 애플리케이션을 만들거나 실행하는 경우 Azure Monitor 애플리케이션 정보는 더 많은 형식의 경고를 제공할 수 있습니다.

Resource Manager 경고 규칙

Azure Resource Manager 모니터링 데이터 참조에 나열된 메트릭, 로그 항목, 활동 로그 항목에 대한 경고를 설정할 수 있습니다.

Advisor 권장 사항

일부 서비스의 경우 리소스 작업 중에 위험한 상태 또는 임박한 변경 사항이 발생하는 경우 해당 서비스에서 포털의 개요 페이지에 경고가 표시됩니다. 왼쪽 메뉴의 모니터링 아래 Advisor 권장 사항에서 해당 경고에 대한 자세한 정보와 권장 수정 사항을 찾을 수 있습니다. 정상적으로 작동하는 중에는 Advisor 권장 사항이 표시되지 않습니다.

Azure Advisor에 대한 자세한 내용은 Azure Advisor 개요를 참조하세요.