Azure Service Bus 모니터링 데이터 참조

Azure Service Bus에 대한 모니터링 데이터 수집 및 분석에 대한 자세한 내용은 Azure Service Bus 모니터링을 참조하세요.

참고 항목

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

메트릭

이 섹션에서는 Azure Service Bus에 대해 수집된 모든 자동으로 수집된 플랫폼 메트릭을 나열합니다. 이러한 메트릭에 대한 리소스 공급자는 Microsoft.ServiceBus/namespaces입니다.

요청 메트릭

데이터 및 관리 작업 요청 수를 계산합니다.

메트릭 이름 진단 설정을 통해 내보낼 수 있습니다. 단위 집계 유형 설명 차원
들어오는 요청 Count 합계 지정된 기간 동안 Service Bus 서비스에 대한 요청 수입니다. EntityName
성공한 요청 아니요 Count 합계 지정된 기간 동안 Service Bus 서비스에 대한 성공한 요청 수입니다. 엔터티 이름
OperationResult
서버 오류 아니요 Count 합계 지정된 기간 동안 Service Bus 서비스에서 오류로 인해 처리되지 않은 요청 수입니다. 엔터티 이름
OperationResult
User Errors 아니요 Count 합계 지정된 기간 동안 사용자 오류로 인해 처리되지 않은 요청 수입니다. 엔터티 이름
제한된 요청 아니요 Count 합계

사용량 초과로 인해 제한된 요청 수입니다.

MessagingErrorSubCode 차원에는 다음과 같은 가능한 값이 있습니다.

  • CPU: CPU 제한
  • 스토리지:It 보류 중인 검사점 작업으로 인한 제한
  • 네임스페이스:
  • 알려지지 않음: 기타 리소스 제한
엔터티 이름
MessagingErrorSubCode
보류 중인 검사점 작업의 수 아니요 count 평균 네임스페이스에서 보류 중인 검사점 작업의 수입니다. 보류 중인 검사점 수가 (500,000 + (500,000 * 메시징 단위)) 작업의 제한을 초과하면 서비스가 제한을 시작합니다. 이 메트릭은 프리미엄 계층을 사용하는 네임스페이스에만 적용됩니다. MessagingErrorSubCode
서버 전송 대기 시간 아니요 밀리초 평균 Service Bus 서비스에서 요청을 완료하는 데 걸린 시간입니다. 엔터티 이름

다음 두 가지 유형의 오류는 사용자 오류분류됩니다.

  1. 클라이언트 쪽 오류(HTTP에서 400개 오류).
  2. MessageLockLostException과 같은 메시지를 처리하는 동안 발생하는 오류입니다.

메시지 메트릭

메트릭 이름 진단 설정을 통해 내보낼 수 있습니다. 단위 집계 유형 설명 차원
들어오는 메시지 Count 합계 지정된 기간 동안 Service Bus에 전송된 이벤트 또는 메시지 수입니다. 기본 및 표준 계층의 경우 들어오는 자동 전달 메시지가 이 메트릭에 포함됩니다. 그리고 프리미엄 계층의 경우 포함되지 않습니다. 엔터티 이름
보내는 메시지 Count 합계 지정된 기간 동안 Service Bus에서 받은 이벤트 또는 메시지 수입니다. 나가는 자동 전달 메시지는 이 메트릭에 포함되지 않습니다. 엔터티 이름
메시지 아니요 Count 평균 큐/토픽에 있는 메시지 수 이 메트릭에는 활성, 배달 못한 편지, 예약됨 등과 같은 다양한 상태의 메시지가 포함됩니다. 엔터티 이름
활성 메시지 아니요 Count 평균 큐/토픽의 활성 메시지 수입니다. 활성 메시지는 활성 상태에 있고 배달 준비가 된 큐 또는 구독의 메시지입니다. 메시지를 받을 수 있습니다. 엔터티 이름
배달 못한 메시지 아니요 Count 평균 큐/토픽의 배달 못한 편지 메시지 수입니다. 엔터티 이름
예약된 메시지 아니요 Count 평균 큐/토픽에서 예약된 메시지 수입니다. 엔터티 이름
완료된 메시지 Count 합계 지정된 기간 동안 완료된 메시지 수입니다. 엔터티 이름
중단된 메시지 Count 합계 지정된 기간 동안 중단된 메시지 수입니다. 엔터티 이름
크기 아니요 바이트 평균 엔터티(큐 또는 토픽)의 크기(바이트)입니다. 엔터티 이름

