Partilhar via


Consultar seus backups usando o Azure Resource Graph (ARG)

Você pode consultar informações sobre backup para seus recursos do Azure sem custo adicional usando o Azure Resource Graph (ARG). O ARG é um serviço do Azure projetado para estender o Gerenciamento de Recursos do Azure. O objetivo é fornecer uma exploração eficiente de recursos com a capacidade de consultar em escala um determinado conjunto de assinaturas. A seguir estão os principais benefícios de usar o ARG para consultar seus metadados de backup:

  • Capacidade de consultar recursos em escala com filtragem, agrupamento e classificação complexos por propriedades de recursos.
  • Capacidade de obter informações em tempo real sobre seus backups, incluindo trabalhos de backup em andamento.
  • Capacidade de unir dados relacionados ao backup com informações úteis sobre recursos relacionados do Azure, como Máquinas Virtuais do Azure e Contas de Armazenamento.

Introdução

Para começar a consultar seus backups usando o ARG, siga estas etapas:

  1. Pesquise o Resource Graph Explorer no portal do Azure. Selecione o mesmo para ser redirecionado para o editor de consultas ARG.

    Pesquisar Grupo de Recursos do Azure

    O painel esquerdo exibe todas as tabelas (e seus esquemas associados) que estão disponíveis para consulta.

    • A tabela RecoveryServicesResources contém a maioria dos registros relacionados ao backup, como detalhes do trabalho e da instância de backup. e assim por diante.
    • A tabela Recursos contém informações sobre todos os Recursos do Azure de nível superior, como cofres dos Serviços de Recuperação, Máquinas Virtuais do Azure, Contas de Armazenamento e assim por diante.

    Tabelas disponíveis e esquemas associados para consulta

  2. Para explorar os dados em qualquer uma dessas tabelas, escreva consultas Kusto no editor de consultas e clique em Executar consulta.

    Você pode baixar a saída dessas consultas como CSV do Resource Graph Explorer. Você também pode usar essas consultas na automação personalizada usando quaisquer clientes de automação suportados pelo ARG, como PowerShell, CLI ou SDK. Você também pode criar pastas de trabalho personalizadas no portal do Azure usando o ARG como fonte de dados.

Nota

  • Trabalhos de backup/restauração com até 14 dias estão disponíveis no ARG para consulta. Se você quiser consultar registros históricos, recomendamos que use os Logs do Azure Monitor.
  • O ARG permite que você consulte os recursos para os quais você tem os direitos RBAC apropriados.

Consultas de amostra

A seguir estão alguns exemplos de consultas ARG em seus dados de backup que você pode usar em painéis e automações personalizados.

Listar todas as VMs do Azure que foram configuradas para backup

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

Listar todos os trabalhos de backup nos Bancos de Dados do Azure para Servidores PostgreSQL na última semana

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

Listar todas as VMs do Azure que não foram configuradas para backup

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

Listar todas as políticas de Backup usadas para VMs do 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'

Listar todas as VMs associadas a uma determinada política de backup

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

Listar todas as políticas de Backup usadas para Bancos de Dados do Azure para Servidores 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'))

Próximos passos

Saiba mais sobre o Azure Resource Graph