Azure Event Hubs 모니터링

Azure 리소스를 사용하는 중요한 애플리케이션 및 비즈니스 프로세스가 있는 경우 이와 같은 리소스의 가용성, 성능 및 작업을 모니터링할 수 있습니다. 이 문서에서는 Azure Event Hubs에서 생성되는 모니터링 데이터와 Azure Monitor 기능을 사용하여 이 데이터에 대해 분석하고 경고하는 방법을 설명합니다.

Azure Monitor란?

Azure Event Hubs는 Azure의 전체 스택 모니터링 서비스인 Azure Monitor를 사용하여 모니터링 데이터를 만듭니다. Azure Monitor는 Azure 리소스를 모니터링하기 위한 완전한 기능 세트를 제공합니다. 또한 다른 클라우드 및 온-프레미스의 리소스도 모니터링할 수 있습니다.

다음 개념을 설명하는 Azure Monitor를 사용하여 Azure 리소스 모니터링 문서로 시작하세요.

  • Azure Monitor란?
  • 모니터링과 관련된 비용
  • Azure에서 수집된 데이터 모니터링
  • 데이터 수집 구성
  • 모니터링 데이터를 분석하고 경고하는 Azure의 표준 도구

이 문서의 다음 섹션에서는 Azure Event Hubs에 대해 수집하는 특정 데이터를 설명합니다. 또한 이 섹션에서는 Azure 도구를 사용하여 데이터 수집을 구성하고 이 데이터를 분석하는 예제를 제공합니다.

Azure Monitor와 관련된 비용을 이해하려면 Azure Monitor 비용 및 사용량을 참조하세요. 데이터가 Azure Monitor에 표시되는 데 걸리는 시간을 이해하려면 로그 데이터 수집 시간을 참조하세요.

Azure Event Hubs에서 데이터 모니터링

Azure Event Hubs는 Azure 리소스의 모니터링 데이터에 설명된 다른 Azure 리소스와 동일한 종류의 모니터링 데이터를 수집합니다.

Azure Event Hubs에서 만든 로그 및 메트릭에 대한 자세한 참조는 Azure Event Hubs 모니터링 데이터 참조를 참조하세요.

수집 및 라우팅

플랫폼 메트릭 및 활동 로그는 자동으로 수집 및 저장되지만, 진단 설정을 사용하여 다른 위치로 라우팅될 수 있습니다.

리소스 로그는 진단 설정을 만들고 하나 이상의 위치로 라우팅할 때까지 수집 및 저장되지 않습니다.

Azure Portal, CLI 또는 PowerShell을 사용한 진단 설정 만들기의 자세한 프로세스는 Azure에서 플랫폼 로그 및 메트릭을 수집하는 진단 설정 만들기를 참조하세요. 진단 설정을 만들 때 수집할 로그 범주를 지정합니다. Azure Event Hubs의 범주는 Azure Event Hubs 모니터링 데이터 참조에 나열됩니다.

참고 항목

Azure Monitor는 Azure Storage, Azure Event Hubs, Log Analytics 등과 같은 대상으로 전송되는 내보낸 메트릭 데이터에 차원을 포함하지 않습니다.

Azure Storage

Azure Storage를 사용하여 진단 로깅 정보를 저장하는 경우 정보는 insights-logs-operationlogsinsights-metrics-pt1m이라는 컨테이너에 저장됩니다. 작업 로그의 샘플 URL: https://<Azure Storage account>.blob.core.windows.net/insights-logs-operationallogs/resourceId=/SUBSCRIPTIONS/<Azure subscription ID>/RESOURCEGROUPS/<Resource group name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<Namespace name>/y=<YEAR>/m=<MONTH-NUMBER>/d=<DAY-NUMBER>/h=<HOUR>/m=<MINUTE>/PT1H.json. 메트릭 로그의 URL은 비슷합니다.

Azure Event Hubs

Azure Event Hubs를 사용하여 진단 로깅 정보를 저장하는 경우 정보는 insights-logs-operationlogsinsights-metrics-pt1m이라는 Event Hubs 인스턴스에 저장됩니다. 진단 설정을 구성하는 이벤트 허브를 제외한 기존 이벤트 허브를 선택할 수도 있습니다.

Log Analytics

Log Analytics를 사용하여 진단 로깅 정보를 저장하는 경우 정보는 AzureDiagnostics / AzureMetrics라는 테이블 또는 리소스별 테이블에 저장됩니다.

Important

이러한 설정을 사용하려면 추가 Azure 서비스(스토리지 계정, 이벤트 허브 또는 Log Analytics)가 필요하므로 비용이 늘어날 수 있습니다. 예상 비용을 계산하려면 Azure 가격 계산기를 방문하세요.

