Delen via


AzureDiagnostics

Slaat resourcelogboeken op voor Azure-services die gebruikmaken van de diagnostische modus van Azure. Resourcelogboeken beschrijven de interne werking van Azure-resources.

Het resourcelogboek voor elke Azure-service heeft een unieke set kolommen. De tabel AzureDiagnostics bevat de meest voorkomende kolommen die worden gebruikt door Azure-services. Als een resourcelogboek een kolom bevat die nog niet bestaat in de tabel AzureDiagnostics, wordt die kolom toegevoegd wanneer er voor de eerste keer gegevens worden verzameld. Als het maximumaantal van 500 kolommen is bereikt, worden gegevens voor eventuele extra kolommen toegevoegd aan een dynamische kolom.

Azure-services die gebruikmaken van de resourcespecifieke modus slaan gegevens op in een tabel die specifiek is voor die service en die de tabel AzureDiagnostics niet gebruiken. Zie de onderstaande resourcetypen voor de services die elke methode gebruiken. Zie Azure-resourcelogboeken voor meer informatie over de verschillen.

Kolom AdditionalFields

In tegenstelling tot andere tabellen is AzureDiagnostics veel gevoeliger voor het overschrijden van de limiet van 500 kolommen voor elke tabel in een Log Analytics-werkruimte vanwege het brede assortiment Azure-resources dat gegevens naar deze tabel kan verzenden. Om ervoor te zorgen dat er geen gegevens verloren gaan als gevolg van het aantal actieve kolommen dat deze limiet van 500 kolommen overschrijdt, wordt het maken van azureDiagnostics-kolommen op een andere manier verwerkt voor andere tabellen.

De tabel AzureDiagnostics in elke werkruimte bevat minimaal 200 kolommen. Voor werkruimten die vóór 19 januari 2021 zijn gemaakt, bevat de tabel ook kolommen die al vóór deze datum aanwezig waren. Wanneer gegevens naar een kolom worden verzonden die nog niet aanwezig zijn:

  • Als het totale aantal kolommen in AzureDiagnostics in de huidige werkruimte niet groter is dan 500, wordt er een nieuwe kolom gemaakt, net als bij een andere tabel.
  • Als het totale aantal kolommen zich op of boven de 500 bevindt, worden de overtollige gegevens toegevoegd aan een kolom met dynamische eigenschappenverzamelingen met de naam AdditionalFields als eigenschap.

Opmerking

Om dit gedrag te illustreren, stelt u zich voor dat de tabel AzureDiagnostics op basis van (implementatiedatum) in onze workpsace er als volgt uitziet:

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

Een resource die gegevens naar AzureDiagnostics verzendt, voegt vervolgens een nieuwe dimensie toe aan de gegevens die ze NewInfo1 noemen. Omdat de tabel nog steeds minder dan 500 kolommen bevat, wordt voor het eerst een gebeurtenis met gegevens voor deze nieuwe dimensie toegevoegd aan de tabel:

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

U kunt deze nieuwe gegevens retourneren in een eenvoudige query:

AzureDiagnostics | where NewInfo1_s == "xyz"

Op een latere datum verzendt een andere resource gegevens naar AzureDiagnostics waarmee nieuwe dimensies met de naam NewInfo2 en NewInfo3 worden toegevoegd. Omdat de tabel 500 kolommen in deze werkruimte heeft bereikt, gaan de nieuwe gegevens naar de kolom AdditionalFields :

Kolom 1 Kolom 2 Kolom 3 ... Kolom 498 NewInfo1_s AdditionalFields
abc def 123 ... 456 xyz {"NewInfo2":"789","NewInfo3":"qwerty"}
... ... ... ... ... ... ...

U kunt nog steeds query's uitvoeren op deze gegevens, maar u moet deze extraheren uit de eigenschappentas met behulp van een van de dynamische eigenschapsoperators in KQL:

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

Tips voor het gebruik van de kolom AdditionalFields

