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.
Ta strona to zbiór przykładowych zapytań Azure Resource Graph dla Azure Virtual Machines.
Przykładowe zapytania
Liczba wykonanych instalacji aktualizacji systemu operacyjnego
Zwraca listę stanu przebiegów instalacji aktualizacji systemu operacyjnego wykonanych dla maszyn w ciągu ostatnich siedmiu dni.
PatchAssessmentResources
| where type !has 'softwarepatches'
| extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4))
| extend prop = parse_json(properties)
| extend lTime = todatetime(prop.lastModifiedDateTime), OS = tostring(prop.osType), installedPatchCount = tostring(prop.installedPatchCount), failedPatchCount = tostring(prop.failedPatchCount), pendingPatchCount = tostring(prop.pendingPatchCount), excludedPatchCount = tostring(prop.excludedPatchCount), notSelectedPatchCount = tostring(prop.notSelectedPatchCount)
| where lTime > ago(7d)
| project lTime, RunID=name,machineName, rgName, resourceType, OS, installedPatchCount, failedPatchCount, pendingPatchCount, excludedPatchCount, notSelectedPatchCount
az graph query -q "PatchAssessmentResources | where type !has 'softwarepatches' | extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)) | extend prop = parse_json(properties) | extend lTime = todatetime(prop.lastModifiedDateTime), OS = tostring(prop.osType), installedPatchCount = tostring(prop.installedPatchCount), failedPatchCount = tostring(prop.failedPatchCount), pendingPatchCount = tostring(prop.pendingPatchCount), excludedPatchCount = tostring(prop.excludedPatchCount), notSelectedPatchCount = tostring(prop.notSelectedPatchCount) | where lTime > ago(7d) | project lTime, RunID=name,machineName, rgName, resourceType, OS, installedPatchCount, failedPatchCount, pendingPatchCount, excludedPatchCount, notSelectedPatchCount"
Liczba maszyn wirtualnych według stanu dostępności i identyfikatora subskrypcji
Zwraca liczbę maszyn wirtualnych (typ Microsoft.Compute/virtualMachines) zagregowanych według ich stanu dostępności w każdej z Twoich subskrypcji.
HealthResources
| where type =~ 'microsoft.resourcehealth/availabilitystatuses'
| summarize count() by subscriptionId, AvailabilityState = tostring(properties.availabilityState)
az graph query -q "HealthResources | where type =~ 'microsoft.resourcehealth/availabilitystatuses' | summarize count() by subscriptionId, AvailabilityState = tostring(properties.availabilityState)"
Liczba maszyn wirtualnych według stanu zasilania
Zwraca liczbę maszyn wirtualnych (typ Microsoft.Compute/virtualMachines) sklasyfikowanych według ich stanu zasilania. Aby uzyskać więcej informacji na temat stanów zasilania, zobacz Omówienie stanów zasilania.
Resources
| where type == 'microsoft.compute/virtualmachines'
| summarize count() by PowerState = tostring(properties.extended.instanceView.powerState.code)
az graph query -q "Resources | where type == 'microsoft.compute/virtualmachines' | summarize count() by PowerState = tostring(properties.extended.instanceView.powerState.code)"
Liczba maszyn wirtualnych według typu systemu operacyjnego
Opierając się na poprzednim zapytaniu, nadal ograniczamy według zasobów platformy Azure typu Microsoft.Compute/virtualMachines, ale nie ograniczamy już liczby zwracanych rekordów. Zamiast tego użyliśmy summarize i count() do zdefiniowania sposobu grupowania i agregacji wartości według właściwości, którą w tym przykładzie jest properties.storageProfile.osDisk.osType. Aby zobaczyć przykład przedstawiający wygląd tego ciągu w pełnym obiekcie, zobacz badanie zasobów — odnajdywanie maszyn wirtualnych.
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| summarize count() by tostring(properties.storageProfile.osDisk.osType)
az graph query -q "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | summarize count() by tostring(properties.storageProfile.osDisk.osType)"
Zlicz maszyny wirtualne według typu systemu operacyjnego z rozszerzeniem
Innym sposobem na zapisanie zapytania "Liczba maszyn wirtualnych według typu systemu operacyjnego" jest extend właściwość i nadanie jej tymczasowej nazwy do użycia w zapytaniu, w tym przypadku os. os jest następnie używane przez summarize i count() tak jak w przytoczonym przykładzie.
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| extend os = properties.storageProfile.osDisk.osType
| summarize count() by tostring(os)
az graph query -q "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | extend os = properties.storageProfile.osDisk.osType | summarize count() by tostring(os)"
Pobieranie wszystkich nowych alertów z ostatnich 30 dni
To zapytanie zawiera listę wszystkich nowych alertów użytkownika z ostatnich 30 dni.
iotsecurityresources
| where type == 'microsoft.iotsecurity/locations/devicegroups/alerts'
| where todatetime(properties.startTimeUtc) > ago(30d) and properties.status == 'New'
az graph query -q "iotsecurityresources | where type == 'microsoft.iotsecurity/locations/devicegroups/alerts' | where todatetime(properties.startTimeUtc) > ago(30d) and properties.status == 'New'"
Uzyskiwanie pojemności i rozmiaru zestawu skalowania maszyn wirtualnych
To zapytanie szuka zasobów zestawu skalowania maszyn wirtualnych i pobiera różne szczegółowe informacje, takie jak rozmiar maszyny wirtualnej i pojemność zestawu skalowania. Zapytanie używa funkcji toint(), aby rzutować pojemność na liczbę, co pozwala na sortowanie. Na koniec kolumny są przemianowywane na właściwości o własnych nazwach.
Resources
| where type=~ 'microsoft.compute/virtualmachinescalesets'
| where name contains 'contoso'
| project subscriptionId, name, location, resourceGroup, Capacity = toint(sku.capacity), Tier = sku.name
| order by Capacity desc
az graph query -q "Resources | where type=~ 'microsoft.compute/virtualmachinescalesets' | where name contains 'contoso' | project subscriptionId, name, location, resourceGroup, Capacity = toint(sku.capacity), Tier = sku.name | order by Capacity desc"
Wyświetlanie listy wszystkich rozszerzeń zainstalowanych na maszynie wirtualnej
Najpierw to zapytanie używa extend na typie zasobu maszyn wirtualnych, aby uzyskać identyfikator w wielkich literach (toupper()), uzyskać nazwę i typ systemu operacyjnego oraz uzyskać rozmiar maszyny wirtualnej. Uzyskanie identyfikatora zasobu wielkimi literami jest dobrym sposobem przygotowania do dołączenia do innej właściwości. Następnie zapytanie korzysta z join razem z kind jako leftouter, aby uzyskać rozszerzenia maszyny wirtualnej, porównując wielkie litery identyfikatora rozszerzenia. Część identyfikatora przed /extensions/\<ExtensionName\> ma ten sam format co identyfikator maszyn wirtualnych, więc używamy tej właściwości dla join.
summarize jest następnie używany razem z make_list na nazwie rozszerzenia maszyny wirtualnej, aby połączyć nazwy każdego rozszerzenia, w którym ID, OSName, OSType i VMSize są takie same, w jedną właściwość tablicy. Na koniec zamieniamy OSName na małe litery. Domyślnie order by jest malejący.
Resources
| where type == 'microsoft.compute/virtualmachines'
| extend
JoinID = toupper(id),
OSName = tostring(properties.osProfile.computerName),
OSType = tostring(properties.storageProfile.osDisk.osType),
VMSize = tostring(properties.hardwareProfile.vmSize)
| join kind=leftouter(
Resources
| where type == 'microsoft.compute/virtualmachines/extensions'
| extend
VMId = toupper(substring(id, 0, indexof(id, '/extensions'))),
ExtensionName = name
) on $left.JoinID == $right.VMId
| summarize Extensions = make_list(ExtensionName) by id, OSName, OSType, VMSize
| order by tolower(OSName) asc
az graph query -q "Resources | where type == 'microsoft.compute/virtualmachines' | extend JoinID = toupper(id), OSName = tostring(properties.osProfile.computerName), OSType = tostring(properties.storageProfile.osDisk.osType), VMSize = tostring(properties.hardwareProfile.vmSize) | join kind=leftouter( Resources | where type == 'microsoft.compute/virtualmachines/extensions' | extend VMId = toupper(substring(id, 0, indexof(id, '/extensions'))), ExtensionName = name ) on \$left.JoinID == \$right.VMId | summarize Extensions = make_list(ExtensionName) by id, OSName, OSType, VMSize | order by tolower(OSName) asc"
Lista dostępnych aktualizacji systemu operacyjnego dla wszystkich maszyn pogrupowanych według kategorii aktualizacji
Zwraca listę oczekujących systemów operacyjnych dla twoich maszyn.
PatchAssessmentResources
| where type !has 'softwarepatches'
| extend prop = parse_json(properties)
| extend lastTime = properties.lastModifiedDateTime
| extend updateRollupCount = prop.availablePatchCountByClassification.updateRollup, featurePackCount = prop.availablePatchCountByClassification.featurePack, servicePackCount = prop.availablePatchCountByClassification.servicePack, definitionCount = prop.availablePatchCountByClassification.definition, securityCount = prop.availablePatchCountByClassification.security, criticalCount = prop.availablePatchCountByClassification.critical, updatesCount = prop.availablePatchCountByClassification.updates, toolsCount = prop.availablePatchCountByClassification.tools, otherCount = prop.availablePatchCountByClassification.other, OS = prop.osType
| project lastTime, id, OS, updateRollupCount, featurePackCount, servicePackCount, definitionCount, securityCount, criticalCount, updatesCount, toolsCount, otherCount
az graph query -q "PatchAssessmentResources | where type !has 'softwarepatches' | extend prop = parse_json(properties) | extend lastTime = properties.lastModifiedDateTime | extend updateRollupCount = prop.availablePatchCountByClassification.updateRollup, featurePackCount = prop.availablePatchCountByClassification.featurePack, servicePackCount = prop.availablePatchCountByClassification.servicePack, definitionCount = prop.availablePatchCountByClassification.definition, securityCount = prop.availablePatchCountByClassification.security, criticalCount = prop.availablePatchCountByClassification.critical, updatesCount = prop.availablePatchCountByClassification.updates, toolsCount = prop.availablePatchCountByClassification.tools, otherCount = prop.availablePatchCountByClassification.other, OS = prop.osType | project lastTime, id, OS, updateRollupCount, featurePackCount, servicePackCount, definitionCount, securityCount, criticalCount, updatesCount, toolsCount, otherCount"
Lista wykonanych instalacji aktualizacji systemu operacyjnego Linux
Zwraca listę stanu systemu Linux Server — przebiegi instalacji aktualizacji systemu operacyjnego wykonane dla maszyn w ciągu ostatnich siedmiu dni.
PatchAssessmentResources
| where type has 'softwarepatches' and properties has 'version'
| extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)), tostring(RunID = split(id, '/', 10))
| extend prop = parse_json(properties)
| extend lTime = todatetime(prop.lastModifiedDateTime), patchName = tostring(prop.patchName), version = tostring(prop.version), installationState = tostring(prop.installationState), classifications = tostring(prop.classifications)
| where lTime > ago(7d)
| project lTime, RunID, machineName, rgName, resourceType, patchName, version, classifications, installationState
| sort by RunID
az graph query -q "PatchAssessmentResources | where type has 'softwarepatches' and properties has 'version' | extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)), tostring(RunID = split(id, '/', 10)) | extend prop = parse_json(properties) | extend lTime = todatetime(prop.lastModifiedDateTime), patchName = tostring(prop.patchName), version = tostring(prop.version), installationState = tostring(prop.installationState), classifications = tostring(prop.classifications) | where lTime > ago(7d) | project lTime, RunID, machineName, rgName, resourceType, patchName, version, classifications, installationState | sort by RunID"
Lista maszyn wirtualnych i skojarzonych stanów dostępności według identyfikatorów zasobów
Zwraca najnowszą listę maszyn wirtualnych (typ Microsoft.Compute/virtualMachines) zagregowanych według stanu dostępności. Zapytanie udostępnia również powiązany identyfikator zasobu na podstawie properties.targetResourceId, co ułatwia debugowanie i ograniczanie problemów. Stany dostępności mogą być jedną z czterech wartości: dostępne, niedostępne, obniżone i nieznane. Aby uzyskać więcej informacji na temat znaczenia poszczególnych stanów dostępności, zobacz Omówienie usługi Azure Resource Health.
HealthResources
| where type =~ 'microsoft.resourcehealth/availabilitystatuses'
| summarize by ResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)
az graph query -q "HealthResources | where type =~ 'microsoft.resourcehealth/availabilitystatuses' | summarize by ResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)"
Lista maszyn wirtualnych według stanu dostępności i stanu zasilania przy użyciu identyfikatorów zasobów i grup zasobów
Zwraca listę maszyn wirtualnych (typ Microsoft.Compute/virtualMachines) zagregowanych według ich stanu zasilania i stanu dostępności, aby zapewnić spójny obraz kondycji maszyn wirtualnych. Zapytanie zawiera również szczegółowe informacje na temat grupy zasobów i identyfikatora zasobu skojarzonego z każdym wpisem w celu uzyskania szczegółowego wglądu w zasoby.
Resources
| where type =~ 'microsoft.compute/virtualmachines'
| project resourceGroup, Id = tolower(id), PowerState = tostring( properties.extended.instanceView.powerState.code)
| join kind=leftouter (
HealthResources
| where type =~ 'microsoft.resourcehealth/availabilitystatuses'
| where tostring(properties.targetResourceType) =~ 'microsoft.compute/virtualmachines'
| project targetResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState))
on $left.Id == $right.targetResourceId
| project-away targetResourceId
| where PowerState != 'PowerState/deallocated'
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' | project resourceGroup, Id = tolower(id), PowerState = tostring( properties.extended.instanceView.powerState.code) | join kind=leftouter ( HealthResources | where type =~ 'microsoft.resourcehealth/availabilitystatuses' | where tostring(properties.targetResourceType) =~ 'microsoft.compute/virtualmachines' | project targetResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)) on \$left.Id == \$right.targetResourceId | project-away targetResourceId | where PowerState != 'PowerState/deallocated'"
Lista maszyn wirtualnych, które nie są dostępne na podstawie identyfikatorów zasobów
Zwraca najnowszą listę maszyn wirtualnych (typ Microsoft.Compute/virtualMachines) zagregowanych według ich stanu dostępności. Lista pokazuje tylko maszyny wirtualne, których stan dostępności nie jest Dostępny, aby upewnić się, że jesteś świadomy wszystkich stanów, w których znajdują się Twoje maszyny wirtualne. Gdy wszystkie maszyny wirtualne są dostępne, możesz oczekiwać, że nie otrzymasz żadnych wyników.
HealthResources
| where type =~ 'microsoft.resourcehealth/availabilitystatuses'
| where tostring(properties.availabilityState) != 'Available'
| summarize by ResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)
az graph query -q "HealthResources | where type =~ 'microsoft.resourcehealth/availabilitystatuses' | where tostring(properties.availabilityState) != 'Available' | summarize by ResourceId = tolower(tostring(properties.targetResourceId)), AvailabilityState = tostring(properties.availabilityState)"
Lista wykonanych instalacji aktualizacji systemu operacyjnego Windows Server
Zwraca listę statusów instalacji aktualizacji systemu operacyjnego Windows Server wykonanych na maszynach w ciągu ostatnich siedmiu dni.
PatchAssessmentResources
| where type has 'softwarepatches' and properties !has 'version'
| extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)), tostring(RunID = split(id, '/', 10))
| extend prop = parse_json(properties)
| extend lTime = todatetime(prop.lastModifiedDateTime), patchName = tostring(prop.patchName), kbId = tostring(prop.kbId), installationState = tostring(prop.installationState), classifications = tostring(prop.classifications)
| where lTime > ago(7d)
| project lTime, RunID, machineName, rgName, resourceType, patchName, kbId, classifications, installationState
| sort by RunID
az graph query -q "PatchAssessmentResources | where type has 'softwarepatches' and properties !has 'version' | extend machineName = tostring(split(id, '/', 8)), resourceType = tostring(split(type, '/', 0)), tostring(rgName = split(id, '/', 4)), tostring(RunID = split(id, '/', 10)) | extend prop = parse_json(properties) | extend lTime = todatetime(prop.lastModifiedDateTime), patchName = tostring(prop.patchName), kbId = tostring(prop.kbId), installationState = tostring(prop.installationState), classifications = tostring(prop.classifications) | where lTime > ago(7d) | project lTime, RunID, machineName, rgName, resourceType, patchName, kbId, classifications, installationState | sort by RunID"
Wyświetlanie listy maszyn wirtualnych przy użyciu interfejsu sieciowego i publicznego adresu IP
To zapytanie używa dwóch leftouterjoin poleceń do łączenia maszyn wirtualnych utworzonych za pomocą modelu wdrażania Menedżera Zasobów, ich powiązanych interfejsów sieciowych oraz dowolnego publicznego adresu IP związanego z tymi interfejsami sieciowymi.
Resources
| where type =~ 'microsoft.compute/virtualmachines'
| extend nics=array_length(properties.networkProfile.networkInterfaces)
| mv-expand nic=properties.networkProfile.networkInterfaces
| where nics == 1 or nic.properties.primary =~ 'true' or isempty(nic)
| project vmId = id, vmName = name, vmSize=tostring(properties.hardwareProfile.vmSize), nicId = tostring(nic.id)
| join kind=leftouter (
Resources
| where type =~ 'microsoft.network/networkinterfaces'
| extend ipConfigsCount=array_length(properties.ipConfigurations)
| mv-expand ipconfig=properties.ipConfigurations
| where ipConfigsCount == 1 or ipconfig.properties.primary =~ 'true'
| project nicId = id, publicIpId = tostring(ipconfig.properties.publicIPAddress.id))
on nicId
| project-away nicId1
| summarize by vmId, vmName, vmSize, nicId, publicIpId
| join kind=leftouter (
Resources
| where type =~ 'microsoft.network/publicipaddresses'
| project publicIpId = id, publicIpAddress = properties.ipAddress)
on publicIpId
| project-away publicIpId1
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' | extend nics=array_length(properties.networkProfile.networkInterfaces) | mv-expand nic=properties.networkProfile.networkInterfaces | where nics == 1 or nic.properties.primary =~ 'true' or isempty(nic) | project vmId = id, vmName = name, vmSize=tostring(properties.hardwareProfile.vmSize), nicId = tostring(nic.id) | join kind=leftouter ( Resources | where type =~ 'microsoft.network/networkinterfaces' | extend ipConfigsCount=array_length(properties.ipConfigurations) | mv-expand ipconfig=properties.ipConfigurations | where ipConfigsCount == 1 or ipconfig.properties.primary =~ 'true' | project nicId = id, publicIpId = tostring(ipconfig.properties.publicIPAddress.id)) on nicId | project-away nicId1 | summarize by vmId, vmName, vmSize, nicId, publicIpId | join kind=leftouter ( Resources | where type =~ 'microsoft.network/publicipaddresses' | project publicIpId = id, publicIpAddress = properties.ipAddress) on publicIpId | project-away publicIpId1"
Pokaż wszystkie maszyny wirtualne uporządkowane według nazwy w kolejności malejącej
Aby wyświetlić listę zawierającą tylko maszyny wirtualne (które są typu Microsoft.Compute/virtualMachines), możemy dopasować w wynikach właściwość typ. Podobnie jak w przypadku poprzedniego zapytania, element desc zmienia order by na kolejność malejącą. Element =~ w dopasowaniu typu informuje usługę Resource Graph, aby ignorowała wielkość liter.
Resources
| project name, location, type
| where type =~ 'Microsoft.Compute/virtualMachines'
| order by name desc
az graph query -q "Resources | project name, location, type | where type =~ 'Microsoft.Compute/virtualMachines' | order by name desc"
Pokaż pierwsze pięć maszyn wirtualnych według nazwy i ich typu systemu operacyjnego
To zapytanie używa top, aby pobrać tylko pięć pasujących rekordów, które są posortowane według nazwy. Typ zasobu platformy Azure to Microsoft.Compute/virtualMachines.
project informuje usługę Azure Resource Graph, które właściwości mają być uwzględnione.
Resources
| where type =~ 'Microsoft.Compute/virtualMachines'
| project name, properties.storageProfile.osDisk.osType
| top 5 by name desc
az graph query -q "Resources | where type =~ 'Microsoft.Compute/virtualMachines' | project name, properties.storageProfile.osDisk.osType | top 5 by name desc"
Podsumowanie maszyny wirtualnej według rozszerzonej właściwości stanów zasilania
To zapytanie używa rozszerzonych właściwości na maszynach wirtualnych do podsumowywania według stanów zasilania.
Resources
| where type == 'microsoft.compute/virtualmachines'
| summarize count() by tostring(properties.extended.instanceView.powerState.code)
az graph query -q "Resources | where type == 'microsoft.compute/virtualmachines' | summarize count() by tostring(properties.extended.instanceView.powerState.code)"
Wyświetlanie maszyn wirtualnych dopasowanych przez wyrażenie regularne
To zapytanie szuka maszyn wirtualnych, które odpowiadają wyrażeniu regularnemu (nazywanemu wyrażeniem regularnym lub regex). Polecenie matches regex @ pozwala na zdefiniowanie wyrażenia regularnego do dopasowania, które jest ^Contoso(.*)[0-9]+$. Definicja wyrażenia regularnego jest wyjaśniona jako:
-
^- Dopasowanie musi zaczynać się od początku ciągu. Contoso- Ciąg uwzględniający wielkość liter.(.*)- Dopasowanie podwyrażu:.- Dopasowuje dowolny pojedynczy znak (z wyjątkiem nowego wiersza).*- Dopasowuje poprzedni element zero lub więcej razy.
[0-9]- Dopasowanie grupy znaków dla cyfry od 0 do 9.+- Dopasowuje poprzedni element co najmniej raz.$- Dopasowanie poprzedniego elementu musi wystąpić na końcu ciągu.
Po dopasowaniu według nazwy zapytanie wyświetla nazwę i sortuje je rosnąco według nazwy.
Resources
| where type =~ 'microsoft.compute/virtualmachines' and name matches regex @'^Contoso(.*)[0-9]+$'
| project name
| order by name asc
az graph query -q "Resources | where type =~ 'microsoft.compute/virtualmachines' and name matches regex @'^Contoso(.*)[0-9]+\$' | project name | order by name asc"
Następne kroki
- Dowiedz się więcej o języku zapytań.
- Dowiedz się więcej o sposobie eksplorowania zasobów.