Azure Fundamentals · Pelajaran

Asas Analitis Log dan KQL

Masukkan log diagnostik ke dalam ruang kerja Log Analytics dan tulis pertanyaan Kusto Query Language untuk menapis, mengagregat dan menggambarkan data operasi.

Pelajaran 2 daripada 413 langkah

Asas Analitis Log dan KQL ialah pelajaran Azure Fundamentals percuma di CoddyKit. Ini ialah pelajaran 2 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran Azure Fundamentals, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus Azure Fundamentals merangkumi sejumlah 4 pelajaran.

Apakah Ruang Kerja Log Analytics?

Ruang kerja Log Analytics ialah stor data pusat dalam Azure Monitor untuk data log dan telemetri. Apabila anda mengkonfigurasi tetapan diagnostik pada sumber Azure, log dan metrik berstruktur mengalir ke dalam ruang kerja tersebut. Anda kemudiannya boleh membuat pertanyaan terhadap data menggunakan Kusto Query Language (KQL). Ruang kerja mempunyai dasar pengekalan tersendiri (lalai 30 hari, sehingga 730 hari) serta kawalan akses.

# Create a Log Analytics workspace
az monitor log-analytics workspace create \
  --resource-group myRG \
  --workspace-name myWorkspace \
  --location eastus \
  --retention-time 90

Menghantar Log Diagnostik ke Ruang Kerja

Setiap sumber Azure boleh menjana log diagnostik — rekod terperinci tentang operasi seperti panggilan API, kejadian pengesahan dan pelaksanaan pertanyaan. Anda mendayakannya melalui Tetapan Diagnostik pada sumber tersebut dengan menentukan ruang kerja Log Analytics sebagai destinasi. Kategori log yang biasa termasuk AuditEvent untuk Key Vault, AppServiceHTTPLogs untuk App Service dan NetworkSecurityGroupFlowEvent untuk NSG.

# Enable diagnostic settings to send Key Vault logs to Log Analytics
az monitor diagnostic-settings create \
  --name 'KVLogs' \
  --resource /subscriptions/<sub>/resourceGroups/myRG/providers/Microsoft.KeyVault/vaults/myKV \
  --workspace myWorkspace \
  --logs '[{"category":"AuditEvent","enabled":true}]'

Pengenalan kepada Sintaks KQL

Kusto Query Language (KQL) ialah bahasa pertanyaan baca sahaja untuk menganalisis data log. Pertanyaan KQL dibaca dari kiri ke kanan sebagai saluran pemprosesan: mulakan dengan nama jadual, kemudian salurkan (|) melalui operator. Operator yang biasa termasuk where untuk menapis, project untuk memilih lajur, summarize untuk pengagregatan dan order by untuk mengisih. KQL peka huruf besar dan kecil untuk nama lajur tetapi tidak untuk kata kunci.

// Basic KQL query structure
AzureActivity
| where TimeGenerated > ago(24h)
| where OperationNameValue == 'MICROSOFT.COMPUTE/VIRTUALMACHINES/DELETE'
| project TimeGenerated, Caller, ResourceGroup, Resource
| order by TimeGenerated desc

Menapis dengan Operator Where

Operator where menapis baris menggunakan ungkapan Boolean. Anda boleh menggabungkan syarat dengan and, or dan not. Operator has melakukan carian sempadan perkataan yang tidak peka huruf besar dan kecil dalam rentetan, manakala contains melakukan carian subrentetan. Operator in menguji keahlian dalam senarai. Gunakan ago() untuk menyatakan julat masa relatif seperti ago(1h) atau ago(7d).

// Filter for failed HTTP requests in the last hour
AppRequests
| where TimeGenerated > ago(1h)
| where Success == false
| where ResultCode in (500, 502, 503)
| project TimeGenerated, Name, ResultCode, DurationMs
| order by DurationMs desc

Mengagregat Data dengan Summarize

Operator summarize mengira pengagregatan merentas baris. Fungsi pengagregatan yang biasa termasuk count(), sum(), avg(), max(), min() dan dcount() untuk kiraan nilai unik. Anda boleh mengumpulkan data mengikut satu atau lebih lajur menggunakan klausa by. Fungsi bin() membundarkan cap masa kepada selang tertentu untuk pengagregatan siri masa.

// Count failed requests per hour per endpoint
AppRequests
| where TimeGenerated > ago(24h)
| where Success == false
| summarize FailureCount = count() by bin(TimeGenerated, 1h), Name
| order by TimeGenerated desc, FailureCount desc

Menggabungkan Jadual dalam KQL

KQL menyokong join untuk mengaitkan data daripada berbilang jadual. Jenis gabungan lalai ialah innerunique, tetapi anda boleh menentukan inner, leftouter, rightouter atau fullouter. Corak yang biasa ialah menggabungkan AzureActivity dengan AzureMetrics untuk mengaitkan perubahan pentadbiran dengan kemerosotan prestasi. Operator lookup ialah alternatif yang lebih ringan untuk memperkaya baris daripada jadual rujukan yang kecil.

// Correlate VM restarts with CPU spike events
AzureActivity
| where OperationNameValue has 'restart'
| join kind=leftouter (
    AzureMetrics
    | where MetricName == 'Percentage CPU'
    | where Average > 90
) on ResourceId
| project TimeGenerated, Resource, Average

