다음을 통해 공유


AzureDiagnostics

Azure Diagnostics 모드를 사용하는 Azure 서비스의 리소스 로그를 저장합니다. 리소스 로그는 Azure 리소스의 내부 작업을 설명합니다.

각 Azure 서비스에 대한 리소스 로그에는 고유한 열 세트가 있습니다. AzureDiagnostics 테이블에는 Azure 서비스에서 사용하는 가장 일반적인 열이 포함되어 있습니다. 리소스 로그에 AzureDiagnostics 테이블에 없는 열이 포함된 경우 해당 열은 데이터가 처음 수집될 때 추가됩니다. 최대 열 수 500개에 도달하면 추가 열에 대한 데이터가 동적 열에 추가됩니다.

리소스별 모드를 사용하는 Azure 서비스는 해당 서비스와 관련된 테이블에 데이터를 저장하고 AzureDiagnostics 테이블을 사용하지 않습니다. 차이점에 대한 자세한 내용은 Azure 리소스 로그를 참조하세요. Azure Diagnostics를 사용하는 서비스에 대해 Azure Diagnostics 모드를 사용하는 리소스를 참조하세요.

참고

AzureDiagnostics 테이블은 Azure 리소스가 Azure Diagnostics 모드에서 로그 전송을 처음 시작할 때 Azure Monitor 파이프라인에서 단독으로 만든 사용자 지정 로그 테이블입니다. 다른 테이블과 달리 ARM 템플릿 또는 테이블 API를 통해 AzureDiagnostics 테이블을 만들 수 없습니다. 따라서 테이블을 만들기 전에 테이블의 기본 보존 값을 수정할 수 없습니다.

AdditionalFields 열

다른 테이블 과 달리 AzureDiagnostics 는 이 테이블에 데이터를 보낼 수 있는 다양한 Azure Resources로 인해 Log Analytics 작업 영역의 모든 테이블에 적용되는 500열 제한을 초과할 가능성이 훨씬 더 높습니다. 이 500열 제한을 초과하는 활성 열 수로 인해 데이터가 손실되지 않도록 하기 위해 AzureDiagnostics 열 만들기는 다른 테이블과 다른 방식으로 처리됩니다.

모든 작업 영역의 AzureDiagnostics 테이블에는 최소 200개의 열이 포함되어 있습니다. 2021년 1월 19일 이전에 만든 작업 영역의 경우 테이블에는 이 날짜 이전에 이미 배치된 열도 포함됩니다. 데이터가 아직 배치되지 않은 열로 전송되는 경우:

  • 현재 작업 영역의 AzureDiagnostics에 있는 총 열 수가 500을 초과하지 않으면 다른 테이블과 마찬가지로 새 열이 만들어집니다.
  • 총 열 수가 500을 초과하면 초과 데이터가 AdditionalFields라는 동적 속성 모음 열에 속성으로 추가됩니다.

예시

이 동작을 설명하기 위해 작업 영역의 AzureDiagnostics 테이블이 (배포 날짜) 현재 다음과 같다고 상상해 보세요.

열 1 열 2 열 3 ... 열 498
abc def 123 ... 456
... ... ... ... ...

그런 다음 AzureDiagnostics데이터를 보내는 리소스는 NewInfo1이라고 하는 데이터에 새 차원을 추가합니다. 테이블에는 여전히 500개 미만의 열이 있으므로 이 새 차원에 대한 데이터가 포함된 이벤트가 처음으로 발생하면 테이블에 새 열이 추가됩니다.

열 1 열 2 열 3 ... 열 498 NewInfo1_s
abc def 123 ... 456 xyz
... ... ... ... ... ...

간단한 쿼리에서 이 새 데이터를 반환할 수 있습니다.

AzureDiagnostics | where NewInfo1_s == "xyz"

