Övning – Sammanfatta statistik för ledigt utrymme per dator
Här hämtar och transformerar du data från tabellen Perf
med hjälp av KQL-frågor för att analysera det lediga utrymmet för datorernas loggningsdata till Log Analytics-arbetsytan.
1. Ange mål
Kom ihåg att IT-teamet har märkt återkommande problem som rör otillräckligt ledigt utrymme på virtuella datorer.
Om du vill analysera användningen av ledigt utrymme för datorer som körs i DIN IT-miljö behöver du information om:
- Totalt ledigt utrymme på varje dator.
- Procentandel utrymme som används på varje dator.
2. Utvärdera loggar
Som vi såg föregående övning innehåller tabellen Perf
information om prestanda för maskinvarukomponenter, operativsystem och program.
Vi noterade att kolumnen Perf
tabellens ObjectName
innehåller namnen på alla objekt som övervakas och kolumnen CounterName
innehåller namnen på de olika prestandaräknare som Azure Monitor samlar in. Vi såg också att båda dessa kolumner innehåller många värden, varav många visas flera gånger.
Vi kör en fråga i tabellen Perf
för att visa distinkta ObjectName
värden:
Klicka för att köra frågan i Log Analytics-demomiljön
Perf // The table you’re querying
| distinct ObjectName // Lists distinct ObjectName values
Resultatuppsättningen för den här frågan innehåller alla ObjectName
värden som för närvarande finns i tabellen:
I vårt scenario är vi intresserade av att analysera virtuella datorer, så objekten vi vill titta på är LogicalDisk
och Logical Disk
(för att övervaka minnet på en fysisk dator tittar du på memory
-objektet). Anledningen till att det finns två objekt med liknande namn är att LogicalDisk
är objektnamnet i Windows-poster medan Logical Disk
används i Linux-poster.
Kör för att visa de distinkta namnen på de räknare som Azure Monitor samlar in för LogicalDisk
- och Logical Disk
-objekten:
Klicka för att köra frågan i Log Analytics-demomiljön
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
Resultatuppsättningen för den här frågan innehåller alla prestandaräknare som samlats in för objekten LogicalDisk
och Logical Disk
:
Prestandaräknarna som ger information om använt och ledigt utrymme är % Used Space
, % Free Space
och Free Megabytes
. Vi har två liknande räknare – % Free Space
och % Used Space
– som samlats in från Windows- respektive Linux-poster.
Nu ska vi utvärdera hur vi kan använda dessa data och vilka KQL-åtgärder som kan hjälpa till att extrahera och transformera data:
Spalt | Beskrivning | Analysmål | Relaterade KQL-åtgärder |
---|---|---|---|
TimeGenerated |
Anger när den virtuella datorn genererade varje logg. | Definiera tidsomfånget för analysen. | where TimeGenerated > ago(1d) Mer information finns i ago(), där operatörenanvänds, och i numeriska operatörer. |
Computer |
Dator som händelsen samlades in från. | Associera CPU-användning med en specifik dator. | summarize... by Computer För mer information, se sammanfattningsoperatorn. |
ObjectName |
Innehåller namnen på alla objekt som tabellen innehåller prestandadata för. För din analys är du intresserad av objekten LogicalDisk och Logical Disk . |
Övervaka de logiska diskarna på virtuella datorer. | where ObjectName == "LogicalDisk" or ObjectName == "Logical Disk" Mer information finns i där operatorn och == (lika med) operatorn. |
CounterName |
Innehåller namnen på alla prestandaräknare i tabellen. |
|
where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" För att förenkla resultaten och underlätta ytterligare analys:
|
InstanceName |
Visar en lista över övervakade instanser av det övervakade objektet. | Övervaka alla enheter på den virtuella datorn. | InstanceName == "_Total" Mer information finns i där operatorn och == (lika med) operatorn. |
CounterValue |
Mätvärdet som samlas in för räknaren. | Hämta prestandamått för prestandaräknaren % Used Space , % Free Space och Free Megabytes . |
|
3. Skriv din fråga
Hämta alla loggar som genererats under den senaste dagen som rapporterade
% Used Space
,% Free Space
ochFree Megabytes
prestandaräknare förLogicalDisk
- ochLogical Disk
-objekten:Klicka för att köra frågan i Log Analytics-demomiljön
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
Resultatuppsättningen för den här frågan innehåller sannolikt flera poster för varje dator som du samlar in prestandaräknare från som är relaterade till ledigt utrymme.
Filtrera efter det sista räknarvärdet som samlats in för varje räknare som rapporteras av varje virtuell dator:
Klicka för att köra frågan i Log Analytics-demomiljön
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
Nu har du det senast rapporterade räknarvärdet för varje ledig utrymmesrelaterad räknare för varje dator.
För att underlätta analysen:
Konvertera
% Used Space
-räknarvärdet till% Free Space
(genom att subtrahera värdet för% Used Space
från 100%) och ändra namnet på kolumnen% Used Space
till% Free Space
:Klicka för att köra frågan i Log Analytics-demomiljön
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
Resultatuppsättningen för den här frågan visar procentandelen ledigt utrymme på Windows- och Linux-datorer på samma sätt, vilket gör ytterligare analys tydligare och enklare.
Konvertera
Free Megabytes
till Gigabyte (Free Megabytes
-värdet * 0,001 = fria Gigabyte) och döp omFree Megabytes
tillOverallFreeSpaceInGB
:Klicka för att köra frågan i Log Analytics-demomiljön
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
Nu kan du få en tydlig bild av det totala lediga utrymmet på varje dator i gigabyte och som en procentandel av datorns totala minne.
Utmaning: Samla statistik över ledigt utrymme för varje dator
Resultatuppsättningen för vår fråga hittills innehåller två rader för varje dator – en rad visar det totala lediga utrymmet i Gigabyte och den andra visar procentandelen ledigt utrymme som är tillgängligt.
Kan du skapa en ordlista som kombinerar dessa två statistik för ledigt utrymme för varje virtuell dator?
Tips:
- Använd funktionen bag_pack() för att skapa nyckel/värde-par för var och en av de två prestandaräknarna.
- Använd aggregeringsfunktionen make_bag() för att paketera båda nyckelvärdesvärdena för varje dator.
lösning:
Gruppera
CounterName, CounterValue
nyckel-värdepar:Klicka för att köra frågan i Log Analytics-demomiljön
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
Genom att gruppera
CounterName, CounterValue
nyckel/värde-par kan du skapa en ordlista med statistik för ledigt utrymme för varje dator i nästa steg.Skapa en egenskapspåse (ordlista), med namnet SpaceStats, av all statistik för ledigt utrymme som samlas in för varje dator, sammanfatta efter dator och filtrera efter datorer med mindre än 50% ledigt utrymme:
Klicka för att köra frågan i Log Analytics-demomiljön
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
Resultatuppsättningen för den här frågan sammanfattar statistik för ledigt utrymme per dator, vilket var målet för din analys av ledigt utrymme!
Den sista raden i frågan filtrerar för datorer med mindre än 50% ledigt utrymme. Du kanske vill övervaka eller analysera närmare eller konfigurera om dem så att de inte får slut på utrymme.