Oefening: statistieken over vrije ruimte samenvatten per computer
Hier haalt en transformeert u gegevens uit de Perf
tabel, met behulp van KQL-query's, om de vrije ruimte van de machines te analyseren die gegevens registreren in uw Log Analytics-werkruimte.
1. Doelstellingen instellen
Zoals u weet, heeft uw IT-team terugkerende problemen opgemerkt met betrekking tot onvoldoende vrije ruimte op virtuele machines.
Als u het gebruik van vrije ruimte wilt analyseren van machines die worden uitgevoerd in uw IT-omgeving, hebt u informatie nodig over:
- Totale beschikbare vrije ruimte op elke machine.
- Percentage ruimte dat op elke machine wordt gebruikt.
2. Logboeken evalueren
Zoals we de vorige oefening hebben gezien, bevat de Perf
tabel informatie over de prestaties van hardwareonderdelen, besturingssystemen en toepassingen.
De kolom van ObjectName
de Perf
tabel bevat de namen van alle objecten die worden bewaakt en de CounterName
kolom bevat de namen van de verschillende prestatiemeteritems die door Azure Monitor worden verzameld. We hebben ook gezien dat beide kolommen veel waarden bevatten, waarvan er veel meerdere keren worden weergegeven.
We gaan een query uitvoeren in de Perf
tabel om afzonderlijke ObjectName
waarden weer te geven:
Klik hier om een query uit te voeren in de Log Analytics-demo-omgeving
Perf // The table you’re querying
| distinct ObjectName // Lists distinct ObjectName values
De resultatenset van deze query bevat alle ObjectName
waarden die zich momenteel in de tabel bevinden:
In ons scenario zijn we geïnteresseerd in het analyseren van virtuele machines, dus de objecten die we willen bekijken, zijn LogicalDisk
en Logical Disk
(om het geheugen op een fysieke machine te bewaken, kijkt u naar het memory
object). De reden dat er twee vergelijkbare benoemde objecten zijn, is dat LogicalDisk
de objectnaam in Windows-records is terwijl Logical Disk
deze wordt gebruikt in Linux-records.
Voer de volgende opdracht uit om de afzonderlijke namen van de tellers weer te geven die door Azure Monitor worden verzameld voor de LogicalDisk
en Logical Disk
objecten:
Klik hier om een query uit te voeren in de Log Analytics-demo-omgeving
Perf // The table you’re querying
| where ObjectName == "LogicalDisk" or // The object name used in Windows records
ObjectName == "Logical Disk" // The object name used in Linux records
| distinct CounterName // Lists distinct CounterName values
De resultatenset van deze query bevat alle prestatiemeteritems die zijn verzameld voor de LogicalDisk
en Logical Disk
objecten:
De prestatiemeteritems die informatie bieden over gebruikte en vrije ruimte zijn % Used Space
, % Free Space
en Free Megabytes
. We hebben twee vergelijkbare tellers , % Free Space
en % Used Space
- verzameld uit respectievelijk Windows- en Linux-records.
Laten we eens kijken hoe we deze gegevens kunnen gebruiken en welke KQL-bewerkingen kunnen helpen bij het extraheren en transformeren van de gegevens:
Kolom | Beschrijving | Analysedoel | Gerelateerde KQL-bewerkingen |
---|---|---|---|
TimeGenerated |
Geeft aan wanneer de virtuele machine elk logboek heeft gegenereerd. | Definieer het tijdsbereik van de analyse. | where TimeGenerated > ago(1d) Zie ago(), waar operator en numerieke operatoren voor meer informatie. |
Computer |
Computer van waaruit de gebeurtenis is verzameld. | CPU-gebruik koppelen aan een specifieke computer. | summarize... by Computer Zie samenvattingsoperator voor meer informatie. |
ObjectName |
Bevat de namen van alle objecten waarvoor de tabel prestatiegegevens bevat. Voor uw analyse bent u geïnteresseerd in de LogicalDisk en Logical Disk objecten. |
Bewaak de logische schijven in virtuele machines. | where ObjectName == "LogicalDisk" or ObjectName == "Logical Disk" Zie waar operator en == (gelijk aan) operator voor meer informatie. |
CounterName |
Bevat de namen van alle prestatiemeteritems in de tabel. |
|
where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" Om de resultaten te vereenvoudigen en verdere analyse te vergemakkelijken:
|
InstanceName |
Hiermee worden de bewaakte exemplaren van het bewaakte object weergegeven. | Bewaak alle stations op de virtuele machine. | InstanceName == "_Total" Zie waar operator en == (gelijk aan) operator voor meer informatie. |
CounterValue |
De meting die voor de teller is verzameld. | Prestatiemetingen voor de % Used Space prestatiemeteritems % Free Space en Free Megabytes prestatiemeteritems ophalen. |
|
3. Schrijf uw query
Haal alle logboeken op die zijn gegenereerd op de afgelopen dag waarin de
% Used Space
,% Free Space
enFree Megabytes
prestatiemeteritems voor deLogicalDisk
enLogical Disk
objecten zijn gerapporteerd:Klik hier om een query uit te voeren in de Log Analytics-demo-omgeving
Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" or // The object name used in Windows records ObjectName == "Logical Disk" // The object name used in Linux records | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters | where InstanceName == "_Total" // Retrieves data related to free space for all drives on a virtual machine
De resultatenset van deze query bevat waarschijnlijk meerdere records voor elke computer waaruit u prestatiemeteritems verzamelt die betrekking hebben op vrije ruimte.
Filter op de laatste tellerwaarde die wordt verzameld voor elke teller die door elke virtuele machine wordt gerapporteerd:
Klik hier om een query uit te voeren in de Log Analytics-demo-omgeving
Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" or // The object name used in Windows records ObjectName == "Logical Disk" // The object name used in Linux records | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters | where InstanceName == "_Total" // Retrieves data related to free space for all drives on a virtual disk | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine
U hebt nu de laatst gerapporteerde tellerwaarde voor elke vrije ruimte-gerelateerde teller van elke machine.
Om analyse te vergemakkelijken:
Converteer de
% Used Space
tellerwaarde naar% Free Space
(door de% Used Space
waarde af te trekken van 100%) en wijzig de naam van de% Used Space
kolom in% Free Space
:Klik hier om een query uit te voeren in de Log Analytics-demo-omgeving
Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" or // The object name used in Windows records ObjectName == "Logical Disk" // The object name used in Linux records | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters | where InstanceName == "_Total" // Retrieves data related to free space for all drives on a virtual disk | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine | extend CounterValue = iff(CounterName=="% Used Space", 100-CounterValue, CounterValue) // Converts % Used Space to % Free Space | extend CounterName = iff(CounterName=="% Used Space", "% Free Space", CounterName) // Changes the column name from % Used Space to % Free Space
De resultatenset van deze query geeft het percentage vrije ruimte op Windows- en Linux-machines op dezelfde manier weer, waardoor verdere analyse duidelijker en eenvoudiger wordt.
Converteren
Free Megabytes
naar Gigabytes (Free Megabytes
waarde * 0,001 = Gratis gigabytes) en labelen naarFree Megabytes
OverallFreeSpaceInGB
:Klik hier om een query uit te voeren in de Log Analytics-demo-omgeving
Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" or // The object name used in Windows records ObjectName == "Logical Disk" // The object name used in Linux records | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters | where InstanceName == "_Total" // Retrieves data related to free space for all drives on a virtual disk | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine | extend CounterValue = iff(CounterName=="% Used Space", 100-CounterValue, CounterValue) // Converts % Used Space to % Free Space | extend CounterName = iff(CounterName=="% Used Space", "% Free Space", CounterName) // Changes the column name from % Used Space to % Free Space | extend CounterValue = iff(CounterName=="Free Megabytes", (CounterValue)*0.001, CounterValue) // Converts megabytes to gigabytes | extend CounterName= iff(CounterName=="Free Megabytes", "OverallFreeSpaceInGB", CounterName) // Changes the column name fromFree Megabytes to OverallFreeSpaceInGB
U kunt nu een duidelijk beeld krijgen van de totale vrije ruimte op elke machine in gigabytes en als percentage van het totale geheugen van de machine.
Uitdaging: Bundel vrije ruimtestatistieken voor elke computer
De resultatenset van onze query bevat tot nu toe twee regels voor elke computer: één regel toont de totale vrije ruimte in Gigabytes en de andere regel geeft het percentage beschikbare vrije ruimte weer.
Kunt u een woordenlijst maken waarmee deze twee statistieken over vrije ruimte voor elke virtuele machine worden gebundeld?
Hint:
- Gebruik de functie bag_pack() om sleutel-waardeparen te maken voor elk van de twee prestatiemeteritems.
- Gebruik de aggregatiefunctie make_bag() om beide sleutelwaardewaarden voor elke computer te bundelen.
Oplossing:
Sleutel-waardeparen groeperen
CounterName, CounterValue
:Klik hier om een query uit te voeren in de Log Analytics-demo-omgeving
Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" or // The object name used in Windows records ObjectName == "Logical Disk" // The object name used in Linux records | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters | where InstanceName == "_Total" // Retrieves data related to free space for all drives on a virtual disk | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine | extend CounterValue = iff(CounterName=="% Used Space", 100-CounterValue, CounterValue) // Converts % Used Space to % Free Space | extend CounterName = iff(CounterName=="% Used Space", "% Free Space", CounterName) // Changes the column name from % Used Space to % Free Space | extend CounterValue = iff(CounterName=="Free Megabytes", (CounterValue)*0.001, CounterValue) // Converts megabytes to gigabytes | extend CounterName= iff(CounterName=="Free Megabytes", "OverallFreeSpaceInGB", CounterName) // Changes the column name fromFree Megabytes to OverallFreeSpaceInGB | extend packed = pack(CounterName, CounterValue) // Groups together CounterName-CounterValue key-value pairs
Als u sleutel-waardeparen groepeert
CounterName, CounterValue
, kunt u in de volgende stap een woordenlijst maken met vrije ruimtestatistieken voor elke computer.Maak een eigenschapsverzameling (woordenlijst), SpaceStats genoemd, van alle beschikbare ruimtestatistieken die voor elke machine worden verzameld, samenvatten op computer en filteren op machines met minder dan 50% vrije ruimte:
Klik hier om een query uit te voeren in de Log Analytics-demo-omgeving
Perf | where TimeGenerated > ago(1d) | where ObjectName == "LogicalDisk" or // The object name used in Windows records ObjectName == "Logical Disk" // The object name used in Linux records | where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" // Filters for the performance counters Free Megabytes, % Free Space, and % Used Space performance counters | where InstanceName == "_Total" // Retrieves data related to free space for all drives on a virtual disk | summarize arg_max(TimeGenerated, CounterValue) by Computer, CounterName // Retrieves the last counter value collected for each counter for every virtual machine | extend CounterValue = iff(CounterName=="% Used Space", 100-CounterValue, CounterValue) // Converts % Used Space to % Free Space | extend CounterName = iff(CounterName=="% Used Space", "% Free Space", CounterName) // Changes the column name from % Used Space to % Free Space | extend CounterValue = iff(CounterName=="Free Megabytes", (CounterValue)*0.001, CounterValue) // Converts megabytes to gigabytes | extend CounterName= iff(CounterName=="Free Megabytes", "OverallFreeSpaceInGB", CounterName) // Changes the column name fromFree Megabytes to OverallFreeSpaceInGB | extend packed = pack(CounterName, CounterValue) // Groups together CounterName-CounterValue key-value pairs | summarize SpaceStats = make_bag(packed) by Computer // Summarizes free space statstics by computer | where SpaceStats.["% Free Space"]<= 50
De resultatenset van deze query bevat een overzicht van de statistieken van vrije ruimte per machine, wat het doel was van uw vrije ruimteanalyse.
De laatste regel van de queryfilters voor machines met minder dan 50% vrije ruimte. U kunt ze beter controleren of analyseren, of ze opnieuw configureren om ervoor te zorgen dat er geen ruimte meer is.