Event Grid 리소스에 대한 진단 로그 사용
이 문서에서는 Event Grid 리소스에 대한 진단 설정을 사용하도록 설정하기 위한 단계별 지침을 제공합니다. 이 설정을 사용하면 모든 오류를 해결할 수 있도록 진단 정보를 캡처하고 볼 수 있습니다. 다음 표에서는 사용자 지정 토픽, 시스템 토픽, 도메인 등 다양한 종류의 Event Grid 리소스에 사용할 수 있는 설정을 보여 줍니다.
진단 설정 | Event Grid 항목 | Event Grid 시스템 토픽 | 이벤트 도메인 | Event Grid 파트너 네임스페이스 |
---|---|---|---|---|
DeliveryFailures | 예 | 네 | 네 | 아니요 |
PublishFailures | 예 | 없음 | 네 | 예 |
DataPlaneRequests | 예 | 없음 | 네 | 예 |
Important
배달 실패, 게시 실패 및 데이터 평면 요청의 스키마는 진단 로그를 참조하세요.
필수 조건
- 프로비저닝된 Event Grid 리소스
- 진단 로그를 캡처하기 위한 프로비저닝된 대상:
- Log Analytics 작업 영역
- 스토리지 계정
- Event Hubs
- 파트너 솔루션
Event Grid 토픽 및 도메인에 대한 진단 로그 사용
참고 항목
다음 절차에서는 토픽에 대한 진단 로그를 사용하도록 설정하기 위한 단계별 지침을 제공합니다. 도메인에 대한 진단 로그를 사용하도록 설정하는 단계는 매우 유사합니다. 2단계에서 Azure Portal의 Event Grid 도메인으로 이동합니다.
Azure Portal에 로그인합니다.
진단 로그 설정을 사용하도록 설정하려는 Event Grid 토픽으로 이동합니다.
위쪽 검색 창에서 Event Grid 토픽을 검색합니다.
목록에서 진단 설정을 구성할 토픽을 선택합니다.
왼쪽 메뉴의 모니터링에서 진단 설정을 선택합니다.
진단 설정 페이지에서 새 진단 설정 추가를 선택합니다.
진단 설정의 이름을 지정합니다.
로그 섹션에서 allLogs 옵션을 선택합니다.
로그에 대해 하나 이상의 캡처 대상을 사용하도록 설정한 다음 이전에 만든 캡처 리소스를 선택하여 구성합니다.
Log Analytics로 보내기를 선택한 경우 Log Analytics 작업 영역을 선택합니다.
스토리지 계정에 보관을 선택한 경우 스토리지 계정 - 구성을 선택한 다음 Azure 구독에서 스토리지 계정을 선택합니다.
이벤트 허브로 스트림을 선택한 경우 이벤트 허브 - 구성을 선택한 다음 Event Hubs 네임스페이스, 이벤트 허브 및 액세스 정책을 선택합니다.
저장을 선택합니다. 그런 다음 오른쪽 모서리에서 X를 선택하여 페이지를 닫습니다.
이제 진단 설정 페이지로 돌아가서 진단 설정 테이블에 새 항목이 표시되는지 확인합니다.
토픽에 대한 모든 메트릭의 컬렉션을 사용하도록 설정할 수도 있습니다.
Event Grid 시스템 토픽에 대한 진단 로그 사용
- Azure Portal에 로그인합니다.
- 진단 로그 설정을 사용하도록 설정하려는 시스템 토픽으로 이동합니다.
- 위쪽 검색 창에서 Event Grid 시스템 토픽을 검색합니다.
- 진단 설정을 구성할 시스템 토픽을 선택합니다.
- 왼쪽 메뉴의 모니터링에서 진단 설정을 선택한 다음 + 진단 설정 추가를 선택합니다.
- 진단 설정의 이름을 지정합니다.
- 로그 섹션에서 allLogs 옵션을 선택합니다.
- 로그에 대해 하나 이상의 캡처 대상을 사용하도록 설정한 다음 이전에 만든 캡처 리소스를 선택하여 구성합니다.
- Log Analytics로 보내기를 선택한 경우 Log Analytics 작업 영역을 선택합니다.
- 스토리지 계정에 보관을 선택한 경우 스토리지 계정 - 구성을 선택한 다음 Azure 구독에서 스토리지 계정을 선택합니다.
- 이벤트 허브로 스트림을 선택한 경우 이벤트 허브 - 구성을 선택한 다음, Event Hubs 네임스페이스, 이벤트 허브, 액세스 정책을 선택합니다.
- 저장을 선택합니다. 그런 다음 오른쪽 모서리에서 X를 선택하여 페이지를 닫습니다.
- 이제 진단 설정 페이지로 돌아가서 진단 설정 테이블에 새 항목이 표시되는지 확인합니다.
시스템 토픽에 대한 모든 메트릭의 컬렉션을 사용하도록 설정할 수도 있습니다.
Azure Storage에서 진단 로그 보기
스토리지 계정을 캡처 대상으로 사용하도록 설정하면 Event Grid에서 진단 로그 내보내기를 시작합니다. 스토리지 계정에 insights-logs-deliveryfailures 및 insights-logs-publishfailures라는 새 컨테이너가 표시되어야 합니다.
컨테이너 중 하나를 탐색하면 JSON 형식의 Blob을 찾게 됩니다. 이 파일은 배달 실패 또는 게시 실패에 대한 로그 항목을 포함합니다. 탐색 경로는 Event Grid 토픽의 ResourceId와 로그 항목을 내보낸 시간에 대한 타임스탬프(분 수준)를 나타냅니다. 최종적으로 다운로드할 수 있는 Blob/JSON 파일은 다음 섹션에 설명된 스키마를 따릅니다.
JSON 파일에 다음 예와 유사한 내용이 표시되어야 합니다.
{ "time": "2019-11-01T00:17:13.4389048Z", "resourceId": "/SUBSCRIPTIONS/SAMPLE-SUBSCTIPTION-ID /RESOURCEGROUPS/SAMPLE-RESOURCEGROUP-NAME/PROVIDERS/MICROSOFT.EVENTGRID/TOPICS/SAMPLE-TOPIC-NAME ", "eventSubscriptionName": "SAMPLEDESTINATION", "category": "DeliveryFailures", "operationName": "Deliver", "message": "Message:outcome=NotFound, latencyInMs=2635, id=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxx, systemId=xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx, state=FilteredFailingDelivery, deliveryTime=11/1/2019 12:17:10 AM, deliveryCount=0, probationCount=0, deliverySchema=EventGridEvent, eventSubscriptionDeliverySchema=EventGridEvent, fields=InputEvent, EventSubscriptionId, DeliveryTime, State, Id, DeliverySchema, LastDeliveryAttemptTime, SystemId, fieldCount=, requestExpiration=1/1/0001 12:00:00 AM, delivered=False publishTime=11/1/2019 12:17:10 AM, eventTime=11/1/2019 12:17:09 AM, eventType=Type, deliveryTime=11/1/2019 12:17:10 AM, filteringState=FilteredWithRpc, inputSchema=EventGridEvent, publisher=DIAGNOSTICLOGSTEST-EASTUS.EASTUS-1.EVENTGRID.AZURE.NET, size=363, fields=Id, PublishTime, SerializedBody, EventType, Topic, Subject, FilteringHashCode, SystemId, Publisher, FilteringTopic, TopicCategory, DataVersion, MetadataVersion, InputSchema, EventTime, fieldCount=15, url=sb://diagnosticlogstesting-eastus.servicebus.windows.net/, deliveryResponse=NotFound: The messaging entity 'sb://diagnosticlogstesting-eastus.servicebus.windows.net/eh-diagnosticlogstest' could not be found. TrackingId:c98c5af6-11f0-400b-8f56-c605662fb849_G14, SystemTracker:diagnosticlogstesting-eastus.servicebus.windows.net:eh-diagnosticlogstest, Timestamp:2019-11-01T00:17:13, referenceId: ac141738a9a54451b12b4cc31a10dedc_G14:" }
Azure Resource Manager 템플릿 사용
다음은 Event Grid 항목에 대한 진단 설정을 사용하도록 설정하는 샘플 Azure Resource Manager 템플릿입니다. 샘플 템플릿을 배포하면 다음 리소스가 생성됩니다.
- Event Grid 토픽
- Log Analytics 작업 영역
그런 다음, 진단 정보를 Log Analytics 작업 영역으로 보내는 항목에 대한 진단 설정을 생성합니다.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"topic_name": {
"defaultValue": "spegrid0917topic",
"type": "String"
},
"log_analytics_workspace_name": {
"defaultValue": "splogaw0625",
"type": "String"
},
"location": {
"defaultValue": "eastus",
"type": "String"
},
"sku": {
"defaultValue": "Free",
"type": "String"
}
},
"variables": {},
"resources": [
{
"type": "Microsoft.EventGrid/topics",
"apiVersion": "2020-10-15-preview",
"name": "[parameters('topic_name')]",
"location": "[parameters('location')]",
"sku": {
"name": "Basic"
},
"kind": "Azure",
"identity": {
"type": "None"
},
"properties": {
"inputSchema": "EventGridSchema",
"publicNetworkAccess": "Enabled"
}
},
{
"apiVersion": "2017-03-15-preview",
"name": "[parameters('log_analytics_workspace_name')]",
"location": "[parameters('location')]",
"type": "Microsoft.OperationalInsights/workspaces",
"properties": {
"sku": {
"name": "[parameters('sku')]"
}
}
},
{
"type": "Microsoft.EventGrid/topics/providers/diagnosticSettings",
"apiVersion": "2017-05-01-preview",
"name": "[concat(parameters('topic_name'), '/', 'Microsoft.Insights/', parameters('log_analytics_workspace_name'))]",
"location": "[parameters('location')]",
"dependsOn": [
"[resourceId('Microsoft.EventGrid/topics', parameters('topic_name'))]",
"[resourceId('Microsoft.OperationalInsights/workspaces', parameters('log_analytics_workspace_name'))]"
],
"properties": {
"workspaceId": "[resourceId('Microsoft.OperationalInsights/workspaces', parameters('log_analytics_workspace_name'))]",
"metrics": [
{
"category": "AllMetrics",
"enabled": true
}
],
"logs": [
{
"category": "DeliveryFailures",
"enabled": true
},
{
"category": "PublishFailures",
"enabled": true
}
]
}
}
]
}
감사 추적에 대한 진단 로그 사용
Event Grid는 데이터 평면 작업에 대한 감사 추적을 게시할 수 있습니다. 이 기능을 사용하려면 범주 그룹 섹션에서 audit을 선택하거나 범주 섹션에서 DataPlaneRequests를 선택합니다.
감사 추적을 사용하여 데이터 액세스가 승인된 용도로만 허용되는지 확인할 수 있습니다. 리소스 이름, 작업 유형, 네트워크 액세스, 수준, 지역 등과 같은 보안 제어에 관한 정보를 수집합니다. 진단 설정을 사용하도록 설정하는 방법에 관한 자세한 내용은 Event Grid 토픽 및 이벤트 도메인의 진단 로그를 참조하세요.
Important
DataPlaneRequests
스키마에 관한 자세한 내용은 진단 로그를 참조하세요.
다음 단계
토픽 또는 도메인의 진단 로그에 대한 로그 스키마 및 기타 개념 정보는 진단 로그를 참조하세요.