Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Azure Resource Graph es un servicio de Azure que le permite consultar a escala, lo que le ayuda a controlar eficazmente el entorno. Las consultas se crean mediante el lenguaje de consulta kusto (KQL). Para más información, consulte Descripción del lenguaje de consulta de Azure Resource Graph.
En este artículo se proporciona una lista de consultas de Azure Resource Graph de ejemplo para servidores habilitados para Azure Arc. Estas consultas tienen como destino el microsoft.hybridcompute/machines tipo de recurso y devuelven información como la pertenencia al dominio, las extensiones instaladas, las versiones del agente y los detalles del sistema operativo. Puede ejecutar estas consultas a través de Azure PowerShell o la CLI de Azure, o bien en Azure Portal mediante el Explorador de Resource Graph. Modifique las consultas para satisfacer sus necesidades.
Sugerencia
Puede usar Microsoft Copilot en Azure para crear consultas de Azure Resource Graph mediante lenguaje natural. Para obtener más información, consulte Obtención de información de recursos con Microsoft Copilot en Azure.
Consultas de ejemplo
Obtención del recuento y el porcentaje de servidores habilitados para Arc por dominio
En esta consulta se resume la propiedad domainName en servidores habilitados para Azure Arc y se usa un cálculo con bin para crear una columna Pct para el porcentaje de servidores habilitados para Arc por dominio.
Resources
| where type == 'microsoft.hybridcompute/machines'
| project domain=tostring(properties.domainName)
| summarize Domains=make_list(domain), TotalMachineCount=sum(1)
| mvexpand EachDomain = Domains
| summarize PerDomainMachineCount = count() by tostring(EachDomain), TotalMachineCount
| extend Pct = 100 * bin(todouble(PerDomainMachineCount) / todouble(TotalMachineCount), 0.001)
az graph query -q "Resources | where type == 'microsoft.hybridcompute/machines' | project domain=tostring(properties.domainName) | summarize Domains=make_list(domain), TotalMachineCount=sum(1) | mvexpand EachDomain = Domains | summarize PerDomainMachineCount = count() by tostring(EachDomain), TotalMachineCount | extend Pct = 100 * bin(todouble(PerDomainMachineCount) / todouble(TotalMachineCount), 0.001)"
Enumeración de todas las extensiones instaladas en un servidor habilitado para Azure Arc
En primer lugar, esta consulta usa project en el tipo de recurso de máquina híbrida para obtener el identificador en mayúsculas (toupper()), obtener el nombre del equipo y el sistema operativo que se ejecuta en la máquina. Obtener el identificador de recurso en mayúsculas es una ayuda en la preparación para join a otra propiedad. A continuación, la consulta utiliza join con kind como leftouter para obtener las extensiones mediante la coincidencia de una substring en mayúsculas del id. de extensión. La parte del identificador antes de /extensions/<ExtensionName> tiene el mismo formato que el identificador de máquina híbrida, por lo que usamos esta propiedad para join.
summarize se usa entonces con make_list en el nombre de la extensión de máquina virtual para combinar el nombre de cada extensión, donde ID, OSName y ComputerName son iguales en una única propiedad de matriz. Por último, se ordena por OSName en minúsculas con asc. De forma predeterminada, el valor predeterminado de order by es descendente.
Resources
| where type == 'microsoft.hybridcompute/machines'
| project
id,
JoinID = toupper(id),
ComputerName = tostring(properties.osProfile.computerName),
OSName = tostring(properties.osName)
| join kind=leftouter(
Resources
| where type == 'microsoft.hybridcompute/machines/extensions'
| project
MachineId = toupper(substring(id, 0, indexof(id, '/extensions'))),
ExtensionName = name
) on $left.JoinID == $right.MachineId
| summarize Extensions = make_list(ExtensionName) by id, ComputerName, OSName
| order by tolower(OSName) asc
az graph query -q "Resources | where type == 'microsoft.hybridcompute/machines' | project id, JoinID = toupper(id), ComputerName = tostring(properties.osProfile.computerName), OSName = tostring(properties.osName) | join kind=leftouter( Resources | where type == 'microsoft.hybridcompute/machines/extensions' | project MachineId = toupper(substring(id, 0, indexof(id, '/extensions'))), ExtensionName = name ) on \$left.JoinID == \$right.MachineId | summarize Extensions = make_list(ExtensionName) by id, ComputerName, OSName | order by tolower(OSName) asc"
Enumeración de los servidores habilitados para Arc que no ejecutan la versión del agente publicada más recientemente
Esta consulta devuelve todos los servidores habilitados para Arc que ejecutan una versión obsoleta del agente de Connected Machine. Los agentes que tengan el estado Expirado se excluirán de los resultados. La consulta utiliza leftouterjoin para reunir las recomendaciones de Advisor generadas sobre los agentes de Connected Machine identificados como obsoletos y los agentes de máquinas híbridas para filtrar cualquier agente que no se haya comunicado con Azure durante un período de tiempo.
AdvisorResources
| where type == 'microsoft.advisor/recommendations'
| where properties.category == 'HighAvailability'
| where properties.shortDescription.solution == 'Upgrade to the latest version of the Azure Connected Machine agent'
| project
id,
JoinId = toupper(properties.resourceMetadata.resourceId),
machineName = tostring(properties.impactedValue),
agentVersion = tostring(properties.extendedProperties.installedVersion),
expectedVersion = tostring(properties.extendedProperties.latestVersion)
| join kind=leftouter(
Resources
| where type == 'microsoft.hybridcompute/machines'
| project
machineId = toupper(id),
status = tostring (properties.status)
) on $left.JoinId == $right.machineId
| where status != 'Expired'
| summarize by id, machineName, agentVersion, expectedVersion
| order by tolower(machineName) asc
az graph query -q "AdvisorResources | where type == 'microsoft.advisor/recommendations' | where properties.category == 'HighAvailability' | where properties.shortDescription.solution == 'Upgrade to the latest version of the Azure Connected Machine agent' | project id, JoinId = toupper(properties.resourceMetadata.resourceId), machineName = tostring(properties.impactedValue), agentVersion = tostring(properties.extendedProperties.installedVersion), expectedVersion = tostring(properties.extendedProperties.latestVersion) | join kind=leftouter( Resources | where type == 'microsoft.hybridcompute/machines' | project machineId = toupper(id), status = tostring (properties.status) ) on \$left.JoinId == \$right.machineId | where status != 'Expired' | summarize by id, machineName, agentVersion, expectedVersion | order by tolower(machineName) asc"
Enumeración de servidores habilitados para Arc con SQL Server, PostgreSQL o MySQL instalados
Esta consulta devuelve todos los servidores habilitados para Arc que tienen instalado SQL Server, PostgreSQL o MySQL.
resources
| where type =~ 'microsoft.hybridcompute/machines'
| extend machineId = tolower(tostring(id)), datacenter = iif(isnull(tags.Datacenter), '', tags.Datacenter), status = tostring(properties.status)
| extend mssqlinstalled = coalesce(tobool(properties.detectedProperties.mssqldiscovered),false)
| extend pgsqlinstalled = coalesce(tobool(properties.detectedProperties.pgsqldiscovered),false)
| extend mysqlinstalled = coalesce(tobool(properties.detectedProperties.mysqldiscovered),false)
| extend osSku = properties.osSku, osName = properties.osName, osVersion = properties.osVersion
| extend coreCount = tostring(properties.detectedProperties.logicalCoreCount), totalPhysicalMemoryinGB = tostring(properties.detectedProperties.totalPhysicalMemoryInGigabytes)
| extend operatingSystem = iif(isnotnull(osSku), osSku, osName)
| where mssqlinstalled or mysqlinstalled or pgsqlinstalled
| project id ,name, type, resourceGroup, subscriptionId, location, kind, osVersion, status, osSku,coreCount,totalPhysicalMemoryinGB,tags, mssqlinstalled, mysqlinstalled, pgsqlinstalled
| sort by (tolower(tostring(name))) asc
az graph query -q "resources | where type =~ 'microsoft.hybridcompute/machines' | extend machineId = tolower(tostring(id)), datacenter = iif(isnull(tags.Datacenter), '', tags.Datacenter), status = tostring(properties.status) | extend mssqlinstalled = coalesce(tobool(properties.detectedProperties.mssqldiscovered),false) | extend pgsqlinstalled = coalesce(tobool(properties.detectedProperties.pgsqldiscovered),false) | extend mysqlinstalled = coalesce(tobool(properties.detectedProperties.mysqldiscovered),false) | extend osSku = properties.osSku, osName = properties.osName, osVersion = properties.osVersion | extend coreCount = tostring(properties.detectedProperties.logicalCoreCount), totalPhysicalMemoryinGB = tostring(properties.detectedProperties.totalPhysicalMemoryInGigabytes) | extend operatingSystem = iif(isnotnull(osSku), osSku, osName) | where mssqlinstalled or mysqlinstalled or pgsqlinstalled | project id ,name, type, resourceGroup, subscriptionId, location, kind, osVersion, status, osSku,coreCount,totalPhysicalMemoryinGB,tags, mssqlinstalled, mysqlinstalled, pgsqlinstalled | sort by (tolower(tostring(name))) asc"
Pasos siguientes
- Obtenga más información sobre el lenguaje de consulta.
- Obtenga más información sobre cómo explorar recursos.