Share via


Query's uitvoeren op uw back-ups met behulp van Azure Resource Graph (ARG)

U kunt gegevens over back-ups voor uw Azure-resources zonder extra kosten opvragen met behulp van Azure Resource Graph (ARG). ARG is een Azure-service die is ontworpen om Azure Resource Management uit te breiden. Het is bedoeld om efficiƫnt resourceverkenning te bieden met de mogelijkheid om query's op schaal uit te voeren voor een bepaalde set abonnementen. Hier volgen de belangrijkste voordelen van het gebruik van ARG om de metagegevens van uw back-up op te vragen:

  • Mogelijkheden om query's uit te voeren op resources op schaal met complexe filters, groeperingen en sorteren op resource-eigenschappen.
  • De mogelijkheid om realtime informatie over uw back-ups te verkrijgen, inclusief actieve back-uptaken.
  • Mogelijkheid om back-upgerelateerde gegevens samen te voegen met nuttige informatie over gerelateerde Azure-resources, zoals Azure Virtual Machines- en opslagaccounts.

Aan de slag

Voer de volgende stappen uit om aan de slag te gaan met het uitvoeren van query's op uw back-ups met behulp van ARG:

  1. Zoek Resource Graph Explorer in de Azure Portal. Selecteer dezelfde optie om te worden omgeleid naar de ARG-queryeditor.

    Zoeken in Azure-resourcegroep

    In het linkerdeelvenster worden alle tabellen (en de bijbehorende schema's) weergegeven die beschikbaar zijn voor query's.

    • De tabel RecoveryServicesResources bevat de meeste back-upgerelateerde records, zoals taakdetails en details van back-upexemplaar. enzovoort.
    • De tabel Resources bevat informatie over alle Azure-resources op het hoogste niveau, zoals Recovery Services-kluizen, Azure Virtual Machines, opslagaccounts, enzovoort.

    Beschikbare tabellen en bijbehorende schema's voor query's

  2. Als u de gegevens in een van deze tabellen wilt verkennen, schrijft u Kusto-query's in de query-editor en klikt u op Query uitvoeren.

    U kunt de uitvoer van deze query's downloaden als CSV van de Resource Graph Explorer. U kunt deze query's ook gebruiken in aangepaste automatisering met behulp van automatiseringsclients die worden ondersteund door ARG, zoals PowerShell, CLI of SDK. U kunt ook aangepaste werkmappen maken in de Azure Portal met ARG als gegevensbron.

Notitie

  • Back-up-/hersteltaken die maximaal 14 dagen oud zijn, zijn beschikbaar in ARG voor query's. Als u een query wilt uitvoeren op historische records, raden we u aan Azure Monitor-logboeken te gebruiken.
  • Met ARG kunt u een query uitvoeren op de resources waarvoor u de juiste RBAC-rechten hebt.

Voorbeeldquery's

Hier volgen enkele arg-voorbeeldquery's op uw back-upgegevens die u kunt gebruiken in aangepaste dashboards en automatiseringen.

Alle Azure-VM's weergeven die zijn geconfigureerd voor back-up

RecoveryServicesResources 
| where type in~ ('Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems')
| extend vaultName = case(type =~ 'microsoft.dataprotection/backupVaults/backupInstances',split(split(id, '/Microsoft.DataProtection/backupVaults/')[1],'/')[0],type =~ 'Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems',split(split(id, '/Microsoft.RecoveryServices/vaults/')[1],'/')[0],'--')
| extend dataSourceType = case(type=~'Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems',properties.backupManagementType,type =~ 'microsoft.dataprotection/backupVaults/backupInstances',properties.dataSourceSetInfo.datasourceType,'--')
| extend friendlyName = properties.friendlyName
| extend dsResourceGroup = split(split(properties.dataSourceInfo.resourceID, '/resourceGroups/')[1],'/')[0]
| extend dsSubscription = split(split(properties.dataSourceInfo.resourceID, '/subscriptions/')[1],'/')[0]
| extend lastRestorePoint = properties.lastRecoveryPoint
| extend primaryLocation = properties.dataSourceInfo.resourceLocation
| extend policyName = case(type =~ 'Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems',properties.policyName, type =~ 'microsoft.dataprotection/backupVaults/backupInstances', properties.policyInfo.name, '--')
| extend protectionState = properties.currentProtectionState
| where protectionState in~ ('ConfiguringProtection','ProtectionConfigured','ConfiguringProtectionFailed','ProtectionStopped','SoftDeleted','ProtectionError')

Alle back-uptaken op Azure Databases for PostgreSQL-servers in de afgelopen week weergeven

RecoveryServicesResources 
| where type in~ ('Microsoft.DataProtection/backupVaults/backupJobs')
| extend vaultName = case(type =~ 'microsoft.dataprotection/backupVaults/backupJobs',properties.vaultName,type =~ 'Microsoft.RecoveryServices/vaults/backupJobs',split(split(id, '/Microsoft.RecoveryServices/vaults/')[1],'/')[0],'--')
| extend friendlyName = case(type =~ 'microsoft.dataprotection/backupVaults/backupJobs',strcat(properties.dataSourceSetName , '/', properties.dataSourceName),type =~ 'Microsoft.RecoveryServices/vaults/backupJobs', properties.entityFriendlyName, '--')
| extend dataSourceType = case(type =~ 'Microsoft.RecoveryServices/vaults/backupJobs',properties.backupManagementType,type =~ 'microsoft.dataprotection/backupVaults/backupJobs',properties.dataSourceType,'--')
| extend backupInstanceName = properties.backupInstanceId
| extend dsResourceGroup = split(split(properties.dataSourceId, '/resourceGroups/')[1],'/')[0]| extend dsSubscription = split(split(properties.dataSourceId, '/subscriptions/')[1],'/')[0]
| extend status = properties.status
| extend dataSourceId = properties.dataSourceId
| extend primaryLocation = properties.dataSourceLocation
| extend jobStatus = case (properties.status == 'Completed' or properties.status == 'CompletedWithWarnings','Succeeded',properties.status == 'Failed','Failed',properties.status == 'InProgress', 'Started', properties.status), operation = case(type =~ 'microsoft.dataprotection/backupVaults/backupJobs' and tolower(properties.operationCategory) =~ 'backup' and properties.isUserTriggered == 'true',strcat('adhoc',properties.operationCategory),type =~ 'microsoft.dataprotection/backupVaults/backupJobs', tolower(properties.operationCategory), type =~ 'Microsoft.RecoveryServices/vaults/backupJobs' and tolower(properties.operation) =~ 'backup' and properties.isUserTriggered == 'true',strcat('adhoc',properties.operation),type =~ 'Microsoft.RecoveryServices/vaults/backupJobs',tolower(properties.operation), '--'),startTime = todatetime(properties.startTime),endTime = properties.endTime, duration = properties.duration
| project id, name, friendlyName, resourceGroup, vaultName, dataSourceType, operation, jobStatus, startTime, duration, backupInstanceName, dsResourceGroup, dsSubscription, status, primaryLocation, dataSourceId
| where (startTime >= ago(7d))

Alle Azure-VM's weergeven die niet zijn geconfigureerd voor back-up

Resources
| where type in~ ('microsoft.compute/virtualmachines','microsoft.classiccompute/virtualmachines') 
| extend resourceId=tolower(id) 
| join kind = leftouter ( RecoveryServicesResources
| where type == "microsoft.recoveryservices/vaults/backupfabrics/protectioncontainers/protecteditems"
| where properties.backupManagementType == "AzureIaasVM"
| project resourceId = tolower(tostring(properties.sourceResourceId)), backupItemid = id, isBackedUp = isnotempty(id) ) on resourceId 
| extend isProtected = isnotempty(backupItemid)
| where (isProtected == (0))
| project id,name,resourceGroup,location,tags

Alle back-upbeleidsregels weergeven die worden gebruikt voor Azure-VM's

RecoveryServicesResources
| where type == 'microsoft.recoveryservices/vaults/backuppolicies'
| extend vaultName = case(type == 'microsoft.recoveryservices/vaults/backuppolicies', split(split(id, 'microsoft.recoveryservices/vaults/')[1],'/')[0],type == 'microsoft.recoveryservices/vaults/backuppolicies', split(split(id, 'microsoft.recoveryservices/vaults/')[1],'/')[0],'--')
| extend datasourceType = case(type == 'microsoft.recoveryservices/vaults/backuppolicies', properties.backupManagementType,type == 'microsoft.dataprotection/backupVaults/backupPolicies',properties.datasourceTypes[0],'--')
| project id,name,vaultName,resourceGroup,properties,datasourceType
| where datasourceType == 'AzureIaasVM'

Alle VM's weergeven die zijn gekoppeld aan een bepaald back-upbeleid

RecoveryServicesResources
| where type == "microsoft.recoveryservices/vaults/backupfabrics/protectioncontainers/protecteditems"
| project propertiesJSON = parse_json(properties)
| where propertiesJSON.backupManagementType == "AzureIaasVM"
| project VMID=propertiesJSON.sourceResourceId, PolicyID=propertiesJSON.policyId
| where PolicyID == "<ARM ID of the given policy>"

Alle back-upbeleidsregels weergeven die worden gebruikt voor Azure Databases for PostgreSQL-servers

RecoveryServicesResources 
| where type in~ ('Microsoft.DataProtection/BackupVaults/backupPolicies')
| extend vaultName = case(type =~ 'microsoft.dataprotection/backupVaults/backupPolicies', split(split(id, '/Microsoft.DataProtection/backupVaults/')[1],'/')[0],type =~ 'microsoft.recoveryservices/vaults/backupPolicies', split(split(id, '/Microsoft.RecoveryServices/vaults/')[1],'/')[0],'--')
| extend datasourceType = case(type =~ 'Microsoft.RecoveryServices/vaults/backupPolicies', properties.backupManagementType,type =~ 'microsoft.dataprotection/backupVaults/backupPolicies',properties.datasourceTypes[0],'--')
| project id,name,vaultName,resourceGroup,properties,datasourceType
| where (datasourceType in~ ('Microsoft.DBforPostgreSQL/servers/databases'))

Volgende stappen

Meer informatie over Azure Resource Graph