วันเสาร์ที่ 23 พฤษภาคม พ.ศ. 2569

Monitoring vs Observability ตอนที่ 2

      สวัสดีครับทุกท่าน สำหรับบทความนี้จะยังคงเป็นเรื่องราวต่อเนื่องมาจากที่ผมได้นำเสนอไปก่อนหน้านี้ครับ นั่นก็คือเรื่องราวของการ Monitoring และ Observability  โดยในบทความก่อนหน้านี้ผมได้อธิบายถึงที่มาที่ไปรวมถึงความแตกต่างระหว่าง Monitoring และ Observability ซึ่งในความเป็นจริงแล้วจะต้องดำเนินการร่วมกันครับ และที่สำคัญคือเรื่องราวเหล่านี้ที่ผมกำลังนำเสนอทุกท่านอยู่จนถึงบทความนี้จะเป็นการปูทางเข้าสู่การ Monitoring  และ  Observability โดยใช้ Service ตัวหนึ่งใน Microsoft Azure ซึ่งเป็น Service ที่มีความสำคัญตัวนึงที่เกี่ยวข้องกับเรื่องราวของ Cybersecurity โดย Service ดังกล่าวนี้มีความสามารถในการ Monitoring รวมถึง Observability Workloads ต่างๆ ใน IT Environments (Hybrid และ Multi-Cloud)  ขององค์กรครับ แต่ก่อนจะไปถึง Service ดังกล่าวนี้ ผมอยากจะอธิบายเพิ่มเติมเกี่ยวกับคอนเซปและรายละเอียดของ Monitoring และ Observability อีกซักนิดครับ และเพื่อไม่ให้เป็นการเสียเวลาเรามาว่ากันต่อสำหรับเรื่องราวของ Monitoring และ Observability ครับ












โดยเริ่มด้วยส่วนประกอบหลักๆ สำหรับการ Monitoring รวมถึง Observability ครับ นั่นก็คือ การรวบรวมข้อมูลหรือ Collected Data จาก Workloads ต่างๆ ใน IT Environments (ครอบคลุมทั้ง Hybrid และ Multi-Cloud) เช่น VMs, Apps, Networks, และอื่นๆ ครับ ซึ่งจะต้องมีการวางแผนและออกแบบก่อนว่า เรามีความต้องการที่จะทำการรวบรวมข้อมูลดังกล่าวนี้จาก Workloads หรือ IT Assets ใดบ้าง, Workloads หรือ IT Assets ดังกล่าวนั้นอยู่ที่ใด (On-Premise หรือ Cloud), รูปแบบของ Workloads, Roles ของ Workloads ดังกล่าวนั้นคืออะไร เช่น Apps, Databases, และอื่นๆ ครับ


และสำหรับข้อมูลที่ถูกรวบรวมมานั้น (Collected Data) จะเป็นข้อมูลที่เกี่ยวข้องและถูกนำมาใช้ในเรื่องของ Security Operations เท่านั้นนะครับ จะไม่เกี่ยวข้องกับขัอมูลขององค์กรครับ โดยข้อมูลที่ว่านี้โดยหลักๆ จะมีอยู่ด้วยกัน 2 ชนิด คือ:


1. Metric Data คือ ข้อมูลที่เป็นตัวเลข ที่มาจากการใช้งาน System Resources ของ Workloads นั้นๆ ตัวอย่างของ System Resources เช่น Processor, Memory, เป็นต้น เพราะข้อมูลชนิดนี้มีประโยชน์ในการที่นำเอามาตรวจสอบ, วิเคราะห์, และอื่นๆ เพื่อดูรูปแบบการใช้งาน (Usage Patterns), แนวโน้มการใช้งาน System Resources, และอื่นๆ

2. Log Data คือ ข้อมูลที่เป็นการบันทึกเหตุการณ์หรือ Activities ต่างๆ ที่เกี่ยวข้องกับ Workloads หรือ IT Assets นั้น โดยข้อมูลชนิดนี้มีประโยชน์ในการค้นหาหรือติดตามในกรณีที่เราต้องการค้นหาดูว่าช่วงที่ผ่านมานั้นมีเหตุการณ์ใดเกิดขึ้นบ้าง เพื่อนำมาประกอบในการติดตามและวิเคราะห์เพื่อดำเนินการต่อไปครับ

จากนั้นสิ่งที่เราจะต้องวางแผนและออกแบบต่อมาคือ ที่ที่เก็บ Collected Data  หรือที่เราเรียกว่า "Data Repository" ว่าจะเก็บไว้ที่ไหน โดยที่ดังกล่าวนี้จะต้องรองรับการค้นหาข้อมูล (Querying Data), และเรื่องของระยะเวลาในการเก็บรักษาข้อมูล (Data Retention) ครับ รวมถึงการพิจารณาหรือดูว่าจะมี Tools หรือ Solutions ใด ที่จะต้องมา Integrate และใช้งานที่ที่เก็บข้อมูลดังกล่าวนี้ด้วยหรือไม่ครับ

