การตรวจสอบโซลูชันทั้งหมด
ในหน่วยนี้ เราดูที่การตรวจสอบโซลูชันทั้งหมด
แนะ นำ
การเปิดใช้งานการตรวจสอบในสภาพแวดล้อมการประมวลผลที่ซับซ้อนในปัจจุบันจําเป็นต้องรวบรวมข้อมูลการดําเนินงานจากทุกเลเยอร์และคอมโพเนนต์ของระบบแบบกระจาย คุณจําเป็นต้องมีข้อมูลเชิงลึกเกี่ยวกับข้อมูลนี้ และเมื่อต้องรวมกับมุมมองที่แตกต่างกันเพื่อสนับสนุนจํานวนของผู้เกี่ยวข้องในองค์กรของคุณ
Azure Monitor รวบรวมข้อมูลจากแหล่งข้อมูลชนิดต่าง ๆ ที่คุณสามารถใช้สําหรับการวิเคราะห์ การแสดงภาพ และการแจ้งเตือน ซึ่งให้ข้อมูลเชิงลึกแก่คุณในทรัพยากรที่ได้รับการตรวจสอบทั้งหมดของคุณ และแม้กับข้อมูลจากบริการอื่น ๆ ที่จัดเก็บข้อมูลของพวกเขาใน Azure Monitor
การวิเคราะห์รายการบันทึก
รายการบันทึกคือเหตุการณ์ที่เกิดขึ้นภายในระบบ ไฟล์บันทึกสามารถประกอบด้วยข้อมูลชนิดต่าง ๆ และอาจมีข้อความที่มีโครงสร้างหรือข้อความอิสระที่มีการประทับเวลา รายการบันทึกอาจถูกสร้างขึ้นเป็นระยะ เป็นเหตุการณ์ในสภาพแวดล้อมสร้างรายการบันทึก ระบบภายใต้ภาระหนักโดยทั่วไปแล้วจะสร้างปริมาณบันทึกมากขึ้น
บันทึกใน Azure Monitor มีประโยชน์สําหรับการระบุสาเหตุที่แท้จริงของปัญหา ข้อมูลที่ Azure Monitor Logs รวบรวมจะถูกเก็บไว้ในพื้นที่ทํางาน Log Analytics อย่างน้อยหนึ่งรายการ ข้อมูลจะถูกดึงมาจากพื้นที่ทํางาน Log Analytics โดยใช้คิวรีบันทึก ซึ่งเป็นคําขอแบบอ่านอย่างเดียวเพื่อประมวลผลข้อมูลและส่งกลับผลลัพธ์ คิวรีบันทึกจะถูกเขียนใน Kusto Query Language (KQL)ซึ่งเป็นภาษาคิวรีเดียวกับที่ Azure Data Explorer ใช้
โน้ต
แอปพลิเคชันตัวอย่าง Azure Spring Apps ของคุณได้รับการตั้งค่ากับพื้นที่ทํางาน Log Analytics แล้ว สําหรับข้อมูลเพิ่มเติมเกี่ยวกับไวยากรณ์ KQL โปรดดูหน่วยสรุปที่ส่วนท้ายของการฝึกอบรมนี้
ใช้การวิเคราะห์รายการบันทึก
จริง ๆ แล้วมีสามวิธีในการเข้าถึงบันทึกของแอปพลิเคชันของคุณ: ที่เก็บข้อมูล Azure, Azure Events Hub และ Log Analytics เราจะมุ่งเน้นที่ Log Analytics ที่นี่เนื่องจากเป็นเรื่องธรรมดาที่สุดและรวมเข้ากับ Azure Spring Apps สําหรับการตรวจสอบเมตริก
สําคัญ
เวลาการนําเข้าข้อมูลบันทึกใน Azure Monitor อาจใช้เวลาสูงสุด 15 นาที ถ้าไม่พบข้อมูลใน Log Analytics อาจใช้เวลาเพิ่มเติมในการนําเข้าข้อมูลบันทึกของ Azure Spring Apps
เปิดพอร์ทัล Azure
เลือก Azure Spring Apps จากรายการของบริการ Azure
เลือกอินสแตนซ์ Azure Spring Apps ของคุณ
ถัดไป ภายใต้ส่วน การตรวจสอบ ให้เลือก บันทึก
ในกล่องค้นหา คิวรี:
หากต้องการดูรายการบันทึก ให้เรียกใช้คิวรีเช่น:
AppPlatformLogsforSpring | limit 50หากต้องการดูเมตริก ให้ป้อนคิวรีเช่น:
AzureMetrics | limit 50คุณสามารถค้นหาบันทึกของแอปพลิเคชันเฉพาะหรืออินสแตนซ์โดยการตั้งค่าเงื่อนไขตัวกรอง:
AppPlatformLogsforSpring | where ServiceName == "YourServiceName" and AppName == "YourAppName" and InstanceName == "YourInstanceName" | limit 50
วิเคราะห์บันทึกแอปพลิเคชัน
บันทึกของแอปพลิเคชันแสดงข้อมูลสําคัญและบันทึกอย่างละเอียดเกี่ยวกับสถานภาพ ประสิทธิภาพ และอื่นๆ ของแอปพลิเคชันของคุณ ในส่วนถัดไป เรามีคิวรีเพื่อช่วยให้คุณเข้าใจสถานะปัจจุบันและอดีตของแอปพลิเคชันของคุณ
แสดงบันทึกแอปพลิเคชันจาก Azure Spring Apps
เปิดพอร์ทัล Azure
เลือก Azure Spring Apps จากรายการของบริการ Azure
เลือกอินสแตนซ์ Azure Spring Apps ของคุณ
ถัดไป ภายใต้ส่วน การตรวจสอบ ให้เลือก บันทึก
ในกล่องค้นหา คิวรี:
หากต้องการตรวจสอบรายการบันทึกแอปพลิเคชันจาก Azure Spring Apps ให้เรียงลําดับตามเวลาด้วยบันทึกล่าสุดที่แสดงก่อน ให้เรียกใช้คิวรีต่อไปนี้:
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | sort by TimeGenerated descเมื่อต้องการตรวจทานรายการบันทึกที่ไม่ได้เรียงลําดับที่กล่าวถึงข้อผิดพลาดหรือข้อยกเว้น ให้เรียกใช้คิวรีต่อไปนี้:
AppPlatformLogsforSpring | project TimeGenerated , ServiceName , AppName , InstanceName , Log | where Log contains "error" or Log contains "exception"เมื่อต้องการสร้างแผนภูมิวงกลมที่แสดงข้อผิดพลาดจํานวนหนึ่ง และข้อยกเว้นที่บันทึกไว้โดยโปรแกรมประยุกต์ของคุณ ให้เรียกใช้แบบสอบถามต่อไปนี้:
AppPlatformLogsforSpring | where TimeGenerated > ago(1h) | where Log contains "error" or Log contains "exception" | summarize count_per_app = count() by AppName | sort by count_per_app desc | render piechart
การตรวจสอบฐานข้อมูล
การตรวจสอบข้อมูลเกี่ยวกับเซิร์ฟเวอร์ของคุณช่วยให้คุณแก้ไขปัญหาและปรับให้เหมาะสมสําหรับปริมาณงานของคุณ ฐานข้อมูล Azure สําหรับ MySQL มีเมตริกต่าง ๆ ที่ให้ข้อมูลเชิงลึกเกี่ยวกับลักษณะการทํางานของเซิร์ฟเวอร์ของคุณ
ในฐานข้อมูล Azure สําหรับ MySQL บันทึกคิวรีที่ช้าจะพร้อมใช้งานสําหรับผู้ใช้ การเข้าถึงบันทึกธุรกรรมไม่ได้รับการสนับสนุน คุณสามารถใช้ไฟล์บันทึกคิวรีที่ช้าเพื่อระบุปัญหาคอขวดด้านประสิทธิภาพสําหรับการแก้ไขปัญหาได้
ในแอปพลิเคชันตัวอย่างของเรา บันทึกคิวรีที่ช้าของคุณถูกตั้งค่าให้ไปป์ไปยังบันทึกการตรวจสอบ Azure ผ่านบันทึกการวินิจฉัย และคุณสามารถทําการวิเคราะห์คิวรีที่ช้าของคุณได้ ต่อไปนี้เป็นแบบสอบถามตัวอย่างเพื่อช่วยให้คุณเริ่มต้น/
สําคัญ
เวลาในการนําเข้าข้อมูล MySQL Log ใน Azure Monitor อาจใช้เวลาสูงสุด 30 นาที ถ้าไม่พบข้อมูลใน Log Analytics อาจใช้เวลาเพิ่มเติมในการนําเข้าข้อมูลบันทึก MySQL
ลงชื่อเข้าใช้พอร์ทัล Azure
เลือกฐานข้อมูล Azure ของคุณสําหรับเซิร์ฟเวอร์ MySQL ที่คุณใช้สําหรับ Azure Spring Apps ของคุณ
ถัดไป ภายใต้ส่วน การตรวจสอบ ให้เลือก บันทึก
ในกล่องค้นหา คิวรี:
เมื่อต้องการเรียกใช้คิวรีทั้งหมดที่ยาวกว่าหนึ่งวินาที ให้เรียกใช้คิวรีต่อไปนี้:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_sเมื่อต้องการแสดงรายการคิวรีที่ยาวที่สุดห้าคิวรีแรก ให้เรียกใช้คิวรีต่อไปนี้:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | order by query_time_d desc | take 5เพื่อสรุปคิวรีที่ช้าตามเวลาคิวรีต่ําสุด สูงสุด เฉลี่ย และค่าเบี่ยงเบนมาตรฐาน ให้เรียกใช้คิวรีต่อไปนี้:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | summarize count(), min(query_time_d), max(query_time_d), avg(query_time_d), stdev(query_time_d), percentile(query_time_d, 95) by LogicalServerName_sเมื่อต้องการกราฟการแจกแจงคิวรีที่ช้าบนเซิร์ฟเวอร์เฉพาะ ให้เรียกใช้คิวรีต่อไปนี้:
AzureDiagnostics | where Category == 'MySqlSlowLogs' | project TimeGenerated, LogicalServerName_s, event_class_s, start_time_t , query_time_d, sql_text_s | summarize count() by LogicalServerName_s, bin(TimeGenerated, 5m) | render timechart
คุณยังสามารถใช้บันทึกการตรวจสอบเพื่อติดตามกิจกรรมระดับฐานข้อมูลได้ ซึ่งมักใช้สําหรับการปฏิบัติตามกฎระเบียบ บันทึกการตรวจสอบถูกรวมเข้ากับบันทึกการวินิจฉัย Azure Monitor ในตัวอย่างของคุณ เราได้เปิดใช้งานบันทึกการตรวจสอบบนเซิร์ฟเวอร์ MySQL ของคุณ เพื่อให้คุณสามารถทําการวิเคราะห์เหตุการณ์ที่ผ่านการตรวจสอบของคุณเพิ่มเติมได้
นี่คือคิวรีตัวอย่างที่เรียกใช้บันทึก MySQL ทั่วไป:
AzureDiagnostics | where Category == 'MySqlAuditLogs' and event_class_s == "general_log" | project TimeGenerated, LogicalServerName_s, event_class_s, event_subclass_s, event_time_t, user_s , ip_s , sql_text_s | order by TimeGenerated desc
การตรวจสอบ UI
ถ้าคุณเพิ่มข้อมูลเชิงลึกของแอปพลิเคชันในสคริปต์หน้าของคุณ คุณจะได้รับการกําหนดเวลาของการโหลดหน้าและการเรียกใช้ AJAX จํานวน และรายละเอียดของข้อยกเว้นของเบราว์เซอร์และความล้มเหลวของ AJAX รวมถึงจํานวนผู้ใช้และเซสชัน คุณสามารถแบ่งส่วนเมตริกเหล่านี้ทั้งหมดตามหน้า ระบบปฏิบัติการไคลเอ็นต์ และเวอร์ชันของเบราว์เซอร์ ตําแหน่งที่ตั้งทางภูมิศาสตร์ และมิติอื่น ๆ ได้ คุณสามารถตั้งค่าการแจ้งเตือนเกี่ยวกับจํานวนความล้มเหลวหรือการโหลดหน้าช้าและการแทรกการเรียกการติดตามในรหัส JavaScript ของคุณ คุณสามารถติดตามวิธีใช้คุณลักษณะต่าง ๆ ของแอปพลิเคชันหน้าเว็บของคุณได้
คุณสามารถใช้ Application Insights กับหน้าเว็บใดก็ได้ คุณเพียงแค่เพิ่ม JavaScript ชิ้นสั้น ๆ ถ้าบริการเว็บของคุณคือ Java คุณสามารถใช้ SDK ฝั่งเซิร์ฟเวอร์กับ JavaScript SDK ฝั่งไคลเอ็นต์เพื่อทําความเข้าใจเกี่ยวกับประสิทธิภาพของแอปของคุณได้
โน้ต
สําหรับข้อมูลเพิ่มเติมเกี่ยวกับการตรวจสอบ UI โปรดดูหน่วยสรุปที่ส่วนท้ายของการฝึกอบรมนี้