Memvisualisasikan Hasil KQL

Selepas menulis pertanyaan dalam portal Log Analytics, anda boleh memaparkan hasil sebagai carta masa, carta bar, carta pai atau jadual menggunakan operator render. Anda juga boleh menyematkan sebarang hasil pertanyaan pada Azure Dashboard atau menyimpannya sebagai Buku Kerja. Perintah render timechart menukar pertanyaan summarize siri masa kepada carta garis serta-merta untuk analisis trend.

// Render a time chart of request counts per 5-minute interval
AppRequests
| where TimeGenerated > ago(4h)
| summarize RequestCount = count() by bin(TimeGenerated, 5m)
| render timechart

Alert Carian Log

Alert carian log menjalankan pertanyaan KQL mengikut jadual dan dicetuskan apabila hasilnya memenuhi syarat, seperti kiraan hasil melebihi sifar atau lajur berangka melebihi ambang. Alert ini lebih fleksibel daripada alert metrik kerana anda boleh membuat pertanyaan terhadap sebarang data log merentas berbilang jadual. Kekerapan penilaian dan tetingkap masa boleh dikonfigurasi secara berasingan — contohnya, jalankan setiap 5 minit untuk tempoh 15 minit yang lalu.

// Example log search alert condition: more than 5 exceptions in 15 min
AppExceptions
| where TimeGenerated > ago(15m)
| summarize ExceptionCount = count()
// Alert when ExceptionCount > 5

Rujukan Jadual Log Biasa

Azure Monitor menyimpan log dalam jadual yang diketahui umum. AzureActivity merekodkan operasi pada peringkat langganan. SecurityEvent mengandungi log Keselamatan Windows daripada VM yang mempunyai ejen Log Analytics. Heartbeat menunjukkan kesambungan ejen (satu baris seminit bagi setiap VM yang disambungkan). AppRequests, AppExceptions dan AppDependencies datang daripada Application Insights. Mengetahui nama jadual ini penting untuk menulis pertanyaan operasi yang berkesan.

Pengekalan dan Kos Ruang Kerja

Harga Log Analytics mempunyai dua komponen: pengingesan data (bagi setiap GB yang diinges) dan pengekalan data (30 hari pertama adalah percuma, kemudian dikenakan caj bagi setiap GB sebulan selepas lalai). Anda boleh mengurangkan kos dengan menapis kategori log yang bising sebelum pengingesan, menggunakan Basic Logs untuk data volum tinggi yang bernilai rendah pada harga yang dikurangkan, serta mengarkibkan data lama ke Azure Data Explorer atau storan sejuk untuk pengekalan pematuhan jangka panjang.

Model Kawalan Akses Ruang Kerja

Ruang kerja Log Analytics menyokong dua model kawalan akses. Dalam mod konteks ruang kerja, pengguna yang mempunyai akses Baca kepada ruang kerja boleh membuat pertanyaan terhadap semua jadual. Dalam mod konteks sumber, pengguna hanya boleh membuat pertanyaan terhadap log yang dijana oleh sumber yang mereka mempunyai kebenaran RBAC untuk membacanya — walaupun tanpa akses ruang kerja yang jelas. Mod konteks sumber disyorkan untuk organisasi besar yang mempunyai pasukan berbeza bagi mengurus sumber yang berbeza.

Semakan Pantas

Uji pemahaman anda tentang konsep Microsoft Azure Fundamentals (AZ-900) daripada pelajaran ini.

Imbas Kembali Pelajaran

Dalam pelajaran ini, anda telah mempelajari bahawa: ruang kerja Log Analytics memusatkan data log diagnostik daripada sumber Azure, operator KQL seperti where, summarize dan render membolehkan anda menapis, mengagregat dan memvisualisasikan log, manakala alert carian log mencetuskan respons automatik apabila hasil pertanyaan KQL memenuhi syarat yang ditentukan. Seterusnya, kita akan meneroka Application Insights untuk telemetri pada peringkat aplikasi.

Percuma untuk bermula

Pelajari Azure Fundamentals dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
30
Pelajaran
120

Soalan Lazim

Adakah pelajaran “Asas Analitis Log dan KQL” percuma?

Ya — teks penuh “Asas Analitis Log dan KQL” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus Azure Fundamentals, tingkat taraf kepada CoddyKit PRO. Kursus Azure Fundamentals merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Asas Analitis Log dan KQL”?

Masukkan log diagnostik ke dalam ruang kerja Log Analytics dan tulis pertanyaan Kusto Query Language untuk menapis, mengagregat dan menggambarkan data operasi. Anda berlatih Azure Fundamentals menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan Azure Fundamentals?

Tiada pengalaman terdahulu diperlukan. Pembelajaran Azure Fundamentals di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 2 daripada 4.

Berapa lamakah pelajaran “Asas Analitis Log dan KQL” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran Azure Fundamentals ini?

Ya. Setiap pelajaran Azure Fundamentals menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Metrik dan Amaran Azure Monitor
  2. Asas Analitis Log dan KQL
  3. Application Insights
  4. Papan Pemuka dan Buku Kerja Azure
← Kembali ke Azure Fundamentals