Dela via


Fråga dina säkerhetskopior med Hjälp av Azure Resource Graph (ARG)

Du kan fråga efter information om säkerhetskopiering för dina Azure-resurser utan extra kostnad med hjälp av Azure Resource Graph (ARG). ARG är en Azure-tjänst som är utformad för att utöka Azure Resource Management. Det syftar till att ge effektiv resursutforskning med möjlighet att fråga i stor skala över en viss uppsättning prenumerationer. Följande är de viktigaste fördelarna med att använda ARG för att köra frågor mot dina metadata för säkerhetskopiering:

  • Funktioner för att fråga resurser i stor skala med komplex filtrering, gruppering och sortering efter resursegenskaper.
  • Möjlighet att hämta realtidsinformation om dina säkerhetskopior, inklusive pågående säkerhetskopieringsjobb.
  • Möjlighet att ansluta säkerhetskopieringsrelaterade data med användbar information om relaterade Azure-resurser, till exempel virtuella Azure-datorer och lagringskonton.

Komma igång

Följ dessa steg för att komma igång med att fråga dina säkerhetskopior med HJÄLP av ARG:

  1. Sök efter Resource Graph Explorer i Azure Portal. Välj samma för att omdirigeras till ARG-frågeredigeraren.

    Sök i Azure-resursgrupp

    I det vänstra fönstret visas alla tabeller (och deras associerade scheman) som är tillgängliga för frågor.

    • Tabellen RecoveryServicesResources innehåller de flesta av de säkerhetskopieringsrelaterade posterna, till exempel jobbinformation, information om säkerhetskopieringsinstanser. och så vidare.
    • Tabellen Resurser innehåller information om alla Azure-resurser på den översta nivån, till exempel Recovery Services-valv, virtuella Azure-datorer, lagringskonton och så vidare.

    Tillgängliga tabeller och associerade scheman för fråga

  2. Om du vill utforska data i någon av dessa tabeller skriver du Kusto-frågor i frågeredigeraren och klickar på Kör fråga.

    Du kan ladda ned utdata från dessa frågor som CSV från Resource Graph Explorer. Du kan också använda dessa frågor i anpassad automatisering med alla automationsklienter som stöds av ARG, till exempel PowerShell, CLI eller SDK. Du kan också skapa anpassade arbetsböcker i Azure Portal med ARG som datakälla.

Kommentar

  • Säkerhetskopierings-/återställningsjobb som är upp till 14 dagar gamla är tillgängliga i ARG för frågor. Om du vill köra frågor mot historiska poster rekommenderar vi att du använder Azure Monitor-loggar.
  • MED ARG kan du fråga de resurser som du har rätt RBAC-rättigheter för.

Exempelfrågor

Följande är några exempel på ARG-frågor på dina säkerhetskopierade data som du kan använda i anpassade instrumentpaneler och automatiseringar.

Visa en lista över alla virtuella Azure-datorer som har konfigurerats för säkerhetskopiering

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')

Visa en lista över alla säkerhetskopieringsjobb på Azure Databases for PostgreSQL-servrar under den senaste veckan

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))

Visa en lista över alla virtuella Azure-datorer som inte har konfigurerats för säkerhetskopiering

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

Visa en lista över alla säkerhetskopieringsprinciper som används för virtuella Azure-datorer

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'

Visa en lista över alla virtuella datorer som är associerade med en viss säkerhetskopieringsprincip

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>"

Visa en lista över alla säkerhetskopieringsprinciper som används för Azure Databases for PostgreSQL-servrar

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'))

Nästa steg

Läs mer om Azure Resource Graph