Important

메시지, 활성, 배달 못한 편지, 예약됨, 완료 및 중단된 메시지에 대한 값은 지정 시간 값입니다. 해당 지정 시간 직후에 사용된 들어오는 메시지는 이러한 메트릭에 반영되지 않을 수 있습니다.

참고 항목

클라이언트가 큐 또는 토픽에 대한 정보를 얻으려고 하면 Service Bus 서비스는 이름, 마지막으로 업데이트된 시간, 만든 시간, 세션 필요 여부 등과 같은 일부 정적 정보 및 메시지 수와 같은 일부 동적 정보를 반환합니다. 요청이 제한되면 서비스는 정적 정보와 빈 동적 정보를 반환합니다. 따라서 네임스페이스가 제한될 때 메시지 수가 0으로 표시됩니다. 이 동작은 의도된 것입니다.

연결 메트릭

메트릭 이름 진단 설정을 통해 내보낼 수 있습니다. 단위 집계 유형 설명 차원
활성 연결 아니요 Count 합계 네임스페이스와 엔터티의 활성 연결 수입니다. 해당 메트릭의 값은 지정 시간 값입니다. 해당 시점 직후에 활성화된 연결은 메트릭에 반영되지 않을 수 있습니다.
열린 연결 아니요 Count 평균 열린 연결 수입니다. 이 메트릭의 값은 집계이며, 집계 기간에서 열린 모든 연결을 포함합니다. 엔터티 이름
닫힌 연결 아니요 Count 평균 닫힌 연결 수입니다. 이 메트릭의 값은 집계이며, 집계 기간에서 열린 모든 연결을 포함합니다. 엔터티 이름

리소스 사용량 메트릭

참고 항목

다음 메트릭은 프리미엄 계층에서만 사용할 수 있습니다.

프리미엄 계층 네임스페이스의 중단을 모니터링하는 중요한 메트릭은 네임스페이스당 CPU 사용량 및 네임스페이스당 메모리 크기입니다. Azure Monitor를 사용하여 이러한 메트릭에 대한 경고를 설정합니다.

모니터링할 수 있는 다른 메트릭은 제한된 요청입니다. 네임스페이스가 메모리, CPU 및 조정된 연결 제한 내에 유지되는 한 문제가 되지 않아야 합니다. 자세한 내용은 Azure Service Bus 프리미엄 계층의 제한을 참조 하세요.

메트릭 이름 진단 설정을 통해 내보낼 수 있습니다. 단위 집계 유형 설명 차원
네임스페이스당 CPU 사용량 아니요 CPU 백분율 네임스페이스의 CPU 사용량 비율입니다. 복제본
네임스페이스당 메모리 크기 사용량 아니요 메모리 사용량 퍼센트 네임스페이스의 메모리 사용량 비율입니다. 복제본

오류 메트릭

메트릭 이름 진단 설정을 통해 내보낼 수 있습니다. 단위 집계 유형 설명 차원
서버 오류 아니요 Count 합계 지정된 기간 동안 Service Bus 서비스에서 오류로 인해 처리되지 않은 요청 수입니다. 엔터티 이름

작업 결과
User Errors 아니요 Count 합계 지정된 기간 동안 사용자 오류로 인해 처리되지 않은 요청 수입니다. 엔터티 이름

작업 결과

메트릭 차원

