Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Azure Resource Graph to usługa platformy Azure, która umożliwia wykonywanie zapytań na dużą skalę, co ułatwia efektywne zarządzanie środowiskiem. Zapytania są tworzone przy użyciu języka Kusto Query Language (KQL). Aby uzyskać więcej informacji, zobacz Omówienie języka zapytań usługi Azure Resource Graph.
Ten artykuł zawiera listę przykładowych zapytań usługi Azure Resource Graph dla serwerów z obsługą usługi Azure Arc. Te zapytania dotyczą microsoft.hybridcompute/machines typu zasobu i zwracają informacje, takie jak członkostwo w domenie, zainstalowane rozszerzenia, wersje agenta i szczegóły systemu operacyjnego. Te zapytania można uruchamiać za pomocą programu Azure PowerShell lub interfejsu wiersza polecenia platformy Azure albo w witrynie Azure Portal przy użyciu Eksploratora usługi Resource Graph. Zmodyfikuj zapytania zgodnie z potrzebami.
Wskazówka
Za pomocą rozwiązania Microsoft Copilot na platformie Azure możesz tworzyć zapytania usługi Azure Resource Graph przy użyciu języka naturalnego. Aby uzyskać więcej informacji, zobacz Uzyskiwanie informacji o zasobach przy użyciu rozwiązania Microsoft Copilot na platformie Azure.
Przykładowe zapytania
Pobieranie liczby i wartości procentowych serwerów z obsługą usługi Arc według domeny
To zapytanie podsumowuje domainName właściwość na serwerach z obsługą usługi Azure Arc i używa obliczeń z parametrem bin w celu utworzenia Pct kolumny dla procentu serwerów z obsługą usługi Arc na domenę.
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)"
Wymień wszystkie rozszerzenia zainstalowane na serwerze z obsługą Azure Arc
Najpierw to zapytanie używa project typu zasobu maszyny hybrydowej, aby uzyskać identyfikator w wielkiej litery (toupper()), uzyskać nazwę komputera i system operacyjny uruchomiony na maszynie. Przygotowanie identyfikatora zasobu do zapisu wielkimi literami jest dobrym sposobem na przygotowanie się do join dla innej własności. Następnie zapytanie używa join z kind jako leftouter, aby uzyskać rozszerzenia poprzez dopasowanie wielkich liter substring identyfikatora rozszerzenia. Część identyfikatora przed /extensions/<ExtensionName> jest tym samym formatem co identyfikator maszyny hybrydowej, dlatego używamy tej właściwości dla elementu join.
summarize jest używane wraz z make_list na nazwie rozszerzenia maszyny wirtualnej, aby połączyć nazwę każdego rozszerzenia, gdzie ID, OSName i ComputerName są identyczne, w pojedynczą właściwość tablicy. Na koniec sortujemy według małych liter OSName z asc. Domyślnie order by jest ustawione na malejące.
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"
Lista serwerów Arc, które nie korzystają z najnowszej wydanej wersji agenta
To zapytanie zwraca wszystkie serwery z włączoną opcją Arc, na których działa nieaktualna wersja agenta Connected Machine. Agenci o statusie Wygasło są wykluczeni z wyników. Zapytanie używa leftouterjoin do zestawienia rekomendacji doradcy dotyczących wszelkich agentów maszyn połączonych, które zostały zidentyfikowane jako nieaktualne, oraz maszyn komputerów hybrydowych, aby wyfiltrować dowolnego agenta, który nie komunikował się z platformą Azure przez dłuższy okres czasu.
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"
Wyświetlanie listy serwerów z obsługą usługi Arc z zainstalowanym programem SQL Server, PostgreSQL lub programem MySQL
To zapytanie zwraca wszystkie serwery z obsługą usługi Arc z zainstalowanym programem SQL Server, PostgreSQL lub 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"
Następne kroki
- Dowiedz się więcej o języku zapytań.
- Dowiedz się więcej o tym, jak odkrywać zasoby.