Sdílet prostřednictvím


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

Pomocí Azure Resource Graphu (ARG) můžete zadávat dotazy na informace o zálohování vašich prostředků Azure bez dalších nákladů. ARG je služba Azure navržená k rozšíření správy prostředků Azure. Cílem je poskytnout efektivní zkoumání prostředků s možností dotazování ve velkém měřítku napříč danou sadou předplatných. Toto jsou klíčové výhody použití ARG k dotazování na metadata zálohování:

  • Možnosti dotazování prostředků ve velkém měřítku pomocí komplexního filtrování, seskupování a řazení podle vlastností prostředků
  • Možnost získat informace o zálohách v reálném čase, včetně probíhajících úloh zálohování.
  • Možnost spojit data související se zálohováním s užitečnými informacemi o souvisejících prostředcích Azure, jako jsou virtuální počítače Azure a účty úložiště.

Začínáme

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

  1. Na webu Azure Portal vyhledejte Průzkumníka služby Resource Graph. Vyberte stejnou možnost, aby se přesměrovala do editoru dotazů ARG.

    Vyhledávání ve skupině 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 jako sdílený svazek clusteru z Průzkumníka služby Resource Graph. Tyto dotazy můžete použít také ve vlastní automatizaci pomocí všech klientů automatizace podporovaných ARG, jako je PowerShell, rozhraní příkazového řádku nebo sada 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 dotazovat se na prostředky, 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