Hoewel algemene best practices voor query's, zoals altijd filteren op tijd als de eerste component in de query, moeten worden gevolgd, zijn er enkele andere aanbevelingen die u moet overwegen bij het werken met AdditionalFields:

  • U moet gegevens typen voordat u er verdere bewerkingen op uitvoert. Als er bijvoorbeeld een kolom bestaat met de naam Perf1Sec_i en een eigenschap in AdditionalFields met de naam Perf2Sec en u het totaal perf wilt berekenen door beide waarden toe te voegen, gebruikt u bijvoorbeeld: AzureDiagnostics | extend TotalPerfSec = Perf1Sec_i + toint(AdditionalFields.Perf2Sec) | ....
  • Gebruik where-componenten om het gegevensvolume zo klein mogelijk te verminderen voordat u complexe logica schrijft om de prestaties aanzienlijk te verbeteren. TimeGenerated is één kolom die altijd moet worden teruggebracht tot het kleinste mogelijke venster. In het geval van AzureDiagnostics moet er altijd een extra filter worden opgenomen boven aan de query rond de resourcetypen waarop een query wordt uitgevoerd met behulp van de kolom ResourceType .
  • Bij het uitvoeren van query's op zeer grote hoeveelheden gegevens is het soms efficiënter om een filter uit te voeren op AdditionalFields als geheel in plaats van deze te parseren. Voor grote hoeveelheden gegevens AzureDiagnostics | where AdditionalFields has "Perf2Sec" is bijvoorbeeld vaak efficiënter dan AzureDiagnostics | where isnotnull(toint(AdditionalFields.Perf2Sec)).

Azure Diagnostics-modus

De volgende services gebruiken de diagnostische modus van Azure voor hun resourcelogboeken en verzenden gegevens naar de Azure Diagnostics-tabel.

  • Analysis Services
  • Toepassingsgateways
  • Automation-accounts
  • Azure Database for MariaDB-servers
  • Azure Database for MySQL-servers
  • Azure Database for PostgreSQL-servers
  • Azure Database for PostgreSQL-servers v2
  • Batch-accounts
  • CDN-profielen
  • Cognitive Services
  • Data Lake Analytics
  • DataLake Storage Gen1
  • Device Provisioning Services
  • Digital Twins
  • Event Grid-onderwerpen
  • Event Hubs
  • ExpressRoute-circuits
  • Front Door Service
  • Integratieaccounts
  • Key Vault
  • Kubernetes-services
  • Load balancers
  • Logic Apps
  • Media Services
  • Netwerkinterfaces
  • Netwerkbeveiligingsgroepen
  • P2S VPN-gateways
  • Power BI Embedded
  • Openbare IP-adressen
  • Recovery Services-kluizen (Site Recovery)
  • Services zoeken
  • Service Bus
  • SQL-databases
  • Met SQL beheerde exemplaren
  • SQL-servers
  • Stream Analytics-taken
  • Traffic Manager-profielen
  • Virtuele netwerken
  • Virtuele netwerkgateways
  • VPN-gateways

Azure Diagnostics-modus of resourcespecifieke modus

De volgende services gebruiken de diagnostische modus van Azure of de resourcespecifieke modus voor hun resourcelogboeken, afhankelijk van hun configuratie. Wanneer ze de resourcespecifieke modus gebruiken, verzenden ze geen gegevens naar de azureDiagnostics-tabel. Zie Azure-resourcelogboeken voor meer informatie over deze configuratie.

  • API Management Services
  • Azure Cosmos DB
  • Gegevensfactory's (V2)
  • IoT Hub
  • Recovery Services-kluizen (back-up)
  • Firewalls

Categorieën

  • Azure-bronnen
  • Beveiliging
  • Netwerk

Oplossingen

  • LogManagement

Resourcetypen

  • Toepassingsgateways
  • CDN-profielen
  • Azure Cosmos DB
  • Event Grid-onderwerpen
  • Event Hubs
  • Firewalls
  • Sleutelkluizen
  • Kubernetes-services
  • Recovery Services-kluizen
  • Service Bus
  • Azure Database for MySQL Flexibele servers
  • Flexibele Azure Database for PostgreSQL-servers
  • Media Services
  • Analysis Services
  • Batch-accounts
  • Cognitive Services
  • Event Grid-partnernaamruimten
  • Event Grid-partneronderwerpen
  • Event Grid-systeemonderwerpen
  • Kubernetes met Azure Arc
  • Ingerichte Azure Arc-clusters
  • IoT Hub
  • Logic Apps
  • API Management-services
  • Automation-account
  • Data Factory
  • Data Lake Storage Gen1
  • Data Lake Analytics
  • Power BI Embedded
  • Beheerde SQL-exemplaren
  • SQL-servers
  • SQL Databases
  • Azure Database for MySQL-servers
  • Azure Database for PostgreSQL-servers
  • Azure Database for PostgreSQL-servers V2
  • Azure Database for MariaDB-servers
  • Device Provisioning Services
  • ExpressRoute-circuits
  • Front Door Service
  • Netwerkinterfaces
  • Netwerkbeveiligingsgroepen
  • Openbare IP-adressen
  • Traffic Manager-profielen
  • Virtuele netwerkgateways
  • Gateways voor virtueel particulier netwerk
  • Virtuele netwerken
  • Search-services
  • Stream Analytics-taken