Azure Service Bus는 Azure Monitor의 메트릭에 대해 다음 차원을 지원합니다. 메트릭에 차원을 추가하는 것은 선택 사항입니다. 차원을 추가하지 않을 경우, 메트릭은 네임스페이스 수준에서 지정됩니다.

차원 이름 설명
엔터티 이름 Service Bus는 네임스페이스에서 메시징 엔터티를 지원합니다. '들어오는 요청' 메트릭을 사용하면 엔터티 이름 차원에 모든 큐 및 토픽 외에 '-NamespaceOnlyMetric-' 값을 갖습니다. 이는 네임스페이스 수준에서 수행된 요청을 나타냅니다. 네임스페이스 아래 모든 큐/토픽을 나열하라는 요청이나 인증 또는 권한 부여에 실패한 엔터티에 대한 요청을 예로 들 수 있습니다.

리소스 로그

이 섹션에서는 Azure Service Bus에 대해 수집할 수 있는 리소스 로그 유형을 나열합니다.

  • 작업 로그.
  • 가상 네트워크 및 IP 필터링 로그
  • 런타임 감사 로그

이제 Azure Service Bus에는 Log Analytics의 Azure Diagnostic 또는 리소스별 테이블인 두 대상 테이블 중 하나에 로그를 디스패치하는 기능이 있습니다. Azure Portal에서 사용할 수 있는 토글을 사용하여 대상 테이블을 선택할 수 있습니다.

대상 테이블 설정 대화 상자 스크린샷.

작업 로그.

작업 로그 항목에는 다음 표에 나열된 요소가 포함됩니다.

속성 설명 AzureDiagnostics에서 지원됨 AZMSOperationalLogs에서 지원됨(리소스별 테이블)
ActivityId 지정된 활동을 식별하는 데 사용되는 내부 ID
EventName 작업 이름
ResourceId Azure Resource Manager 리소스 ID
SubscriptionId 구독 ID
EventtimeString 작업 시간 아니요
TimeGenerated [UTC] 실행된 작업의 시간(UTC)
EventProperties 작업 속성
Status 작업 상태
Caller 작업 호출자(Azure Portal 또는 관리 클라이언트)
Provider 로그를 내보내는 서비스 이름(예: ServiceBus)
Type 내보낸 로그의 유형
Category 로그 범주 아니요

작업 로그 JSON 문자열 예제는 다음과 같습니다.

AzureDiagnostics:


{
  "ActivityId": "0000000000-0000-0000-0000-00000000000000",
  "EventName": "Create Queue",
  "resourceId": "/SUBSCRIPTIONS/<AZURE SUBSCRPTION ID>/RESOURCEGROUPS/<RESOURCE GROUP NAME>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<SERVICE BUS NAMESPACE NAME>",
  "SubscriptionId": "0000000000-0000-0000-0000-00000000000000",
  "EventTimeString": "9/28/2016 8:40:06 PM +00:00",
  "EventProperties": "{\"SubscriptionId\":\"0000000000-0000-0000-0000-00000000000000\",\"Namespace\":\"mynamespace\",\"Via\":\"https://mynamespace.servicebus.windows.net/f8096791adb448579ee83d30e006a13e/?api-version=2016-07\",\"TrackingId\":\"5ee74c9e-72b5-4e98-97c4-08a62e56e221_G1\"}",
  "Status": "Succeeded",
  "Caller": "ServiceBus Client",
  "category": "OperationalLogs"
}


리소스별 테이블 항목:


{

  "ActivityId": "0000000000-0000-0000-0000-00000000000000",
  "EventName": "Retrieve Queue",
  "resourceId": "/SUBSCRIPTIONS/<AZURE SUBSCRPTION ID>/RESOURCEGROUPS/<RESOURCE GROUP NAME>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<SERVICE BUS NAMESPACE NAME>",
  "SubscriptionId": "0000000000-0000-0000-0000-00000000000000",
  "TimeGenerated(UTC)": "9/28/2023 8:40:06 PM +00:00",
  "EventProperties": "{\"SubscriptionId\":\"0000000000-0000-0000-0000-00000000000000\",\"Namespace\":\"mynamespace\",\"Via\":\"https://mynamespace.servicebus.windows.net/f8096791adb448579ee83d30e006a13e/?api-version=2016-07\",\"TrackingId\":\"5ee74c9e-72b5-4e98-97c4-08a62e56e221_G1\"}",
  "Status": "Succeeded",
  "Caller": "ServiceBus Client",
  "type": "AZMSOperationalLogs",
  "Provider" : "SERVICEBUS"

}