참고 항목

진단 설정에서 메트릭을 사용하도록 설정하면 현재는 스토리지 계정, 이벤트 허브 또는 Log Analytics로 전송되는 정보에 차원 정보가 포함되지 않습니다.

수집할 수 있는 메트릭 및 로그는 다음 섹션에서 설명합니다.

메트릭 분석

Event Hubs 네임스페이스의 홈페이지에 있는 Azure Monitor 섹션에서 메트릭을 선택하여 다른 Azure 서비스의 메트릭과 함께 Azure Event Hubs에 대한 메트릭을 분석할 수 있습니다. 이 도구 사용에 대한 자세한 내용은 Azure Monitor 메트릭 탐색기를 사용하여 메트릭 분석을 참조하세요. 수집되는 플랫폼 메트릭의 목록은 Azure Service Bus 데이터 참조 메트릭 모니터링을 참조하세요.

Event Hubs 네임스페이스에 대한 메트릭 탐색기를 보여 주는 스크린샷.

Azure Monitor에서 지원되는 모든 리소스 메트릭 목록을 참조하세요.

Azure Monitor 메트릭 데이터는 90일 동안 사용할 수 있습니다. 그러나 차트를 만드는 경우 30일 동안만 시각화할 수 있습니다. 예를 들어 90일 시각화하려는 경우 90일 기간 중 30일에 해당하는 차트 3개로 분할해야 합니다.

필터 및 분할

차원을 지원하는 메트릭의 경우 차원 값으로 필터를 적용할 수 있습니다. 예를 들어, EntityName이 이벤트 허브의 이름으로 설정된 필터를 추가합니다. 또한 차원별로 메트릭을 분할하여 메트릭의 세그먼트가 서로 어떻게 비교되는지 시각화할 수 있습니다. 필터링 및 분할에 대한 자세한 내용은 Azure Monitor의 고급 기능을 참조하세요.

필터가 포함된 Event Hubs 네임스페이스에 대한 메트릭 탐색기를 보여 주는 스크린샷.

로그 분석

Azure Monitor Log Analytics를 사용하려면 진단 구성을 만들고 Log Analytics에 정보 보내기를 사용하도록 설정해야 합니다. 자세한 내용은 컬렉션 및 라우팅 섹션을 참조하세요. Azure Monitor 로그의 데이터는 각 테이블에 고유한 속성 집합이 있는 테이블에 저장됩니다. Azure Event Hubs는 AzureDiagnosticsAzureMetrics 테이블에 데이터를 저장합니다.

Important

Azure Event Hubs 메뉴에서 로그를 선택하면 쿼리 범위가 현재 작업 영역으로 설정된 Log Analytics가 열립니다. 즉, 로그 쿼리에는 해당 리소스의 데이터만 포함됩니다. 다른 Azure 서비스의 데이터 또는 다른 데이터베이스의 데이터를 포함하는 쿼리를 실행하려면 Azure Monitor 메뉴에서 로그를 선택합니다. 자세한 내용은 Azure Monitor Log Analytics의 로그 쿼리 범위 및 시간 범위를 참조하세요.

로그 및 메트릭에 대한 자세한 참조는 Azure Event Hubs 모니터링 데이터 참조를 참조하세요.

샘플 Kusto 쿼리

Important

Azure Event Hubs 메뉴에서 로그를 선택하면 쿼리 범위가 현재 Azure Event Hubs 네임스페이스로 설정된 Log Analytics가 열립니다. 즉, 로그 쿼리에는 해당 리소스의 데이터만 포함됩니다. 다른 작업 영역의 데이터 또는 다른 Azure 서비스의 데이터를 포함하는 쿼리를 실행하려면 Azure Monitor 메뉴에서 로그를 선택합니다. 자세한 내용은 Azure Monitor Log Analytics의 로그 쿼리 범위 및 시간 범위를 참조하세요.

다음은 Azure Event Hubs 리소스를 모니터링하는 데 사용할 수 있는 샘플 쿼리입니다.

  • 지난 7일 동안의 오류 발생

    AzureDiagnostics
    | where TimeGenerated > ago(7d)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "OperationalLogs"
    | summarize count() by "EventName"
    
    
  • 지난 1시간 동안 생성된 런타임 감사 로그를 얻습니다.

    AzureDiagnostics
    | where TimeGenerated > ago(1h)
    | where ResourceProvider =="MICROSOFT.EVENTHUB"
    | where Category == "RuntimeAuditLogs"    
    
  • "키를 찾을 수 없음" 오류가 발생한 키 자격 증명 모음에 액세스를 시도합니다.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB" 
    | where Category == "Error" and OperationName == "wrapkey"
    | project Message
    
  • 키를 사용하지 않도록 설정하거나 복원하기 위해 키 자격 증명 모음으로 수행되는 작업을 확인합니다.

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "info" and OperationName == "disable" or OperationName == "restore"
    | project Message
    
  • 캡처 실패 및 해당 지속 시간(초) 가져오기

    AzureDiagnostics
    | where ResourceProvider == "MICROSOFT.EVENTHUB"
    | where Category == "ArchiveLogs"
    | summarize count() by "failures", "durationInSeconds"    
    

