การตรวจจับการทำงานผิดปกติของเครื่อง (Anomaly Detection) โดยใช้ข้อมูลบันทึกของเครื่อง (Log)


Share this article

ข้อมูลบันทึกของเครื่อง หรือ log มีความสำคัญในการวิเคราะห์ถึงความผิดปกติและปัญหาที่เกิดขึ้นกับเครื่องคอมพิวเตอร์ โดยข้อมูลใน log ประกอบด้วยข้อมูลเกี่ยวกับการติดต่อสื่อสารของคอมพิวเตอร์ เช่น แหล่งกำเนิด (Source) วันที่ เวลา และกิจกรรม/พฤติกรรมต่าง ๆ ที่เกิดขึ้น เป็นต้น ผู้พัฒนาระบบหรือฝ่ายดูแลระบบสามารถตรวจสอบและจำแนกความผิดปกติของระบบได้จาก log ที่เกิดขึ้นบนระบบคอมพิวเตอร์ ดังนั้นการตรวจจับความผิดปกติในการทำงานของระบบคอมพิวเตอร์จึงเป็นหนึ่งในเครื่องมือที่สำคัญในการป้องกันความเสียหายของเครื่องคอมพิวเตอร์ก่อนที่จะเกิดขึ้น แต่ในปัจจุบันระบบคอมพิวเตอร์และซอฟต์แวร์มีความซับซ้อนและมีจำนวนมากขึ้นเรื่อย ๆ ส่งผลให้จำนวน log เพิ่มขึ้นเป็นจำนวนมหาศาลโดยเฉพาะในระบบศูนย์ข้อมูล (Data Center) ทำให้ผู้ดูแลระบบไม่สามารถเฝ้าตรวจสอบ log ทีละบรรทัดเหมือนในอดีตได้ ด้วยเหตุนี้งานวิจัยหลายๆงานในปัจจุบันได้พัฒนา หลักการของการเรียนรู้ด้วยเครื่อง (Machine learning) เพื่อทำหน้าที่ตรวจหาความผิดปกติของระบบจาก log แบบอัตโนมัติแทนการตรวจสอบแบบเดิม การเตรียม log เพิ่อใช้ในการทำ Anomaly Detection แบ่งออกเป็น 3 ขั้นตอน (ดังรูปที่ 1) คือ การแปลง log การสร้าง matrix ของข้อมูล และ การทำ log mining

 

รูปที่ 1 ขั้นตอนการทำ Anomaly Detection

 

การสร้างโมเดลการเรียนรู้ด้วยเครื่อง (Machine learning) ส่วนใหญ่ต้องการข้อมูลอินพุต (input log) อยู่ในรูปแบบเชิงโครงสร้าง (structured input) นั่นคือ log ที่มีการจัดเรียงอย่างมีรูปแบบและโครงสร้างของข้อมูลที่ชัดเจน สามารถนำมาใช้วิเคราะห์ได้โดยตรง แต่ข้อมูล log ส่วนใหญ่อยู่ในรูปแบบที่ไม่มีโครงสร้างแน่นอน (unstructured input) นั่นคือ ข้อมูลที่ไม่มีแบบแผนซึ่งขึ้นอยู่กับผู้พัฒนาระบบหรือแอพพลิเคชั่นนั้น ๆ ดังนั้นหลังจากการเก็บรวบรวม log ทั้งหมดจึงจำเป็นต้องมีการแปลง log ให้อยู่ในรูปแบบที่มีโครงสร้างก่อนเป็นอันดับแรก

ใน unstructured log จะมีข้อมูล 2 ส่วนหลัก ประกอบด้วย ส่วนที่เป็นค่าคงที่ (constant) และส่วนที่เป็นค่าตัวแปร (variable) เช่น ip address หรือ port เป็นต้น โดยการการแปลง log จะแบ่งข้อมูลออกเป็น log events ซึ่งใช้เก็บส่วนที่เป็นค่าคงที่ของ log และ structured log ซึ่งใช้เก็บค่าตัวแปรของ ดังแสดงในรูปที่ 2 ในขั้นตอนนี้เปรียบเสมือนการทำ Feature Engineering หรือ การ pre-processing ข้อมูลในกระบวนการวิเคราะห์ข้อมูลที่มีความสำคัญเป็นอย่างมาก

 

รูปที่ 2 การแปลงข้อมูลอินพุตจาก unstructured log เป็น structured log [1]