나중에 다른 리소스는 NewInfo2 및 NewInfo3이라는 새 차원을 추가하는 AzureDiagnostics로 데이터를 보냅니다. 테이블이 이 작업 영역에서 500개 열에 도달했기 때문에 새 데이터는 AdditionalFields 열로 이동합니다.

열 1 열 2 열 3 ... 열 498 NewInfo1_s 추가 필드
abc def 123 ... 456 xyz {"NewInfo2":"789","NewInfo3":"qwerty"}
... ... ... ... ... ... ...

이 데이터는 계속 쿼리할 수 있지만 KQL의 동적 속성 연산자를 사용하여 속성 모음에서 추출해야 합니다.

AzureDiagnostics
| where AdditionalFields.NewInfo2 == "789" and AdditionalFields.NewInfo3 == "qwerty"

AdditionalFields 열 사용에 대한 팁

쿼리의 첫 번째 절을 따라야 하므로 항상 시간별로 필터링하는 것과 같은 쿼리 모범 사례에는 AdditionalFields를 사용할 때 고려해야 할 몇 가지 다른 권장 사항이 있습니다.

  • 추가 작업을 수행하기 전에 데이터를 typecast해야 합니다. 예를 들어 Perf1Sec_i 열과 Perf2Sec이라는 추가 필드에 속성이 있고 두 값을 모두 추가하여 총 성능 계산을 하려는 경우 다음AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....을 사용할 수 있습니다.
  • 성능을 크게 향상시키기 위해 복잡한 논리를 작성하기 전에 where 절을 사용하여 데이터 볼륨을 가능한 한 작게 줄입니다. TimeGenerated 는 항상 가능한 가장 작은 창으로 줄여야 하는 하나의 열입니다. AzureDiagnostics경우 ResourceType 열을 사용하여 쿼리되는 리소스 종류에 대해 항상 추가 필터를 쿼리 맨 위에 포함해야 합니다.
  • 대량의 데이터를 쿼리할 때 구문 분석보다는 AdditionalFields 전체에서 필터를 수행하는 것이 더 효율적일 수 있습니다. 예를 들어, 대용량 데이터의 경우 AzureDiagnostics | where AdditionalFields has "Perf2Sec"AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec))보다 더 효율적입니다.

Azure Diagnostics 모드를 사용하는 리소스

다음 서비스는 리소스 로그에 Azure 진단 모드를 사용하고 Azure Diagnostics 테이블로 데이터를 보냅니다. 이 구성에 대한 자세한 내용은 Azure 리소스 로그를 참조하세요.

참고

다른 모든 리소스는 리소스별 테이블로 데이터를 보냅니다.