สำหรับในช่วงที่ผ่านมาจนถึงปัจจุบันมี Tools หรือ Solutions สำหรับการทำ Monitoring และ Observability ให้เลือกมากมายครับ แต่โดยหลักๆ ควรจะต้องมีความสามารถเหล่านี้หรือมากกว่านี้ครับ


- Log Management

- Application Performance Monitoring (APM)

- Network Monitoring

- Service Monitoring

- อื่นๆ 


นอกจากนี้ความสามารถข้างต้นแล้ว Tools หรือ Solutions ดังกล่าวนี้ควรจะมีความสามารถในการตรวจสอบและวิเคราะห์เชิงลึกหรือโดยละเอียด (Insights) แบบ Real-Time เพื่อช่วยองค์กรหรือเราในการตรวจสอบ (Monitor) เหตุการณ์หรือ Activities ต่างๆ, สิ่งผิดปรกติหรือสิ่งที่น่าสงสัย, และอื่นๆ ที่อาจส่งผลกระทบกับ Performance และ Availability โดยการตรวจสอบตามคอนเซปดังกล่าวนี้จะเป็นการตรวจสอบแบบเฉพาะเจาะจงกับ Workloads หรือ IT Assets นั้นไม่ได้เป็นการตรวจแบบทั่วๆไป ยกตัวอย่าง เช่น Workloads ที่เป็น Web Apps การตรวจสอบในคอนเซปนี้จะไม่ได้เป็นการตรวจสอบเพียงแค่ Processor, Memory, Disk, เป็นต้น แต่จะเป็นการเข้าไปตรวจสอบและวิเคราะห์เชิงลึก (Insights) ของเฉพาะ Workloads (Specific Workloads) เพื่อทำให้เราเข้าใจถึงการทำงานตลอดจนส่วนประกอบต่างๆ ที่เกี่ยวข้องกับ Apps ว่าทำงานเป็นอย่างไร และมีจุดใดที่มีอาจจะก่อให้เกิดปัญหาและส่งผลกระทบการทำงานและการให้บริการของ Apps ดังกล่าวนี้ ที่มีผู้ใช้งานใช้งานอยู่ครับ โดยความสามารถดังกล่าวนี้ (Real-Time Insights) นี้มีความสำคัญมากในการช่วยองค์กรในการตรวจสอบ Performance, Availability, และ Behavior ของ Workloads ต่างๆ แบบเฉพาะเจาะจงกับ Workloads นั้นๆ ครับ และจากความสามารถและคอนเซปดังกล่าวนี้ส่งผลทำให้การ Monitoring และ Observability สามารถช่วยในการ Detect และ Identify Root Causes, Optimize Performance & Availability, ลดเรื่องของ MTTD (Mean Time To Detect) และ MTTR (Mean Time To Recovery), และอื่นๆ ครับ


ประมาณนี้ครับสำหรับตอนต่อไปผมจะพาทุกท่านไปทำความรู้จักกับ Service ใน Microsoft Azure ที่มีความสามารถในการ Monitoring และ Observability ครับผม.....

วันพุธที่ 20 พฤษภาคม พ.ศ. 2569

Monitoring vs Observability ตอนที่ 1

      สวัสดีครับทุกท่าน กลับมาพบกันอีกเช่นเคยครับ  และยังคงนำเสนอเรื่องราวเกี่ยวกับ Cybersecurity เหมือนเดิมครับ และสำหรับบทความนี้อยากจะนำเสนอเรื่องหนึ่งที่มีความสำคัญกับทุกๆ องค์กรที่มีการนำเอา Cloud เข้ามาประยุกต์ใช้งานในองค์กร นั่นก็คือ เรื่องของการตรวจสอบการทำงานของ Workloads หรือ Resources ต่างๆ ว่ามี Performance ตลอดจนรายละเอียดต่างๆ รวมถึงเรื่องของความปลอดภัยหรือ Security ครับ ดังนั้นหลายๆ องค์กรจึงเตรียมความพร้อมในการดำเนินการดังกล่าว 


และจากประเด็นข้างต้นนี่เองครับ จึงเป็นนำเอาคำศัพท์ (Terminology) ต่างๆ เข้ามาเกี่ยวข้องและผมอยากจะอธิบายคำศัพท์ซัก 2 คำที่มีความสำคัญและน่าสนใจครับ และผมเชื่อว่ายังมีอีกหลายๆ ท่านที่อาจจะยังไม่ทราบและไม่เข้าใจครับ นั่นก็คือคำว่า "Monitoring" กับ "Observability" ครับ ถ้าแปลความหมายตรงตัวมันคือ การตรวจสอบและการสังเกตครับ และถ้าดูเผินๆ ก็จะมีความคล้ายกัน นั่นก็คือ การที่เราจะเข้าไปดำเนินการตรวจสอบ Workloads หรือ Resources ต่างๆ ที่อยู่ใน IT Environments (Hybrid และ Multi-Cloud) ว่าเป็นอย่างไร เช่น เรื่องของ Performance, Availability, รวมถึง Security ครับ


















