0Pricing
Azure Fundamentals · บทเรียน

พื้นฐาน Log Analytics และ KQL

นำเข้าบันทึกการวินิจฉัยไปยังพื้นที่ทำงาน Log Analytics และเขียนคำค้นหา Kusto Query Language เพื่อกรอง รวมกลุ่ม และแสดงข้อมูลการดำเนินงานเป็นภาพ

พื้นฐาน Log Analytics และ KQL เป็นบทเรียน Azure Fundamentals ฟรีบน CoddyKit นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Azure Fundamentals และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Azure Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน

Log Analytics Workspace คืออะไร

Log Analytics workspace คือที่จัดเก็บข้อมูลส่วนกลางใน Azure Monitor สำหรับข้อมูลบันทึกและข้อมูลการวัดและส่งข้อมูล เมื่อคุณกำหนดการตั้งค่าการวินิจฉัยให้กับทรัพยากร Azure บันทึกและเมตริกที่มีโครงสร้างจะถูกส่งมายัง workspace จากนั้นคุณสามารถค้นหาข้อมูลโดยใช้ Kusto Query Language (KQL) ได้ workspace แต่ละแห่งมีนโยบายการเก็บรักษาข้อมูลของตนเอง (ค่าเริ่มต้น 30 วัน และสูงสุด 730 วัน) รวมถึงการควบคุมการเข้าถึง

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

การส่งบันทึกการวินิจฉัยไปยัง Workspace

ทรัพยากร Azure ทุกประเภทสามารถสร้าง บันทึกการวินิจฉัย ซึ่งเป็นระเบียนรายละเอียดของการดำเนินการ เช่น การเรียก API เหตุการณ์การตรวจสอบสิทธิ์ และการดำเนินการค้นหา คุณสามารถเปิดใช้ฟังก์ชันนี้ผ่าน Diagnostic Settings บนทรัพยากร โดยระบุปลายทางเป็น Log Analytics workspace ของคุณ หมวดหมู่บันทึกที่พบบ่อย ได้แก่ AuditEvent สำหรับ Key Vault, AppServiceHTTPLogs สำหรับ App Service และ NetworkSecurityGroupFlowEvent สำหรับ 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}]'

บทนำเกี่ยวกับไวยากรณ์ KQL

Kusto Query Language (KQL) คือภาษาค้นหาแบบอ่านอย่างเดียวสำหรับวิเคราะห์ข้อมูลบันทึก การค้นหา KQL จะอ่านจากซ้ายไปขวาในลักษณะเป็นสายการประมวลผล โดยเริ่มจาก ชื่อตาราง แล้วส่งผ่านตัวดำเนินการด้วยเครื่องหมายไปป์ (|) ตัวดำเนินการที่พบบ่อย ได้แก่ where สำหรับกรองข้อมูล project สำหรับเลือกคอลัมน์ summarize สำหรับรวมข้อมูล และ order by สำหรับเรียงลำดับ KQL แยกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่สำหรับชื่อคอลัมน์ แต่ไม่แยกสำหรับคำสำคัญ

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

การกรองด้วยตัวดำเนินการ Where

ตัวดำเนินการ where ใช้นิพจน์บูลีนเพื่อกรองแถว คุณสามารถรวมเงื่อนไขด้วย and, or และ not ตัวดำเนินการ has จะค้นหาคำในสตริงโดยไม่แยกตัวพิมพ์เล็กและตัวพิมพ์ใหญ่และต้องตรงกับขอบเขตของคำ ส่วน contains จะค้นหาสตริงย่อย ตัวดำเนินการ in ใช้ทดสอบการมีสมาชิกอยู่ในรายการ ใช้ ago() เพื่อระบุช่วงเวลาแบบสัมพัทธ์ เช่น ago(1h) หรือ 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

การรวมข้อมูลด้วย Summarize

