Azure Resource Graph-minta lekérdezések azure-beli virtuális gépekhez
Ez a lap Azure Resource Graph-minta lekérdezések gyűjteménye azure-beli virtuális gépekhez.
Minta lekérdezések
Az operációsrendszer-frissítés telepítésének száma
Az operációsrendszer-frissítés telepítésének a gépeken az elmúlt hét napban végrehajtott állapotlistáját adja vissza.
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"
Virtuális gépek száma rendelkezésre állási állapot és előfizetés-azonosító szerint
A virtuális gépek (típus Microsoft.Compute/virtualMachines
) számát adja vissza az egyes előfizetések rendelkezésre állási állapota alapján összesítve.
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)"
Virtuális gépek száma energiaállapot szerint
Az energiaállapotuk szerint kategorizált virtuális gépek (típus Microsoft.Compute/virtualMachines
) számát adja vissza. Az energiaállapotokkal kapcsolatos további információkért tekintse meg a Power States áttekintését.
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)"
A virtuális gépek száma az operációs rendszer típusa szerint
Az előző lekérdezésre épülve a listánk továbbra is a Microsoft.Compute/virtualMachines
típusú Azure-erőforrásokra korlátozódik, viszont a visszaadott rekordok száma szerint már nincs szűrve. Ehelyett a summarize
és a count()
paramétert használtuk annak meghatározásához, hogyan csoportosítsa és összesítse az értékeket tulajdonság alapján, amely ebben a példában a properties.storageProfile.osDisk.osType
. Az alábbi helyen talál példát arra, hogy hogyan néz ki ez a sztring a teljes objektumban: erőforrások felfedezése – virtuális gépek felderítése.
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)"
Virtuális gépek megszámlálása operációs rendszer típusa szerint kiterjesztéssel
A "Virtuális gépek megszámlálása operációs rendszer típusa szerint" lekérdezés írásának másik módja egy tulajdonság, extend
amely ideiglenes nevet ad a lekérdezésen belül, ebben az esetben az operációs rendszernek. az operációs rendszert ezután a hivatkozott példához hasonlóan használja summarize
count()
.
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)"
Az elmúlt 30 nap összes új riasztásának lekérése
Ez a lekérdezés a felhasználó új riasztásainak listáját tartalmazza az elmúlt 30 napból.
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'"
Virtuálisgép-méretezési csoport kapacitásának és méretének lekérése
Ez a lekérdezés a virtuálisgép-méretezési csoportok erőforrásait keresi meg, és különböző adatokat kér le, többet között a méretezési csoport virtuálisgép-méretét és kapacitását. Ez a lekérdezés a toint()
függvénnyel képezi le a kapacitást egy számmá, amely így rendezhető lesz. Végül a rendszer egyéni elnevezett tulajdonságokká nevezi át az oszlopokat.
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"
A virtuális gépen telepített összes bővítmény listázása
Ez a lekérdezés először a virtuális gépek erőforrástípusán használja extend
az azonosító nagybetűs (toupper()
) beolvasására, az operációs rendszer nevének és típusának lekérésére, valamint a virtuális gép méretének lekérésére. Az erőforrás-azonosító nagybetűs beolvasásával felkészülhet egy másik tulajdonsághoz való csatlakozásra. Ezután a lekérdezés a virtuálisgép-bővítmények lekéréséhez használja join
kind
leftouter
a bővítményazonosító nagybetűs substring
egyeztetésével. Az azonosító előző /extensions/\<ExtensionName\>
része ugyanaz a formátum, mint a virtuális gépek azonosítója, ezért ezt a tulajdonságot használjuk a join
. summarize
ezután a virtuálisgép-bővítmény nevére lesz használva make_list
az egyes bővítmények nevének egyesítéséhez, ahol az AZONOSÍTÓ, AZ OSName, az OSType és a VMSize azonos egy tömbtulajdonságban. Végül kisbetűs order by
OSName a asc
. Alapértelmezés szerint order by
csökkenő.
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"
Az összes gép elérhető operációsrendszer-frissítéseinek listázása frissítési kategória szerint csoportosítva
A gépek függőben lévő operációs rendszerének listáját adja vissza.
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"
Linux operációsrendszer-frissítés telepítésének listája
A Linux Server – operációsrendszer-frissítés telepítésének a gépeken az elmúlt hét napban végrehajtott állapotlistáját adja vissza.
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"
A virtuális gépek és a társított rendelkezésre állási állapotok listája erőforrás-azonosítók szerint
A virtuális gépek (típus Microsoft.Compute/virtualMachines
) legfrissebb listáját adja vissza a rendelkezésre állási állapot szerint összesítve. A lekérdezés emellett a kapcsolódó erőforrás-azonosítót is megadja az properties.targetResourceId
egyszerű hibakereséshez és a hibaelhárításhoz. A rendelkezésre állási állapot négy érték egyike lehet: Elérhető, Nem érhető el, Csökkentett és Ismeretlen. Az egyes rendelkezésre állási állapotok jelentéseiről az Azure Resource Health áttekintésében olvashat bővebben.
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)"
Virtuális gépek listája rendelkezésre állási állapot és energiaállapot szerint erőforrásazonosítókkal és erőforráscsoportokkal
A virtuális gépek (típus Microsoft.Compute/virtualMachines
) összesített listáját adja vissza az energiaállapotuk és a rendelkezésre állási állapotuk alapján, hogy egységes állapotot biztosítsanak a virtuális gépek számára. A lekérdezés az egyes bejegyzésekhez társított erőforráscsoportról és erőforrás-azonosítóról is tartalmaz részleteket az erőforrások részletes láthatósága érdekében.
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'"
Az erőforrás-azonosítók által nem elérhető virtuális gépek listája
A virtuális gépek (típus Microsoft.Compute/virtualMachines
) legfrissebb listáját adja vissza a rendelkezésre állási állapotuk alapján összesítve. A feltöltött lista csak azokat a virtuális gépeket emeli ki, amelyek rendelkezésre állási állapota nem érhető el , így biztos lehet benne, hogy tisztában van a virtuális gépek összes érintett állapotával. Ha az összes virtuális gép elérhető, várhatóan nem fog eredményt kapni.
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)"
A Windows Server operációsrendszer-frissítés telepítésének listája
A Windows Server – operációsrendszer-frissítés telepítésének a gépeken az elmúlt hét napban végrehajtott állapotlistáját adja vissza.
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"
Virtuális gépek listázása a hálózati adapterükkel és a nyilvános IP-címükkel
Ez a lekérdezés két leftouter
join
parancsot használ a Resource Manager-alapú üzemi modellel, a hozzájuk kapcsolódó hálózati adapterekkel és az ezekhez a hálózati adapterekhez kapcsolódó nyilvános IP-címekkel létrehozott virtuális gépek összevonásához.
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"
Az összes virtuális gép megjelenítése név szerint rendezve, csökkenő sorrendben
Ha csak a (Microsoft.Compute/virtualMachines
típusú) virtuális gépeket kívánja listázni, megfeleltetheti a típus tulajdonságot az eredmények között. Az előző lekérdezéshez hasonlóan a desc
paraméter az order by
paramétert csökkenő sorrendre módosítja. A típusegyezésben megadott =~
esetén a Resource Graph megkülönbözteti a kis- és a nagybetűt.
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"
Az első öt virtuális gép megjelenítése a nevük és az operációs rendszerük típusa szerint
Ez a lekérdezés csak öt név szerint rendezett egyező rekord lekérésére használ top
. Az Azure-erőforrás típusa Microsoft.Compute/virtualMachines
. A project
adja meg az Azure Resource Graph-nak, hogy a lekérdezés mely tulajdonságokat tartalmazza.
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"
Virtuális gép összegzése a kiterjesztett energiaállapot-tulajdonság alapján
Ez a lekérdezés a virtuális gépek kiterjesztett tulajdonságait használja az energiaállapotok szerinti összegzéshez.
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)"
Reguláris kifejezésekkel egyező virtuális gépek
Ez a lekérdezés olyan virtuális gépeket keres, amelyek egyeznek egy reguláris kifejezéssel (más néven regex-szel). Az egyezések regex @ lehetővé teszik számunkra, hogy meghatározza a regex egyezni, ami ^Contoso(.*)[0-9]+$
. A reguláris kifejezés definíciójának magyarázata:
^
– Az egyezésnek a sztring elején kell kezdődnie.Contoso
– A kis- és nagybetűket megkülönböztető sztring.(.*)
- Egy szubexpressziós egyezés:.
– Egyezik bármely egyetlen karakterrel (az új sor kivételével).*
– Az előző elemmel nullaszor vagy többször egyezik.
[0-9]
– Karaktercsoport-egyezés a 0 és 9 közötti számokhoz.+
– Az előző elemmel egyszer vagy többször egyezik.$
– Az előző elemmel történő egyezésnek a sztring végén kell lennie.
A név alapján történő egyezéseket követően a lekérdezés levetíti és ábécé sorrendbe rendezi a neveket.
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"
Következő lépések
- További információ a lekérdezés nyelvéről.
- További információ az erőforrások felfedezéséről.