작업 로그에 캡처된 이벤트 및 작업

운영 로그는 Azure Service Bus 네임스페이스에서 수행되는 모든 관리 작업을 캡처합니다. Azure Service Bus에서 수행되는 대량의 데이터 작업으로 인해 데이터 작업이 캡처되지 않습니다.

참고 항목

데이터 작업을 보다 효율적으로 추적할 수 있도록 클라이언트 사이드 트레이싱을 사용하는 것이 좋습니다.

다음 관리 작업은 작업 로그에 캡처됩니다.

범위 연산
네임스페이스 - 네임스페이스 만들기
- 네임스페이스 업데이트
- 네임스페이스 삭제
- 네임스페이스 업데이트
- 네임스페이스 검색
- SharedAccess 정책
Queue - 큐 만들기
- 큐 업데이트
- 큐 삭제
- 큐 삭제 자동 삭제
- 큐 검색
항목 - 토픽 만들기
- 업데이트 항목
- 항목 삭제
- 삭제 항목 자동 삭제
- 항목 검색
구독 - 구독 만들기
- 구독 업데이트
- 구독 삭제
- 구독 삭제 자동 삭제
- 구독 검색

참고 항목

현재 읽기 작업은 작업 로그에서 추적되지 않습니다.

가상 네트워크 및 IP 필터링 로그

Service Bus VNet(가상 네트워크) 연결 이벤트 JSON에는 다음 표에 나열된 요소가 포함되어 있습니다.

속성 설명 Azure Diagnostics에서 지원됨 AZMSVnetConnectionEvents에서 지원됨(리소스별 테이블)
SubscriptionId Azure 구독 ID
NamespaceName 네임스페이스 이름
IPAddress Service Bus 서비스에 연결하는 클라이언트의 IP 주소
AddressIP Service Bus에 연결하는 클라이언트의 IP 주소
TimeGenerated [UTC] 실행된 작업의 시간(UTC)
Action 연결 요청을 평가할 때 Service Bus 서비스에서 수행된 작업입니다. 지원되는 작업은 연결 허용연결 거부입니다.
Reason 작업이 완료된 이유를 제공합니다.
Count 지정된 작업의 발생 수
ResourceId Azure Resource Manager 리소스 ID입니다.
Category 로그 범주 아니요
Provider 로그를 내보내는 서비스 이름(예: ServiceBus)
Type 내보낸 로그의 유형

참고 항목

가상 네트워크 로그는 네임스페이스에서 선택한 네트워크 또는 특정 IP 주소(IP 필터 규칙)의 액세스를 허용하는 경우에만 생성됩니다.

다음은 가상 네트워크 로그 JSON 문자열의 예제입니다.

AzureDiagnostics;

{
    "SubscriptionId": "0000000-0000-0000-0000-000000000000",
    "NamespaceName": "namespace-name",
    "IPAddress": "1.2.3.4",
    "Action": "Accept Connection",
    "Reason": "IP is accepted by IPAddress filter.",
    "Count": 1,
    "ResourceId": "/SUBSCRIPTIONS/<AZURE SUBSCRIPTION ID>/RESOURCEGROUPS/<RESOURCE GROUP NAME>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<SERVICE BUS NAMESPACE NAME>",
    "Category": "ServiceBusVNetConnectionEvent"
}

리소스별 테이블 항목:

{
    "SubscriptionId": "0000000-0000-0000-0000-000000000000",
    "NamespaceName": "namespace-name",
    "AddressIp": "1.2.3.4",
    "Action": "Accept Connection",
    "Message": "IP is accepted by IPAddress filter.",
    "Count": 1,
    "ResourceId": "/SUBSCRIPTIONS/<AZURE SUBSCRIPTION ID>/RESOURCEGROUPS/<RESOURCE GROUP NAME>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<SERVICE BUS NAMESPACE NAME>",
    "Provider" : "SERVICEBUS",
    "Type": "AZMSVNetConnectionEvents"
}

런타임 감사 로그

런타임 감사 로그는 Service Bus의 다양한 데이터 평면 액세스 작업(예: 메시지 보내기 또는 받기)에 대해 집계된 진단 정보를 캡처합니다.

참고 항목

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

런타임 감사 로그에는 다음 표에 나열된 요소가 포함됩니다.

속성 설명 Azure Diagnostics에서 지원됨 AZMSRuntimeAuditLogs에서 지원됨(리소스 관련 테이블)
ActivityId 감사 활동에 대한 고유성을 보장하는 임의로 생성된 UUID입니다.
ActivityName 런타임 작업 이름입니다.
ResourceId 활동과 연결된 리소스입니다.
Timestamp 집계 시간입니다. 아니요
time Generated (UTC) 집계된 시간
Status 활동의 상태(성공 또는 실패)입니다.
Protocol 작업과 연결된 프로토콜의 유형입니다.
AuthType 인증 유형(Microsoft Entra ID 또는 SAS 정책).
AuthKey 리소스에 인증하는 데 사용되는 Microsoft Entra 애플리케이션 ID 또는 SAS 정책 이름입니다.
NetworkType 네트워크 액세스 유형(Public 또는 Private)입니다.
ClientIP 클라이언트 애플리케이션의 IP 주소입니다.
Count 집계된 1분 동안 수행된 총 작업 수입니다.
Properties 데이터 평면 작업과 관련이 있는 메타데이터입니다.
Category 로그 범주 아니요
Provider 로그를 내보내는 서비스 이름(예: ServiceBus)
Type 내보낸 로그의 유형

다음은 런타임 감사 로그 항목의 예입니다.

AzureDiagnostics:

{
    "ActivityId": "<activity id>",
    "ActivityName": "ConnectionOpen | Authorization | SendMessage | ReceiveMessage | PeekLockMessage",
    "ResourceId": "/SUBSCRIPTIONS/xxx/RESOURCEGROUPS/<Resource Group Name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<Service Bus namespace>/servicebus/<service bus name>",
    "Time": "1/1/2021 8:40:06 PM +00:00",
    "Status": "Success | Failure",
    "Protocol": "AMQP | HTTP | SBMP", 
    "AuthType": "SAS | AAD", 
    "AuthKey": "<AAD Application Name| SAS policy name>",
    "NetworkType": "Public | Private", 
    "ClientIp": "x.x.x.x",
    "Count": 1, 
    "Category": "RuntimeAuditLogs"
 }

리소스별 테이블 항목:

{
    "ActivityId": "<activity id>",
    "ActivityName": "ConnectionOpen | Authorization | SendMessage | ReceiveMessage | PeekLockMessage",
    "ResourceId": "/SUBSCRIPTIONS/xxx/RESOURCEGROUPS/<Resource Group Name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<Service Bus namespace>/servicebus/<service bus name>",
    "TimeGenerated (UTC)": "1/1/2021 8:40:06 PM +00:00",
    "Status": "Success | Failure",
    "Protocol": "AMQP | HTTP | SBMP", 
    "AuthType": "SAS | AAD", 
    "AuthKey": "<AAD Application Name| SAS policy name>",
    "NetworkType": "Public | Private", 
    "ClientIp": "x.x.x.x",
    "Count": 1, 
    "Provider": "SERVICEBUS",
    "Type"   : "AZMSRuntimeAuditLogs"
 }

진단 오류 로그