ตัวดำเนินการ summarize จะคำนวณค่ารวมจากหลายแถว ฟังก์ชันรวมข้อมูลที่พบบ่อย ได้แก่ count(), sum(), avg(), max(), min() และ dcount() สำหรับนับจำนวนค่าที่ไม่ซ้ำกัน คุณสามารถจัดกลุ่มตามคอลัมน์หนึ่งคอลัมน์หรือมากกว่าโดยใช้ส่วนคำสั่ง by ฟังก์ชัน bin() จะปัดค่าประทับเวลาให้เป็นช่วงต่าง ๆ เพื่อใช้รวมข้อมูลอนุกรมเวลา

// 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

การรวมตารางใน KQL

KQL รองรับ join สำหรับเชื่อมโยงข้อมูลจากหลายตาราง ชนิดการรวมเริ่มต้นคือ innerunique แต่คุณสามารถระบุ inner, leftouter, rightouter หรือ fullouter ได้ รูปแบบที่พบบ่อยคือการรวม AzureActivity กับ AzureMetrics เพื่อเชื่อมโยงการเปลี่ยนแปลงด้านการดูแลระบบกับช่วงที่ประสิทธิภาพลดลง ตัวดำเนินการ lookup เป็นทางเลือกที่ใช้ทรัพยากรน้อยกว่าสำหรับเพิ่มข้อมูลให้แถวจากตารางอ้างอิงขนาดเล็ก

// 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

การแสดงผลลัพธ์ KQL เป็นภาพ

หลังจากเขียนการค้นหาในพอร์ทัล Log Analytics แล้ว คุณสามารถแสดงผลลัพธ์เป็น แผนภูมิเวลา แผนภูมิแท่ง แผนภูมิวงกลม หรือ ตาราง โดยใช้ตัวดำเนินการ render นอกจากนี้ยังสามารถปักหมุดผลลัพธ์การค้นหาใด ๆ ไว้ที่ Azure Dashboard หรือบันทึกเป็น Workbook ได้ คำสั่ง render timechart จะเปลี่ยนการค้นหาที่รวมข้อมูลอนุกรมเวลาให้เป็นแผนภูมิเส้นแบบทันทีสำหรับวิเคราะห์แนวโน้ม

// 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

การแจ้งเตือนจากการค้นหาบันทึก

การแจ้งเตือนจากการค้นหาบันทึกจะเรียกใช้การค้นหา KQL ตามกำหนดเวลา และเริ่มทำงานเมื่อผลลัพธ์ตรงตามเงื่อนไข เช่น จำนวนผลลัพธ์มากกว่าศูนย์ หรือค่าตัวเลขในคอลัมน์เกินขีดจำกัด การแจ้งเตือนประเภทนี้ยืดหยุ่นกว่าการแจ้งเตือนเมตริก เพราะคุณสามารถค้นหาข้อมูลบันทึกจากหลายตารางได้ ความถี่ในการประเมินและช่วงเวลาสามารถกำหนดแยกจากกันได้ เช่น เรียกใช้ทุก 5 นาทีโดยตรวจสอบข้อมูลย้อนหลัง 15 นาที

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

ข้อมูลอ้างอิงตารางบันทึกที่พบบ่อย

Azure Monitor จัดเก็บบันทึกไว้ในตารางที่เป็นที่รู้จัก AzureActivity บันทึกการดำเนินการระดับ subscription SecurityEvent มีบันทึกความปลอดภัยของ Windows จาก VM ที่ใช้เอเจนต์ Log Analytics Heartbeat แสดงการเชื่อมต่อของเอเจนต์ (หนึ่งแถวต่อนาทีต่อ VM ที่เชื่อมต่อ) ส่วน AppRequests, AppExceptions และ AppDependencies มาจาก Application Insights การรู้จักชื่อตารางเหล่านี้มีความสำคัญอย่างยิ่งต่อการเขียนการค้นหาเพื่อปฏิบัติงานที่มีประสิทธิภาพ

การเก็บรักษาข้อมูลและค่าใช้จ่ายของ Workspace

