Latihan - Meringkas statistik ruang kosong berdasarkan komputer
Di sini, Anda akan mengambil dan mengubah data dari Perf
tabel, menggunakan kueri KQL, untuk menganalisis ruang kosong data pengelogan komputer ke ruang kerja Analitik Log Anda.
1. Tetapkan tujuan
Ingat bahwa tim IT Anda telah melihat masalah berulang yang terkait dengan ruang kosong yang tidak mencukup pada komputer virtual.
Untuk menganalisis penggunaan ruang kosong mesin yang berjalan di lingkungan IT Anda, Anda memerlukan informasi tentang:
- Total ruang kosong yang tersedia di setiap komputer.
- Persentase ruang yang digunakan pada setiap komputer.
2. Menilai log
Seperti yang kita lihat latihan sebelumnya, Perf
tabel menyediakan informasi tentang performa komponen perangkat keras, sistem operasi, dan aplikasi.
Kami mencatat bahwa kolom tabel ObjectName
mencantumkan nama semua objek yang Perf
dipantau dan CounterName
kolom menyimpan nama berbagai penghitung kinerja yang dikumpulkan Azure Monitor. Kami juga melihat bahwa kedua kolom ini menyimpan banyak nilai, yang banyak di antaranya muncul beberapa kali.
Mari kita jalankan kueri pada Perf
tabel untuk mencantumkan nilai yang berbeda ObjectName
:
Klik untuk menjalankan kueri di lingkungan demo Analitik Log
Perf // The table you’re querying
| distinct ObjectName // Lists distinct ObjectName values
Kumpulan hasil kueri ini menyertakan semua ObjectName
nilai yang saat ini ada dalam tabel:
Dalam skenario kami, kami tertarik untuk menganalisis komputer virtual, sehingga objek yang ingin kita lihat adalah LogicalDisk
dan Logical Disk
(untuk memantau memori di mesin fisik, Anda akan melihat memory
objek). Alasan ada dua objek bernama yang sama adalah bahwa LogicalDisk
adalah nama objek dalam rekaman Windows saat Logical Disk
digunakan dalam rekaman Linux.
Untuk mencantumkan nama penghitung yang berbeda yang dikumpulkan Azure Monitor untuk LogicalDisk
objek dan Logical Disk
, jalankan:
Klik untuk menjalankan kueri di lingkungan demo Analitik Log
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
Kumpulan hasil kueri ini mencakup semua penghitung kinerja yang dikumpulkan untuk LogicalDisk
objek dan Logical Disk
:
Penghitung kinerja yang menyediakan informasi tentang ruang yang digunakan dan kosong adalah % Used Space
, % Free Space
, dan Free Megabytes
. Kami memiliki dua penghitung serupa - % Free Space
dan % Used Space
- dikumpulkan dari catatan Windows dan Linux, masing-masing.
Mari kita nilai bagaimana kita dapat menggunakan data ini dan operasi KQL mana yang dapat membantu mengekstrak dan mengubah data:
Kolom | Deskripsi | Tujuan analisis | Operasi KQL terkait |
---|---|---|---|
TimeGenerated |
Menunjukkan kapan komputer virtual menghasilkan setiap log. | Tentukan cakupan waktu analisis. | where TimeGenerated > ago(1d) Untuk informasi selengkapnya, lihat ago(), operator tempat, dan operator Numerik. |
Computer |
Komputer tempat peristiwa dikumpulkan. | Kaitkan penggunaan CPU dengan komputer tertentu. | summarize... by Computer Untuk informasi selengkapnya, lihat meringkas operator. |
ObjectName |
Menyimpan nama semua objek tempat tabel menyimpan data performa. Untuk analisis Anda, Anda tertarik dengan LogicalDisk objek dan Logical Disk . |
Pantau disk logis di komputer virtual. | where ObjectName == "LogicalDisk" or ObjectName == "Logical Disk" Untuk informasi selengkapnya, lihat operator mana dan operator == (sama dengan). |
CounterName |
Menyimpan nama semua penghitung kinerja dalam tabel. |
|
where CounterName == "Free Megabytes" or CounterName =="% Free Space" or CounterName == "% Used Space" Untuk menyederhanakan hasil dan memfasilitasi analisis lebih lanjut:
|
InstanceName |
Mencantumkan instans objek yang dipantau. | Pantau semua drive pada komputer virtual. | InstanceName == "_Total" Untuk informasi selengkapnya, lihat operator mana dan operator == (sama dengan). |
CounterValue |
Pengukuran yang dikumpulkan untuk penghitung. | Ambil pengukuran performa untuk penghitung % Used Space kinerja , % Free Space , dan Free Megabytes . |
|
3. Tulis kueri Anda
Ambil semua log yang dihasilkan dalam sehari terakhir yang melaporkan penghitung
% Used Space
kinerja , ,% Free Space
danFree Megabytes
untukLogicalDisk
objek danLogical Disk
:Klik untuk menjalankan kueri di lingkungan demo Analitik Log
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
Kumpulan hasil kueri ini kemungkinan mencakup beberapa rekaman untuk setiap komputer tempat Anda mengumpulkan penghitung kinerja yang terkait dengan ruang kosong.
Filter untuk nilai penghitung terakhir yang dikumpulkan untuk setiap penghitung yang dilaporkan oleh setiap komputer virtual:
Klik untuk menjalankan kueri di lingkungan demo Analitik Log
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
Anda sekarang memiliki nilai penghitung terakhir yang dilaporkan untuk setiap penghitung terkait ruang kosong dari setiap komputer.
Untuk memfasilitasi analisis:
Konversikan
% Used Space
nilai penghitung menjadi% Free Space
(dengan mengurangi% Used Space
nilai dari 100%) dan ubah nama% Used Space
kolom menjadi% Free Space
:Klik untuk menjalankan kueri di lingkungan demo Analitik Log
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
Kumpulan hasil kueri ini menyajikan persentase ruang kosong pada komputer Windows dan Linux dengan cara yang sama, yang membuat analisis lebih jelas dan lebih mudah.
Konversi
Free Megabytes
ke Gigabyte (Free Megabytes
nilai * 0,001 = Gigabyte Gratis) dan relabelFree Megabytes
keOverallFreeSpaceInGB
:Klik untuk menjalankan kueri di lingkungan demo Analitik Log
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
Anda sekarang bisa mendapatkan gambaran yang jelas tentang total ruang kosong pada setiap mesin dalam gigabyte dan sebagai persentase dari total memori komputer.
Tantangan: Menggabungkan statistik ruang kosong untuk setiap komputer
Kumpulan hasil kueri kami sejauh ini mencakup dua baris untuk setiap komputer - satu baris menunjukkan ruang kosong keseluruhan di Gigabyte dan yang lain menunjukkan persentase ruang kosong yang tersedia.
Dapatkah Anda membuat kamus yang menggabungkan kedua statistik ruang kosong ini bersama-sama untuk setiap komputer virtual?
Petunjuk:
- Gunakan fungsi bag_pack() untuk membuat pasangan kunci-nilai untuk masing-masing dari dua penghitung kinerja.
- Gunakan fungsi agregasi make_bag() untuk menggabungkan kedua nilai kunci-nilai untuk setiap komputer.
Solusi:
Kelompokkan pasangan
CounterName, CounterValue
kunci-nilai:Klik untuk menjalankan kueri di lingkungan demo Analitik Log
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
Mengelompokkan
CounterName, CounterValue
pasangan kunci-nilai memungkinkan Anda membuat kamus statistik ruang kosong untuk setiap komputer di langkah berikutnya.Buat kantong properti (kamus), yang disebut SpaceStats, dari semua statistik ruang kosong yang dikumpulkan untuk setiap komputer, ringkas menurut komputer, dan filter untuk mesin dengan ruang kosong kurang dari 50%:
Klik untuk menjalankan kueri di lingkungan demo Analitik Log
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
Kumpulan hasil kueri ini meringkas statistik ruang kosong berdasarkan komputer, yang merupakan tujuan analisis ruang kosong Anda!
Baris terakhir filter kueri untuk mesin dengan ruang kosong kurang dari 50%. Anda mungkin ingin memantau atau menganalisis lebih dekat, atau mengonfigurasi ulang untuk memastikan mereka tidak kehabisan ruang.