Kolommen

Column Type Description
action_id_s String
action_name_s String
action_s String
ActivityId_g Guid
AdditionalFields
AdHocOrScheduledJob_s String
application_name_s String
audit_schema_version_d Dubbel
avg_cpu_percent_s String
avg_mean_time_s String
backendHostname_s String
Caller_s String
callerId_s String
CallerIPAddress String
calls_s String
Categorie String
client_ip_s String
clientInfo_s String
clientIP_s String
clientIp_s String
clientIpAddress_s String
clientPort_d Dubbel
code_s String
collectionName_s String
conditions_destinationIP_s String
conditions_destinationPortRange_s String
conditions_None_s String
conditions_protocols_s String
conditions_sourceIP_s String
conditions_sourcePortRange_s String
CorrelationId String
count_executions_d Dubbel
cpu_time_d Dubbel
database_name_s String
database_principal_name_s String
DatabaseName_s String
db_id_s String
direction_s String
dop_d Dubbel
duration_d Dubbel
duration_milliseconds_d Dubbel
DurationMs BigInt
ElasticPoolName_s String
endTime_t Datum en tijd
Environment_s String
error_code_s String
error_message_s String
errorLevel_s String
event_class_s String
event_s String
event_subclass_s String
event_time_t Datum en tijd
EventName_s String
execution_type_d Dubbel
executionInfo_endTime_t Datum en tijd
executionInfo_exitCode_d Dubbel
executionInfo_startTime_t Datum en tijd
host_s String
httpMethod_s String
httpStatus_d Dubbel
httpStatusCode_d Dubbel
httpStatusCode_s String
httpVersion_s String
id_s String
identity_claim_appid_g Guid
identity_claim_ipaddr_s String
instanceId_s String
interval_end_time_d Dubbel
interval_start_time_d Dubbel
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
Niveau String
log_bytes_used_d Dubbel
logical_io_reads_d Dubbel
logical_io_writes_d Dubbel
LogicalServerName_s String
macAddress_s String
matchedConnections_d Dubbel
max_cpu_time_d Dubbel
max_dop_d Dubbel
max_duration_d Dubbel
max_log_bytes_used_d Dubbel
max_logical_io_reads_d Dubbel
max_logical_io_writes_d Dubbel
max_num_physical_io_reads_d Dubbel
max_physical_io_reads_d Dubbel
max_query_max_used_memory_d Dubbel
max_rowcount_d Dubbel
max_time_s String
mean_time_s String
Bericht String
min_time_s String
msg_s String
num_physical_io_reads_d Dubbel
object_id_d Dubbel
object_name_s String
OperationName String
OperationVersion String
partitionKey_s String
physical_io_reads_d Dubbel
plan_id_d Dubbel
policy_s String
policyMode_s String
primaryIPv4Address_s String
priority_d Dubbel
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 Dubbel
query_max_used_memory_d Dubbel
query_plan_hash_s String
query_time_d Dubbel
querytext_s String
receivedBytes_d Dubbel
Region_s String
requestCharge_s String
requestQuery_s String
requestResourceId_s String
requestResourceType_s String
requestUri_s String
reserved_storage_mb_s String
Bron 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 String
ResourceGroup String
_ResourceId String Een unieke id voor de resource waaraan de record is gekoppeld
ResourceProvider String
ResourceProvider String
ResourceType String
ResourceType String
response_rows_d Dubbel
resultCode_s String
ResultDescription String
ResultDescription String
resultDescription_ChildJobs_s String
resultDescription_ErrorJobs_s String
resultMessage_s String
ResultSignature String
ResultType String
ResultType String
rootCauseAnalysis_s String
routingRuleName_s String
rowcount_d Dubbel
ruleName_s String
RunbookName_s String
RunOn_s String
schema_name_s String
sentBytes_d Dubbel
sequence_group_id_g Guid
sequence_number_d Dubbel
server_principal_sid_s String
session_id_d Dubbel