ค่าบริการ Log Analytics มีสองส่วน ได้แก่ การนำเข้าข้อมูล (คิดตามจำนวน GB ที่นำเข้า) และ การเก็บรักษาข้อมูล (30 วันแรกไม่มีค่าใช้จ่าย จากนั้นจะคิดค่าบริการต่อ GB ต่อเดือนสำหรับช่วงที่เกินค่าเริ่มต้น) คุณสามารถลดค่าใช้จ่ายได้โดยกรองหมวดหมู่บันทึกที่มีข้อมูลรบกวนก่อนนำเข้า ใช้ Basic Logs สำหรับข้อมูลปริมาณสูงแต่มีคุณค่าน้อยในราคาที่ลดลง และเก็บข้อมูลเก่าถาวรไว้ใน Azure Data Explorer หรือพื้นที่จัดเก็บแบบเย็นเพื่อการปฏิบัติตามข้อกำหนดในระยะยาว

รูปแบบการควบคุมการเข้าถึง Workspace

Log Analytics workspace รองรับรูปแบบการควบคุมการเข้าถึงสองรูปแบบ ในโหมด workspace-context ผู้ใช้ที่มีสิทธิ์ Read ใน workspace จะสามารถค้นหาทุกตารางได้ ในโหมด resource-context ผู้ใช้จะค้นหาได้เฉพาะบันทึกที่สร้างโดยทรัพยากรซึ่งตนมีสิทธิ์ RBAC ในการอ่านเท่านั้น แม้จะไม่มีสิทธิ์เข้าถึง workspace โดยตรงก็ตาม แนะนำให้ใช้โหมด resource-context สำหรับองค์กรขนาดใหญ่ที่แต่ละทีมรับผิดชอบทรัพยากรคนละส่วน

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจแนวคิด Microsoft Azure Fundamentals (AZ-900) จากบทเรียนนี้

สรุปบทเรียน

ในบทเรียนนี้ คุณได้เรียนรู้ว่า Log Analytics workspaces รวมศูนย์ข้อมูลบันทึกการวินิจฉัยจากทรัพยากร Azure ตัวดำเนินการ KQL เช่น where, summarize และ render ช่วยให้คุณกรอง รวม และแสดงข้อมูลบันทึกเป็นภาพ และ การแจ้งเตือนจากการค้นหาบันทึกจะเรียกใช้การตอบสนองอัตโนมัติเมื่อผลลัพธ์การค้นหา KQL ตรงตามเงื่อนไขที่กำหนด บทถัดไป เราจะสำรวจ Application Insights สำหรับข้อมูลการวัดและส่งระดับแอปพลิเคชัน

คำถามที่พบบ่อย

บทเรียน “พื้นฐาน Log Analytics และ KQL” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “พื้นฐาน Log Analytics และ KQL” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Azure Fundamentals ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Azure Fundamentals มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “พื้นฐาน Log Analytics และ KQL”

นำเข้าบันทึกการวินิจฉัยไปยังพื้นที่ทำงาน Log Analytics และเขียนคำค้นหา Kusto Query Language เพื่อกรอง รวมกลุ่ม และแสดงข้อมูลการดำเนินงานเป็นภาพ คุณปฏิบัติ Azure Fundamentals ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Azure Fundamentals หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Azure Fundamentals บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 2 จากทั้งหมด 4 บทเรียน

บทเรียน “พื้นฐาน Log Analytics และ KQL” ใช้เวลานานแค่ไหน

บทเรียน CoddyKit ส่วนใหญ่ใช้เวลาประมาณ 5–10 นาที แต่ละบทเรียนจึงสั้นและเป็นแบบโต้ตอบ คุณสามารถก้าวหน้าอย่างต่อเนื่องและกลับมาเรียนต่อจากตรงที่เพิ่งหยุดบนเว็บและแอปได้เลย

ฉันเขียนและรันโค้ดในบทเรียน Azure Fundamentals นี้ได้ไหม

ได้ บทเรียน Azure Fundamentals ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. เมตริกและการแจ้งเตือนของ Azure Monitor
  2. พื้นฐาน Log Analytics และ KQL
  3. Application Insights
  4. แดชบอร์ดและเวิร์กบุ๊กของ Azure
← กลับไปที่ Azure Fundamentals