서비스 이름 리소스 유형
MicrosoftSqlAzureTelemetryv3 microsoft.sql/servers/databases
MicrosoftAzureCosmosDB microsoft.documentdb/databaseaccounts
AzureFirewall (Azure 방화벽) microsoft.network/azurefirewalls
AzureApplicationGatewayService microsoft.network/applicationgateways
AKSCustomerData microsoft.containerservice/managedclusters
AzureFrontdoor microsoft.cdn/profiles
LNMAgentService microsoft.network/네트워크보안그룹
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/flexibleservers
servicebus microsoft.eventhub/namespaces
AzureFrontdoor microsoft.network/frontdoors
AzureKeyVault microsoft.keyvault/vaults
AzureDataLake microsoft.datalakestore/accounts
ApiManagement microsoft.apimanagement/service
MicrosoftSqlAzureTelemetryv3 microsoft.sql/managedinstances
ASAzureRP microsoft.analysisservices/servers
MicrosoftOrcasBreadthServers microsoft.dbformysql/flexibleservers
서비스버스 microsoft.servicebus/namespaces
AzureIotHub microsoft.devices/iothubs
MicrosoftSqlAzureTelemetryv2 microsoft.dbforpostgresql/servers
MicrosoftSqlAzureTelemetryv2 microsoft.dbformariadb/servers
마이크로소프트Automation microsoft.automation/automationaccounts
트래픽 매니저 microsoft.network/trafficmanagerprofiles
MicrosoftOrcasBreadthServers microsoft.dbforpostgresql/servergroupsv2
AzureSearch microsoft.search/searchservices
AzureHybrid microsoft.network/virtualnetworkgateways
MicrosoftSqlAzureTelemetryv3 Microsoft SQL/관리되는 인스턴스/데이터베이스
PBIDedicatedRP microsoft.powerbidedicated/capacities
AzureHybrid microsoft.network/vpngateways
MicrosoftDatafactory microsoft.datafactory/factories (마이크로소프트 데이터 팩토리/공장)
MicrosoftCognitiveServices microsoft.cognitiveservices/accounts
AzureRecoveryServices microsoft.recoveryservices/vaults
AzureBatch microsoft.batch/batchaccounts
AzureHybrid microsoft.network/p2svpngateways
MicrosoftSqlAzureTelemetryv2 (마이크로소프트 SQL 애저 텔레메트리 버전 2) microsoft.dbformysql/servers
AzureKeyVault microsoft.keyvault/managedhsms
NetMon microsoft.network/publicipaddresses
AzureDataLake microsoft.datalakeanalytics/accounts
MicrosoftStreamanalytics microsoft.streamanalytics/streamingjobs
servicebus microsoft.relay/namespaces
AzureIotDps microsoft.devices/provisioningservices
MicrosoftAzureCosmosDB microsoft.documentdb/cassandraclusters
MicrosoftAzureCosmosDB microsoft.documentdb/mongoclusters
AKSCustomerData microsoft.containerservice/fleets
PBIDedicatedRP microsoft.powerbi/tenants/workspaces
AzureFrontdoor microsoft.cdn/cdnwebapplicationfirewallpolicies
AzureHybrid microsoft.network/expressroutecircuits
MicrosoftAzureCosmosDB microsoft.dbforpostgresql/flexibleservers
NetMon microsoft.network/publicipprefixes
AzureCdn microsoft.cdn/profiles/endpoints

Azure 진단 모드 또는 리소스별 모드

다음 서비스는 진단 설정 구성에 따라 리소스 로그에 Azure 진단 모드 또는 리소스별 모드를 사용합니다. 리소스별 모드를 사용하는 경우 이러한 리소스는 AzureDiagnostics 테이블에 데이터를 보내지 않습니다. 이 구성에 대한 자세한 내용은 Azure 리소스 로그를 참조하세요.

서비스 이름 자원 유형
API Management Services Microsoft.ApiManagement
Azure Cosmos DB Microsoft.DocumentDB/databaseAccounts
데이터 팩토리 (V2) Microsoft.DataFactory
Recovery Services 자격 증명 모음(백업) Microsoft.RecoveryServices/vaults
방화벽 Microsoft.Network/azureFirewalls

AzureDiagnostics 테이블 열

경고

추가 필드 섹션 아래의 열 이름은 리소스 로그에 따라 달라집니다. 즉, 이러한 열은 리소스에 진단 설정이 만들어지고 로그 내보내기를 시작한 후에만 사용할 수 있습니다. 그때까지 오류가 표시될 수 있습니다.