โดยได้มีงานวิจัยเกี่ยวกับการแปลง log เป็นจำนวนมาก แต่ละงานวิจัยได้นำเสนอวิธีที่แตกต่างกันไป เช่น Frequent Pattern Mining, Iterative Partitioning, Clustering, Longest Common Subsequence และ Evolutionary Algorithms ซึ่งแต่ละวิธีมีข้อดีข้อเสียที่ต่างกันไป ณ ขณะนี้ยังไม่มีวิธีใดที่เหมาะสมกับ log ทุกประเภท ดังนั้นการเลือกใช้การแปลง log ด้วยวิธีใดนั้นขึ้นอยู่กับประเภทของ log ที่จะถูกแปลงและสถาปัตยกรรมของระบบ (system architecture) นั้น ๆ

หลังจากที่แปลง log ทุกบรรทัดให้อยู่ในรูปของ log events และ structured log เรียบร้อยแล้ว จะเข้าสู่กระบวนการสร้าง matrix เพื่อให้ log mining algorithm สามารถนำไปใช้ โดยจะนำส่วนของ log event มาเรียงกันตามตัวอย่างในรูปที่ 3 ตัวเลขในแต่ละบรรทัดแสดงถึงลำดับของ log event ที่เกิดขึ้นทั้งหมดจากการแปลง log โดยหนึ่งบรรทัดแสดงถึงรอบของการทำงานที่เสร็จสิ้นสมบูรณ์ของการทำงานของคอมพิวเตอร์

 

รูปที่ 3 การสร้าง matrix เพื่อสร้างลำดับของการเกิด log event ของการทำงานของคอมพิวเตอร์ [2]

เมื่อสร้าง matrix ของ log event ตามรูปที่ 3 แล้ว ก็จะเข้าส่วนกระบวนการทำ log mining โดยการนำหลักการของการเรียนรู้ด้วยเครื่อง เข้ามาประยุกต์ใช้กับการตรวจจับความผิดปกติของการทำงานของระบบได้หลายวิธี เช่น การใช้เทคนิค Principal Component Analysis (PCA) ในงานวิจัย [3] และในงานวิจัย [4] ได้นำโมเดลทางคณิตศาสตร์ที่ชื่อว่า มาร์คอฟเชน (Markov Chain) มาใช้ในการสร้างโมเดลที่เป็นตัวแทนของ log ที่ได้จากระบบปกติ (Normal) ซึ่งโมเดลจะจดจำรูปแบบลำดับการเกิดขึ้นของ log เพื่อที่จะใช้ในการตรวจจับลำดับการเกิดขึ้นของ log ที่ผิดปกติในระบบที่ทำงานแบบเรียลไทม์ (Real-time) ทั้งหมดนี้เป็นการตรวจจับความผิดปกติของระบบซึ่งจะช่วยลดโอกาสที่จะเกิดความเสียหายที่ไม่พึงประสงค์ต่อระบบ อีกทั้งยังช่วยลดภาระการทำงานของผู้ดูแลระบบ รวมถึงช่วยให้ระบบทำงานได้อย่างมีประสิทธิภาพสูงสุดอีกด้วย

 

Reference:

[1] He, P., Zhu, J., He, S., Li, J., & Lyu, M. R., 2018, “Towards Automated Log Parsing for Large-Scale Log Data Analysis”, IEEE Transactions on Dependable and Secure Computing, pp. 931–944.

[2] Du, M., Li, F., Zheng, G., and Srikumar, V., 2017, “DeepLog” Proceedings of the 2017 ACM SIGSAC Conference on Computer and Communications Security – CCS 17.

[3] Xu, Wei, et al. “Detecting large-scale system problems by mining console logs.” Proceedings of the ACM SIGOPS 22nd symposium on Operating systems principles. ACM, 2009.

[4] Haque, Abida, Alexandra DeLucia, and Elisabeth Baseman. “Markov Chain Modeling for Anomaly Detection in High Performance Computing System Logs.” Proceedings of the Fourth International Workshop on HPC User Support Tools. ACM, 2017.

READ  Top Data Analytics Trends For 2020

ลงทะเบียนรับข่าวสาร

ไม่พลาดทุกการอัพเดทจาก Big Data Experience Center

Big Data Experience Center (BX)

ชั้น 14 อาคาร Knowledge Exchange Center (KX)
110/1 ถนนกรุงธนบุรี, แขวงบางลำภูล่าง เขตคลองสาน กรุงเทพฯ 10600
อีเมล์: [email protected]
Tel: 097-941-9889

ABOUT

SERVICES