런타임 로그 사용

Azure Event Hubs를 사용하면 런타임 감사 로그 및 애플리케이션 메트릭 로그를 사용하여 클라이언트 애플리케이션의 데이터 평면 상호 작용을 모니터링하고 감사할 수 있습니다.

런타임 감사 로그를 사용하면 이벤트 게시 또는 사용과 같은 모든 데이터 평면 액세스 작업에 대해 집계된 진단 정보를 캡처할 수 있습니다. 애플리케이션 메트릭 로그는 Event Hubs에 연결된 클라이언트 애플리케이션과 관련된 특정 런타임 메트릭(예: 소비자 지연 및 활성 연결)에서 집계된 데이터를 캡처합니다.

참고 항목

런타임 감사 로그는 프리미엄전용 계층에서만 사용할 수 있습니다.

런타임 로그 사용

Azure Portal의 Event Hubs 네임스페이스 페이지에 있는 모니터링 섹션에서 진단 설정을 선택하여 런타임 감사 또는 애플리케이션 메트릭 로깅을 사용하도록 설정할 수 있습니다. 다음 이미지에 표시된 대로 진단 설정 추가를 선택합니다.

Event Hubs 네임스페이스에 대한 진단 설정 페이지를 보여 주는 스크린샷.

그런 다음, 필요에 따라 로그 범주 RuntimeAuditLogs 또는 ApplicationMetricsLogs를 사용하도록 설정할 수 있습니다.

사용하도록 설정된 런타임 감사 및 애플리케이션 메트릭 로그를 보여 주는 스크린샷.

런타임 로그를 사용하도록 설정하면 Event Hubs는 진단 설정 구성에 따라 수집 및 저장을 시작합니다.

샘플 데이터 게시 및 사용

Event Hubs 네임스페이스에서 샘플 런타임 감사 로그를 수집하기 위해 AMQP(Advanced Message Queuing Protocol)를 사용하는 Event Hubs SDK 기반의 클라이언트 애플리케이션을 사용하거나 Apache Kafka 클라이언트 애플리케이션을 사용하여 샘플 데이터를 게시하고 사용할 수 있습니다.

런타임 감사 로그 분석

다음 샘플 쿼리를 사용하여 수집된 런타임 감사 로그를 분석할 수 있습니다.

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where ResourceProvider == "MICROSOFT.EVENTHUB"
| where Category == "RuntimeAuditLogs"

쿼리를 실행할 때 다음 형식으로 해당 감사 로그를 가져올 수 있어야 합니다. 런타임 감사 로그를 분석하는 샘플 쿼리의 결과를 보여 주는 이미지

이러한 로그를 분석하면 각 클라이언트 애플리케이션이 Event Hubs와 상호 작용하는 방식을 감사할 수 있습니다. 런타임 감사 로그와 연결된 각 필드는 런타임 감사 로그 참조에 정의됩니다.

애플리케이션 메트릭 분석

다음 샘플 쿼리를 사용하여 수집된 애플리케이션 메트릭 로그를 분석할 수 있습니다.

AzureDiagnostics
| where TimeGenerated > ago(1h)
| where Category == "ApplicationMetricsLogs"

애플리케이션 메트릭에는 다음과 같은 런타임 메트릭이 포함됩니다. 애플리케이션 메트릭을 분석하는 샘플 쿼리의 결과를 보여 주는 이미지

따라서 애플리케이션 메트릭을 사용하여 지정된 클라이언트 애플리케이션의 소비자 지연 또는 활성 연결과 같은 런타임 메트릭을 모니터링할 수 있습니다. 런타임 감사 로그와 연결된 필드는 애플리케이션 메트릭 로그 참조에 정의됩니다.

경고

Event Hubs 네임스페이스의 홈페이지에 있는 Azure Monitor 섹션에서 경고를 선택하여 Azure Event Hubs에 대한 경고에 액세스할 수 있습니다. 경고 만들기에 대한 자세한 내용은 Azure Monitor를 사용하여 메트릭 경고 만들기, 보기 및 관리를 참조하세요.

다음 단계