유형 설명
action_id_s String
action_name_s String
action_s String
ActivityId_g Guid
추가 필드
AdHocOrScheduledJob_s String
application_name_s String
audit_schema_version_d Double
avg_cpu_percent_s String
avg_mean_time_s String
backendHostname_s String
Caller_s String
callerId_s String
발신자 IP 주소 String
calls_s String
범주 String
client_ip_s String
clientInfo_s String
clientIP_s String
clientIp_s String
clientIpAddress_s String
clientPort_d Double
code_s String
collectionName_s String
conditions_destinationIP_s String
conditions_destinationPortRange_s String
conditions_None_s 문자열
조건_프로토콜_들 문자열
conditions_sourceIP_s String
conditions_sourcePortRange_s String
CorrelationId String
count_executions_d Double
cpu_time_d Double
database_name_s 문자열
데이터베이스_주체_이름_s 문자열
DatabaseName_s String
db_id_s String
direction_s String
dop_d Double
duration_d Double
지속시간_밀리초_d Double
DurationMs BigInt
ElasticPoolName_s String
endTime_t 날짜 및 시간
Environment_s String
error_code_s 문자열
error_message_s 문자열
errorLevel_s String
event_class_s String
event_s 문자열
event_subclass_s 문자열
event_time_t 날짜시간
EventName_s String
execution_type_d Double
executionInfo_endTime_t 날짜시간
executionInfo_exitCode_d Double
executionInfo_startTime_t 날짜시간
host_s String
httpMethod_s String
httpStatus_d Double
httpStatusCode_d Double
httpStatusCode_s String
httpVersion_s String
id_s 문자열
identity_claim_appid_g Guid
identity_claim_ipaddr_s String
instanceId_s String
interval_end_time_d Double
interval_start_time_d Double
ip_s String
is_column_permission_s String
isAccessPolicyMatch_b Bool
JobDurationInSecs_s String
JobFailureCode_s String
JobId_g Guid
jobId_s String
JobOperation_s String
JobOperationSubType_s String
JobStartDateTime_s String
JobStatus_s String
JobUniqueId_g Guid
수준 String
log_bytes_used_d Double
logical_io_reads_d Double
logical_io_writes_d Double
LogicalServerName_s String
macAddress_s String
matchedConnections_d Double
max_cpu_time_d Double
max_dop_d Double
최대_기간_d Double
max_log_bytes_used_d Double
max_logical_io_reads_d Double
max_logical_io_writes_d Double
max_num_physical_io_reads_d Double
max_physical_io_reads_d Double
max_query_max_used_memory_d Double
max_rowcount_d Double
max_time_s String
mean_time_s String
메시지 String
최소 시간 (초) 문자열
msg_s String
num_physical_io_reads_d Double
object_id_d Double
object_name_s String
OperationName String
작업버전 String
partitionKey_s String
physical_io_reads_d Double
plan_id_d Double
policy_s String
policyMode_s String
primaryIPv4Address_s String
priority_d Double
properties_enabledForDeployment_b Bool
properties_enabledForDiskEncryption_b Bool
properties_enabledForTemplateDeployment_b Bool
properties_s String
properties_sku_Family_s String
properties_sku_Name_s String
properties_tenantId_g Guid
query_hash_s String
query_id_d Double
query_max_used_memory_d Double
query_plan_hash_s String
query_time_d Double
querytext_s String
receivedBytes_d Double
Region_s String
requestCharge_s String
requestQuery_s String
requestResourceId_s String
requestResourceType_s String
requestUri_s String
reserved_storage_mb_s String
리소스 String
resource_actionName_s String
resource_location_s String
resource_originRunId_s String
resource_resourceGroupName_s String
resource_runId_s String
resource_subscriptionId_g Guid
resource_triggerName_s String
resource_workflowId_g Guid
resource_workflowName_s 문자열
ResourceGroup 문자열
_ResourceId 문자열 레코드가 연결된 리소스의 고유 식별자입니다.
리소스 제공자 String
자원 제공자 String
자원 유형 String
자원 유형 문자열
response_rows_d Double
resultCode_s String
결과 설명 String
결과 설명 String
resultDescription_ChildJobs_s String
resultDescription_ErrorJobs_s String
resultMessage_s String
ResultSignature String
결과 유형 String
결과 유형 String
근본 원인 분석_s 문자열
routingRuleName_s String
rowcount_d Double
ruleName_s String
RunbookName_s String
RunOn_s String
schema_name_s String
sentBytes_d Double
sequence_group_id_g Guid
sequence_number_d Double
server_principal_sid_s String
session_id_d Double