โดยเริ่มจาก Monitoring ครับ, คือ กระบวนหรือขั้นตอนในการรวบรวมข้อมูล (Collecting Data) เกี่ยวกับ Performance (CPU, Memory, Network, เป็นต้น), Health, และอื่นๆ ของ Workloads หรือ Resources ต่างๆ เช่น Virtual Machines, Apps, และอื่นๆ โดยมีวัตถุประสงค์ คือ เพื่อทำ Detect และ Respond เมื่อมีสิ่งผิดปรกติหรือมีการเปลี่ยนแปลงบางอย่างที่ผิดปรกติเกิดขึ้น โดยการ Monitoring โดยปรกติหรือส่วนใหญ่ก็จะเกี่ยวข้องกับการกำหนดค่าต่างๆ กับการ Monitoring เช่น การกำหนดค่า Thresholds, Alerts, และ Notifications เพื่อทำการแจ้งกับผู้ที่ดำเนินการหรือผู้ที่เกี่ยวข้องเมื่อมีสิ่งผิดปรกติเกิดขึ้น


ส่วน Observability, คือ ความสามารถในการได้รับรู้และเข้าใจเกี่ยวกับ Workloads, Resources หรือระบบต่างๆ โดยละเอียดว่าเป็นอย่างไร โดยมีวัตถุประสงค์ คือ การให้ข้อมูลเชิงลึกและโดยละเอียดของ Workloads, Resources, หรือระบบต่างๆ เช่น ส่วนประกอบต่างๆ ที่เกี่ยวข้อง, ความสัมพันธ์ของส่วนประกอบต่างๆ, และอื่นๆ เพื่อให้ผู้ที่เกี่ยวข้อง เช่น Security Operators, Developers, System Engineers, เป็นต้น สามารถเห็นภาพโดยละเอียดและเข้าใจ เพื่อใช้ประกอบในการตัดสินใจว่า จะทำการแก้ไข, ปรับปรุง, และอื่นๆ เพื่อทำการ Optimize ต่อไป  โดยปรกติ Observability จะเกี่ยวข้องกับการ Collecting Data จาก Sources (Workloads, Resources, และอื่นๆ) เช่น Metric Data, Log Data, และอื่นๆ เพื่อนำมาใช้ในการพิจารณารวมถึงการสำรวจและวิเคราะห์ข้อมูลเหล่านี้


















ความแตกต่างหลักระหว่าง Monitoring และ Observability

การ Monitoring โดยปรกติจะโฟกัสเรื่องของการ Detecting และ Responding ในขณะที่ Observability จะโฟกัสที่การเตรียมข้อมูลเชิงลึกของ Workloads, Resources, หรือระบบนั้นๆ เพื่อก่อให้เกิดความเข้าใจและเห็นภาพทั้งหมด เพื่อนำไปใช้สำรวจและวิเคราะห์เพื่อทำการตัดสินใจว่าจะดำเนินการอย่างไรต่อไป นอกจากนี้แล้ว Monitoring ยังเกี่ยวข้องกับการกำหนดค่าต่างๆ ในการค้นหาสิ่งผิดปรกติหรือสิ่งที่น่าสงสัย โดยจะเกี่ยวข้องกับการกำหนดค่า Settings ต่างๆ เช่น Thresholds, Alerts, เป็นต้น ในขณะที่ Observability จะเน้นไปที่การ Collecting Data จาก IT Assets (Workloads, Resources, หรือระบบต่างๆ) เพื่อจะนำเอาข้อมูลเหล่านี้ (Metrics, Logs, Dumps, และอื่นๆ) มาทำสำรวจและวิเคราะห์เพื่อตัดสินใจว่าจะทำการปรับปรุง, เปลี่ยนแปลง, และอื่นๆ อย่างไร เพื่อทำให้เกิดความปลอดภัยมากขึ้น อีกสิ่งหนึ่งที่มีความแตกต่างอีก คือ ระยะเวลา (Timeframe) สำหรับ Monitoring โดยปรกติหรือทั่วๆไปจะเน้นไปที่การตรวจสอบแบบ Real-Time หรือระยะเวลาสั้นๆ เช่น 1-2 สัปดาห์เป็นอย่างน้อยขึ้นอยู่กับความต้องการ ในขณะที่ Observability จะใช้เวลาโดยรวมนานกว่าการ Monitoring เพราะจะต้องทำการวิเคราะห์เพื่อทำการ Identify Trends หรือแนวโน้มต่างๆ รวมถึง Patterns ด้วยครับ


และนี่คือเรื่องราวเริ่มต้นเกี่ยวกับ Monitoring และ Observability ครับ โปรดติดตามตอนต่อไปครับผม.....