Sdílet prostřednictvím


Dotazování záloh pomocí Azure Resource Graphu (ARG)

Tento článek popisuje, jak zadávat dotazy na informace o zálohování vašich prostředků Azure pomocí Azure Resource Graphu (ARG) bez dalších nákladů. ARG rozšiřuje správu prostředků Azure a umožňuje efektivně zkoumat prostředky ve velkém měřítku napříč několika předplatnými.

Klíčové výhody používání Azure Resource Graph pro metadata pro zálohování

Klíčovými výhodami použití ARG k dotazování na metadata zálohování jsou:

  • Vyhledávání prostředků napříč předplatnými s pokročilým filtrováním, seskupováním a řazením podle vlastností prostředků.
  • Získejte přístup k podrobnostem zálohování v reálném čase, včetně aktivních úloh zálohování.
  • Zkombinujte zálohovaná data se souvisejícími informacemi o prostředcích Azure, jako jsou virtuální počítače a účty úložiště.

Začínáme

Pokud chcete začít s dotazováním záloh pomocí ARG, postupujte takto:

  1. Vyhledejte Průzkumník Resource Graph v Azure portálu. Vyberte stejnou možnost, aby se přesměrovala do editoru dotazů ARG.

    Vyhledat skupinu prostředků Azure

    V levém podokně se zobrazí všechny tabulky (a jejich přidružená schémata), které jsou k dispozici pro dotaz.

    • Tabulka RecoveryServicesResources obsahuje většinu záznamů souvisejících se zálohováním, jako jsou podrobnosti úlohy nebo podrobnosti o instanci zálohování. a tak dále.
    • Tabulka Prostředky obsahuje informace o všech prostředcích Azure nejvyšší úrovně, jako jsou trezory služby Recovery Services, virtuální počítače Azure, účty úložiště atd.

    Dostupné tabulky a přidružená schémata pro dotaz

  2. Pokud chcete prozkoumat data v některé z těchto tabulek, napište dotazy Kusto v editoru dotazů a klikněte na Spustit dotaz.

    Výstup těchto dotazů si můžete stáhnout ve formátu CSV z Resource Graph Explorer. Tyto dotazy můžete použít také ve vlastní automatizaci pomocí libovolných klientů automatizace podporovaných ARG, jako jsou PowerShell, CLI nebo SDK. Vlastní sešity můžete také vytvořit na webu Azure Portal pomocí ARG jako zdroje dat.

Poznámka:

  • Úlohy zálohování/obnovení, které jsou starší než 14 dnů, jsou k dispozici v ARG pro dotazy. Pokud se chcete dotazovat na historické záznamy, doporučujeme použít protokoly služby Azure Monitor.
  • ARG umožňuje vyžádat si informace o prostředcích, pro které máte příslušná práva RBAC.

Vzorové dotazy

Následuje několik ukázkových dotazů ARG na zálohovaná data, která můžete použít ve vlastních řídicích panelech a automatizacích.

Výpis všech virtuálních počítačů Azure nakonfigurovaných pro zálohování

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

Výpis všech úloh zálohování na serverech Azure Database for PostgreSQL za poslední týden

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

Výpis všech virtuálních počítačů Azure, které nebyly nakonfigurované pro zálohování

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

Výpis všech zásad zálohování používaných pro virtuální počítače Azure

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'

Zobrazení seznamu všech virtuálních počítačů přidružených k dané zásadě zálohování

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

Výpis všech zásad zálohování používaných pro servery Azure Database for PostgreSQL

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

Další kroky

Další informace o Službě Azure Resource Graph