진단 오류 로그는 모든 클라이언트 쪽에 대한 오류 메시지를 캡처합니다. 제한 및 할당량 초과 오류입니다. 오류 식별에 대한 자세한 진단 제공합니다.

진단 오류 로그에는 아래 표에 나열된 요소가 포함됩니다.

속성 설명 Azure Diagnostics에서 지원됨 AZMSDiagnosticErrorLogs에서 지원됨(리소스 관련 테이블)
ActivityId 감사 활동에 대한 고유성을 보장하는 임의로 생성된 UUID입니다.
ActivityName 작업 이름
NamespaceName 네임스페이스 이름
EntityType 엔터티 형식
EntityName 엔터티 이름
OperationResult 작업의 오류 유형(Clienterror 또는 Serverbusy 또는 quotaexceeded)
ErrorCount 집계 기간 1분 동안 동일한 오류의 수입니다.
ErrorMessage 자세한 오류 메시지
Provider 로그를 내보내는 서비스의 이름입니다. 가능한 값: eventhub, relay 및 servicebus
Time Generated (UTC) 작업 시간
EventTimestamp 작업 시간 아니요
Category 로그 범주 아니요
Type 내보낸 로그의 유형

진단 오류 로그 항목의 예는 다음과 같습니다.

{
    "ActivityId": "0000000000-0000-0000-0000-00000000000000",
    "SubscriptionId": "<Azure Subscription Id",
    "NamespaceName": "Name of Service Bus Namespace",
    "EntityType": "Queue",
    "EntityName": "Name of Service Bus Queue",
    "ActivityName": "SendMessage",
    "ResourceId": "/SUBSCRIPTIONS/xxx/RESOURCEGROUPS/<Resource Group Name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<service bus namespace name>",,
    "OperationResult": "ClientError",
    "ErrorCount": 1,
    "EventTimestamp": "3/27/2024 1:02:29.126 PM +00:00",
    "ErrorMessage": "the sessionid was not set on a message, and it cannot be sent to the entity. entities that have session support enabled can only receive messages that have the sessionid set to a valid value.",
    "category": "DiagnosticErrorLogs"
 }

리소스별 테이블 항목:

{
    "ActivityId": "0000000000-0000-0000-0000-00000000000000",
    "NamespaceName": "Name of Service Bus Namespace",
    "EntityType": "Queue",
    "EntityName": "Name of Service Bus Queue",
    "ActivityName": "SendMessage",
    "ResourceId": "/SUBSCRIPTIONS/xxx/RESOURCEGROUPS/<Resource Group Name>/PROVIDERS/MICROSOFT.SERVICEBUS/NAMESPACES/<service bus namespace name>",,
    "OperationResult": "ClientError",
    "ErrorCount": 1,
    "TimeGenerated [UTC]": "1/27/2024 4:02:29.126 PM +00:00",
    "ErrorMessage": "the sessionid was not set on a message, and it cannot be sent to the entity. entities that have session support enabled can only receive messages that have the sessionid set to a valid value.",
    "Type": "AZMSDiagnosticErrorLogs"
 }

2026년 9월 30일에 Azure Service Bus에 대한 SBMP 프로토콜 지원이 사용 중지되므로 2026년 9월 30일 이후에는 더 이상 이 프로토콜을 사용할 수 없습니다. 해당 날짜 이전에 중요한 보안 업데이트와 개선된 기능을 제공하는 AMQP 프로토콜을 사용하여 최신 Azure Service Bus SDK 라이브러리로 마이그레이션하세요.

자세한 내용은 사용 중지 공지 지원을 참조하세요.

Azure Monitor 로그 테이블

Azure Service Bus는 Azure Monitor 로그의 Kusto 테이블을 사용합니다. Log Analytics를 사용하여 이러한 테이블을 쿼리할 수 있습니다. 서비스에서 사용하는 Kusto 테이블 목록은 Azure Monitor 로그 테이블 참조를 참조하세요.

다음 단계