Cvičení – shrnutí statistik volného místa podle počítače
V této části načtete a transformujete data z Perf
tabulky pomocí dotazů KQL, abyste analyzovali volné místo počítačů, které protokolují data do pracovního prostoru služby Log Analytics.
1. Nastavení cílů
Vzpomeňte si, že váš IT tým zaznamenal opakované problémy související s nedostatkem volného místa na virtuálních počítačích.
Pokud chcete analyzovat využití volného místa počítačů spuštěných ve vašem IT prostředí, potřebujete informace o:
- Celkové volné místo dostupné na každém počítači.
- Procento využitého místa na každém počítači
2. Posouzení protokolů
Jak jsme viděli v předchozím cvičení, Perf
tabulka poskytuje informace o výkonu hardwarových komponent, operačních systémů a aplikací.
Poznamenali jsme, že Perf
sloupec tabulky ObjectName
uvádí názvy všech monitorovaných objektů a CounterName
sloupec obsahuje názvy různých čítačů výkonu, které Azure Monitor shromažďuje. Také jsme viděli, že oba tyto sloupce obsahují velké množství hodnot, z nichž mnohé se zobrazují vícekrát.
Pojďme spustit dotaz na Perf
tabulku, abychom vypsali jedinečné ObjectName
hodnoty:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
Perf // The table you’re querying
| distinct ObjectName // Lists distinct ObjectName values
Sada výsledků tohoto dotazu obsahuje všechny ObjectName
hodnoty, které jsou aktuálně v tabulce:
V našem scénáři nás zajímá analýza virtuálních počítačů, takže objekty, na které se chceme podívat, a LogicalDisk
Logical Disk
(pokud chcete monitorovat paměť ve fyzickém počítači, podívali byste se na memory
objekt). Důvodem jsou dva podobně pojmenované objekty, je to název LogicalDisk
objektu v záznamech Systému Windows, když Logical Disk
se používá v linuxových záznamech.
Pokud chcete zobrazit seznam jedinečných názvů čítačů, které Azure Monitor shromažďuje pro objekty LogicalDisk
a Logical Disk
objekty, spusťte:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
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
Sada výsledků tohoto dotazu zahrnuje všechny čítače výkonu shromážděné pro objekty LogicalDisk
a Logical Disk
objekty:
Čítače výkonu, které poskytují informace o použitém a volném prostoru, jsou % Used Space
, % Free Space
a Free Megabytes
. Máme dva podobné čítače – % Free Space
a % Used Space
– shromážděné ze záznamů Windows a Linuxu.
Pojďme posoudit, jak můžeme tato data používat a které operace KQL můžou pomoct extrahovat a transformovat data:
Sloupec | Popis | Cíl analýzy | Související operace KQL |
---|---|---|---|
TimeGenerated |
Označuje, kdy virtuální počítač vygeneroval každý protokol. | Definujte časový rozsah analýzy. | where TimeGenerated > ago(1d) Další informace naleznete v tématu ago() kde operátor a numerické operátory. |
Computer |
Počítač, ze kterého byla událost shromážděna. | Přidružte využití procesoru ke konkrétnímu počítači. | summarize... by Computer Další informace najdete v operátoru summarize. |
ObjectName |
Obsahuje názvy všech objektů, pro které tabulka uchovává údaje o výkonu. Pro účely analýzy vás zajímají LogicalDisk objekty a Logical Disk objekty. |
Monitorujte logické disky ve virtuálních počítačích. | where ObjectName == "LogicalDisk" or ObjectName == "Logical Disk" Další informace naleznete v tématu, kde operátor a == (rovná se). |
CounterName |
Obsahuje názvy všech čítačů výkonu v tabulce. |
|
where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" Zjednodušení výsledků a usnadnění další analýzy:
|
InstanceName |
Zobrazí seznam monitorovaných instancí monitorovaného objektu. | Monitorujte všechny jednotky na virtuálním počítači. | InstanceName == "_Total" Další informace naleznete v tématu, kde operátor a == (rovná se). |
CounterValue |
Měření shromážděné pro čítač. | Načtěte měření výkonu pro čítače výkonu % Used Space a % Free Space Free Megabytes čítače výkonu. |
|
3. Napište svůj dotaz.
Načtěte všechny protokoly vygenerované za poslední den, které ohlásily čítače
LogicalDisk
výkonu% Free Space
% Used Space
aFree Megabytes
Logical Disk
objekty:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
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
Sada výsledků tohoto dotazu pravděpodobně obsahuje více záznamů pro každý počítač, ze kterého shromažďujete čítače výkonu související s volným místem.
Vyfiltrujte poslední hodnotu čítače shromážděnou pro každý čítač hlášený každým virtuálním počítačem:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
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
Teď máte poslední hlášenou hodnotu čítače pro každý čítač související s volným místem každého počítače.
Pro usnadnění analýzy:
Převeďte hodnotu čítače
% Used Space
na% Free Space
hodnotu (odečtením% Used Space
hodnoty od 100 %) a změňte název% Used Space
sloupce na% Free Space
:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
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
Sada výsledků tohoto dotazu představuje procento volného místa na počítačích s Windows a Linuxem stejným způsobem, což usnadňuje a usnadňuje další analýzu.
Převeďte
Free Megabytes
na Gigabajty (Free Megabytes
hodnota * 0,001 = Free Gigabajty) a znovu naFree Megabytes
OverallFreeSpaceInGB
:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
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
Teď můžete získat jasný přehled o celkovém volném prostoru na každém počítači v gigabajtech a jako procento celkové paměti počítače.
Výzva: Seskupování statistik volného místa pro každý počítač
Sada výsledků dotazu zatím obsahuje dva řádky pro každý počítač – jeden řádek zobrazuje celkové volné místo v gigabajtech a druhý zobrazuje procento volného místa, které je k dispozici.
Můžete vytvořit slovník, který tyto dvě statistiky volného místa spojuje pro každý virtuální počítač?
Nápověda:
- Pomocí funkce bag_pack() vytvořte páry klíč-hodnota pro každý ze dvou čítačů výkonu.
- Pomocí agregační funkce make_bag() sbalte obě hodnoty klíč-hodnota pro každý počítač.
Řešení:
Seskupování
CounterName, CounterValue
párů klíč-hodnota:Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
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
Seskupení
CounterName, CounterValue
párů klíč-hodnota umožňuje vytvořit slovník statistik volného místa pro každý počítač v dalším kroku.Vytvořte kontejner vlastností (slovník), který se nazývá SpaceStats, ze všech statistik volného místa shromážděných pro každý počítač, sumarizovat podle počítače a filtrovat počítače s méně než 50% volným místem:
Kliknutím spustíte dotaz v ukázkové prostředí Log Analytics.
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
Sada výsledků tohoto dotazu shrnuje statistiky volného místa podle počítače, což byl cíl analýzy volného místa.
Poslední řádek dotazu filtruje pro počítače s méně než 50% volným místem. Možná budete chtít monitorovat nebo analyzovat podrobněji nebo je překonfigurovat, aby se zajistilo, že nevyčerchají místo.