ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

ให้เราระลึกว่า Elastic Stack นั้นใช้ฐานข้อมูล Elasticsearch ที่ไม่เกี่ยวข้อง, เว็บอินเตอร์เฟสของ Kibana รวมถึงตัวรวบรวมข้อมูลและโปรเซสเซอร์ (Logstash ที่มีชื่อเสียงที่สุด, Beats, APM และอื่นๆ) หนึ่งในการเพิ่มที่ดีในกลุ่มผลิตภัณฑ์ทั้งหมดที่อยู่ในรายการคือการวิเคราะห์ข้อมูลโดยใช้อัลกอริธึมการเรียนรู้ของเครื่อง ในบทความเราเข้าใจว่าอัลกอริทึมเหล่านี้คืออะไร กรุณาอยู่ใต้แมว

การเรียนรู้ของเครื่องเป็นคุณสมบัติแบบชำระเงินของ Shareware Elastic Stack และรวมอยู่ใน X-Pack หากต้องการเริ่มใช้งาน เพียงเปิดใช้งานการทดลองใช้ 30 วันหลังการติดตั้ง หลังจากช่วงทดลองใช้งานสิ้นสุดลง คุณสามารถขอรับการสนับสนุนเพื่อขยายเวลาหรือซื้อการสมัครสมาชิกได้ ค่าใช้จ่ายในการสมัครสมาชิกไม่ได้คำนวณตามปริมาณข้อมูล แต่ขึ้นอยู่กับจำนวนโหนดที่ใช้ ไม่ แน่นอนว่าปริมาณข้อมูลส่งผลต่อจำนวนโหนดที่ต้องการ แต่แนวทางการออกใบอนุญาตนี้ก็ยังมีความมีมนุษยธรรมมากกว่าเมื่อเทียบกับงบประมาณของบริษัท หากไม่ต้องการผลผลิตสูง คุณก็ประหยัดเงินได้

ML ใน Elastic Stack เขียนด้วยภาษา C++ และทำงานภายนอก JVM ซึ่ง Elasticsearch เองก็ทำงานอยู่ นั่นคือกระบวนการ (หรือที่เรียกว่าการตรวจจับอัตโนมัติ) จะใช้ทุกสิ่งที่ JVM ไม่ได้กลืนลงไป บนแท่นสาธิต สิ่งนี้ไม่สำคัญนัก แต่ในสภาพแวดล้อมการใช้งานจริง สิ่งสำคัญคือต้องจัดสรรโหนดแยกกันสำหรับงาน ML

อัลกอริธึมการเรียนรู้ของเครื่องแบ่งออกเป็นสองประเภท - กับอาจารย์ и โดยไม่มีครู. ใน Elastic Stack อัลกอริธึมจะอยู่ในหมวดหมู่ “ไม่ได้รับการดูแล” โดย การเชื่อมโยงนี้ คุณสามารถดูเครื่องมือทางคณิตศาสตร์ของอัลกอริทึมการเรียนรู้ของเครื่องได้

เพื่อทำการวิเคราะห์ อัลกอริธึมการเรียนรู้ของเครื่องจะใช้ข้อมูลที่จัดเก็บไว้ในดัชนี Elasticsearch คุณสามารถสร้างงานสำหรับการวิเคราะห์ได้ทั้งจากอินเทอร์เฟซ Kibana และผ่าน API หากคุณทำสิ่งนี้ผ่าน Kibana คุณไม่จำเป็นต้องรู้บางสิ่ง ตัวอย่างเช่น ดัชนีเพิ่มเติมที่อัลกอริทึมใช้ระหว่างการดำเนินการ

ดัชนีเพิ่มเติมที่ใช้ในกระบวนการวิเคราะห์.ml-state — ข้อมูลเกี่ยวกับแบบจำลองทางสถิติ (การตั้งค่าการวิเคราะห์)
.ml-anomalies-* — ผลลัพธ์ของอัลกอริทึม ML
.ml-notifications — การตั้งค่าสำหรับการแจ้งเตือนตามผลการวิเคราะห์

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

โครงสร้างข้อมูลในฐานข้อมูล Elasticsearch ประกอบด้วยดัชนีและเอกสารที่เก็บไว้ในนั้น เมื่อเปรียบเทียบกับฐานข้อมูลเชิงสัมพันธ์ ดัชนีสามารถเปรียบเทียบได้กับสคีมาฐานข้อมูล และเอกสารกับบันทึกในตาราง การเปรียบเทียบนี้มีเงื่อนไขและมีไว้เพื่อลดความซับซ้อนในการทำความเข้าใจเนื้อหาเพิ่มเติมสำหรับผู้ที่เคยได้ยินเกี่ยวกับ Elasticsearch เท่านั้น

ฟังก์ชันเดียวกันนี้สามารถใช้งานได้ผ่าน API เช่นเดียวกับผ่านทางอินเทอร์เฟซบนเว็บ ดังนั้นเพื่อความชัดเจนและความเข้าใจในแนวคิด เราจะแสดงวิธีกำหนดค่าผ่าน Kibana ในเมนูด้านซ้ายมีส่วน Machine Learning ที่คุณสามารถสร้างงานใหม่ได้ ในอินเทอร์เฟซ Kibana ดูเหมือนว่ารูปภาพด้านล่าง ตอนนี้เราจะวิเคราะห์งานแต่ละประเภทและแสดงประเภทของการวิเคราะห์ที่สามารถสร้างได้ที่นี่

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

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

เมตริกเดียว

การวิเคราะห์การเปลี่ยนแปลงในเมตริกเดียวคือสิ่งที่ง่ายที่สุดที่สามารถทำได้ที่นี่ หลังจากคลิกสร้างงาน อัลกอริธึมจะค้นหาความผิดปกติ

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

ใน การรวมตัว คุณสามารถเลือกแนวทางในการค้นหาความผิดปกติได้ เช่น เมื่อใด นาที ค่าที่ต่ำกว่าค่าทั่วไปจะถือว่ามีความผิดปกติ กิน สูงสุด ค่าเฉลี่ยสูง ต่ำ ค่าเฉลี่ย แตกต่าง และคนอื่น ๆ. สามารถดูคำอธิบายฟังก์ชันทั้งหมดได้ ลิงค์.

ใน สนาม ระบุฟิลด์ตัวเลขในเอกสารที่เราจะทำการวิเคราะห์

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

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

ระยะเวลาของข้อมูลที่รวบรวมเป็นสิ่งสำคัญที่ส่งผลต่อประสิทธิผลของการวิเคราะห์ ในระหว่างการวิเคราะห์ อัลกอริธึมจะระบุช่วงเวลาที่เกิดซ้ำ คำนวณช่วงความเชื่อมั่น (เส้นพื้นฐาน) และระบุความผิดปกติ - การเบี่ยงเบนที่ผิดปกติจากพฤติกรรมปกติของหน่วยเมตริก ตัวอย่างเช่น:

ข้อมูลพื้นฐานที่มีข้อมูลขนาดเล็ก:

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

เมื่ออัลกอริธึมมีบางอย่างที่ต้องเรียนรู้ เส้นพื้นฐานจะเป็นดังนี้:

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

หลังจากเริ่มงานแล้ว อัลกอริธึมจะกำหนดการเบี่ยงเบนที่ผิดปกติจากบรรทัดฐานและจัดอันดับตามความน่าจะเป็นของความผิดปกติ (สีของป้ายกำกับที่เกี่ยวข้องจะแสดงอยู่ในวงเล็บ):

คำเตือน (สีน้ำเงิน): น้อยกว่า 25
ผู้เยาว์ (สีเหลือง): 25-50
เมเจอร์ (สีส้ม): 50-75
วิกฤต (สีแดง): 75-100

กราฟด้านล่างแสดงตัวอย่างความผิดปกติที่พบ

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

ที่นี่คุณสามารถดูหมายเลข 94 ซึ่งบ่งบอกถึงความน่าจะเป็นของความผิดปกติ ชัดเจนว่าเนื่องจากค่าใกล้ 100 แสดงว่าเรามีความผิดปกติ คอลัมน์ด้านล่างกราฟแสดงความน่าจะเป็นที่ดูถูกเล็กน้อยที่ 0.000063634% ของค่าเมตริกที่ปรากฏตรงนั้น

นอกจากการค้นหาความผิดปกติแล้ว คุณยังสามารถเรียกใช้การคาดการณ์ใน Kibana ได้อีกด้วย ทำได้ง่ายและจากมุมมองเดียวกันกับปุ่มความผิดปกติ พยากรณ์ ที่มุมขวาบน

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

พยากรณ์ล่วงหน้าสูงสุด 8 สัปดาห์ แม้ว่าคุณจะต้องการจริงๆ แต่การออกแบบก็ไม่สามารถทำได้อีกต่อไป

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

ในบางสถานการณ์ การคาดการณ์จะมีประโยชน์มาก เช่น เมื่อตรวจสอบโหลดของผู้ใช้บนโครงสร้างพื้นฐาน

มัลติเมตริก

มาดูฟีเจอร์ ML ถัดไปใน Elastic Stack กัน - การวิเคราะห์เมตริกหลายตัวในชุดเดียว แต่นี่ไม่ได้หมายความว่าจะมีการวิเคราะห์การพึ่งพาตัวชี้วัดหนึ่งต่ออีกตัวชี้วัดหนึ่ง ซึ่งเหมือนกับเมตริกเดี่ยว แต่มีหลายเมตริกบนหน้าจอเดียวเพื่อให้เปรียบเทียบผลกระทบของเมตริกหนึ่งต่ออีกเมตริกหนึ่งได้อย่างง่ายดาย เราจะพูดถึงการวิเคราะห์การพึ่งพาหน่วยวัดหนึ่งต่ออีกหน่วยวัดหนึ่งในส่วนประชากร

หลังจากคลิกที่สี่เหลี่ยมที่มี Multi Metric หน้าต่างพร้อมการตั้งค่าจะปรากฏขึ้น ลองดูรายละเอียดเพิ่มเติม

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

ขั้นแรก คุณต้องเลือกฟิลด์สำหรับการวิเคราะห์และการรวมข้อมูล ตัวเลือกการรวมที่นี่จะเหมือนกับเมตริกเดี่ยว (สูงสุด ค่าเฉลี่ยสูง ต่ำ ค่าเฉลี่ย แตกต่าง และคนอื่น ๆ). นอกจากนี้ หากต้องการ ข้อมูลจะถูกแบ่งออกเป็นฟิลด์ใดฟิลด์หนึ่ง (field แยกข้อมูล). ในตัวอย่างนี้ เราทำสิ่งนี้ตามฟิลด์ รหัสสนามบินต้นทาง. โปรดสังเกตว่ากราฟเมตริกทางด้านขวาจะแสดงเป็นกราฟหลายกราฟ

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

สนาม ฟิลด์สำคัญ (ผู้มีอิทธิพล) ส่งผลโดยตรงต่อความผิดปกติที่ตรวจพบ ตามค่าเริ่มต้นจะมีค่าอย่างน้อยหนึ่งค่าที่นี่เสมอ และคุณสามารถเพิ่มค่าเพิ่มเติมได้ อัลกอริธึมจะคำนึงถึงอิทธิพลของฟิลด์เหล่านี้เมื่อวิเคราะห์และแสดงค่าที่ "มีอิทธิพล" มากที่สุด

หลังจากเปิดตัว บางสิ่งเช่นนี้จะปรากฏในอินเทอร์เฟซ Kibana

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

นี่คือสิ่งที่เรียกว่า แผนที่ความร้อนของความผิดปกติสำหรับแต่ละค่าฟิลด์ รหัสสนามบินต้นทางซึ่งเราได้ระบุไว้ใน แยกข้อมูล. เช่นเดียวกับ Single Metric สีจะบ่งบอกถึงระดับความเบี่ยงเบนที่ผิดปกติ สะดวกในการทำการวิเคราะห์ที่คล้ายกัน เช่น บนเวิร์กสเตชันเพื่อติดตามการอนุญาตจำนวนมากอย่างน่าสงสัย เป็นต้น เราเขียนแล้ว เกี่ยวกับเหตุการณ์ที่น่าสงสัยใน EventLog Windowsซึ่งสามารถรวบรวมและวิเคราะห์ได้ที่นี่เช่นกัน

ด้านล่างแผนที่ความร้อนคือรายการความผิดปกติ คุณสามารถสลับไปใช้มุมมองเมตริกเดี่ยวเพื่อการวิเคราะห์โดยละเอียดได้

ประชากร

หากต้องการค้นหาความผิดปกติระหว่างความสัมพันธ์ระหว่างตัววัดต่างๆ Elastic Stack มีการวิเคราะห์ประชากรแบบพิเศษ ด้วยความช่วยเหลือที่คุณสามารถค้นหาค่าที่ผิดปกติในประสิทธิภาพของเซิร์ฟเวอร์เมื่อเปรียบเทียบกับค่าอื่น ๆ เช่น เมื่อจำนวนคำขอไปยังระบบเป้าหมายเพิ่มขึ้น

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

ในภาพประกอบนี้ ฟิลด์ประชากรจะระบุค่าที่เกี่ยวข้องกับเมทริกที่วิเคราะห์แล้ว ในกรณีนี้คือชื่อของกระบวนการ ด้วยเหตุนี้ เราจะเห็นว่าโหลดของโปรเซสเซอร์แต่ละกระบวนการมีอิทธิพลต่อกันอย่างไร

โปรดทราบว่ากราฟของข้อมูลที่วิเคราะห์จะแตกต่างจากกรณีที่มีเมตริกเดี่ยวและหลายเมตริก สิ่งนี้ทำใน Kibana โดยการออกแบบเพื่อปรับปรุงการรับรู้การกระจายค่าของข้อมูลที่วิเคราะห์

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

กราฟแสดงให้เห็นว่ากระบวนการทำงานผิดปกติ ความเครียด (โดยวิธีการสร้างโดยยูทิลิตี้พิเศษ) บนเซิร์ฟเวอร์ ปอยปูซึ่งมีอิทธิพล (หรือกลายเป็นผู้มีอิทธิพล) ให้เกิดความผิดปกตินี้

ระดับสูง

การวิเคราะห์พร้อมการปรับแต่งอย่างละเอียด ด้วยการวิเคราะห์ขั้นสูง การตั้งค่าเพิ่มเติมจะปรากฏใน Kibana หลังจากคลิกที่ไทล์ขั้นสูงในเมนูการสร้าง หน้าต่างพร้อมแท็บนี้จะปรากฏขึ้น แท็บ รายละเอียดของงาน เราข้ามไปโดยตั้งใจ มีการตั้งค่าพื้นฐานที่ไม่เกี่ยวข้องโดยตรงกับการตั้งค่าการวิเคราะห์

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

В สรุป_count_field_name หรือคุณสามารถระบุชื่อของฟิลด์จากเอกสารที่มีค่ารวมได้ ในตัวอย่างนี้ คือจำนวนเหตุการณ์ต่อนาที ใน Category_field_name ระบุชื่อและค่าของฟิลด์จากเอกสารที่มีค่าตัวแปรบางส่วน การใช้มาสก์ในช่องนี้ทำให้คุณสามารถแบ่งข้อมูลที่วิเคราะห์ออกเป็นส่วนย่อยได้ ให้ความสนใจกับปุ่ม เพิ่มเครื่องตรวจจับ ในภาพประกอบก่อนหน้า ด้านล่างนี้คือผลลัพธ์ของการคลิกปุ่มนี้

ทำความเข้าใจ Machine Learning ใน Elastic Stack (หรือที่รู้จักในชื่อ Elasticsearch หรือที่รู้จักในชื่อ ELK)

นี่คือบล็อกการตั้งค่าเพิ่มเติมสำหรับการกำหนดค่าตัวตรวจจับความผิดปกติสำหรับงานเฉพาะ เราวางแผนที่จะหารือเกี่ยวกับกรณีการใช้งานเฉพาะ (โดยเฉพาะด้านความปลอดภัย) ในบทความต่อไปนี้ ตัวอย่างเช่น, มอง หนึ่งในกรณีที่ถอดประกอบ มันเกี่ยวข้องกับการค้นหาค่าที่ไม่ค่อยปรากฏและมีการนำไปใช้ ฟังก์ชั่นที่หายาก.

ใน ฟังก์ชัน คุณสามารถเลือกฟังก์ชันเฉพาะเพื่อค้นหาความผิดปกติได้ ยกเว้น หายากมีฟังก์ชั่นที่น่าสนใจอีกสองสามอย่าง - เวลาของวัน и เวลา_ของ_สัปดาห์. โดยจะระบุความผิดปกติในลักษณะการทำงานของตัวชี้วัดตลอดทั้งวันหรือสัปดาห์ตามลำดับ ฟังก์ชั่นการวิเคราะห์อื่นๆ อยู่ในเอกสารประกอบ.

В field_name ระบุฟิลด์ของเอกสารที่จะดำเนินการวิเคราะห์ By_field_name สามารถใช้แยกผลการวิเคราะห์สำหรับแต่ละค่าของฟิลด์เอกสารที่ระบุที่นี่ ถ้าเติม over_field_name คุณได้รับการวิเคราะห์ประชากรที่เรากล่าวถึงข้างต้น หากคุณระบุค่าเป็น partition_field_nameจากนั้นสำหรับฟิลด์นี้ของเอกสาร เส้นพื้นฐานที่แยกจากกันจะถูกคำนวณสำหรับแต่ละค่า (ค่าอาจเป็นได้ เช่น ชื่อของเซิร์ฟเวอร์หรือกระบวนการบนเซิร์ฟเวอร์) ใน ไม่รวม_ความถี่ สามารถเลือกได้ ทั้งหมด หรือ ไม่มีซึ่งจะหมายถึงการยกเว้น (หรือรวม) ค่าฟิลด์เอกสารที่เกิดขึ้นบ่อยครั้ง

ในบทความนี้ เราพยายามให้แนวคิดที่กระชับที่สุดเท่าที่จะเป็นไปได้เกี่ยวกับความสามารถของ Machine Learning ใน Elastic Stack ซึ่งยังมีรายละเอียดอีกมากที่หลงเหลืออยู่เบื้องหลัง บอกเราในความคิดเห็นว่าคุณจัดการแก้ไขกรณีใดโดยใช้ Elastic Stack และงานใดบ้างที่คุณใช้ หากต้องการติดต่อเรา คุณสามารถใช้ข้อความส่วนตัวได้ที่ Habré หรือ แบบฟอร์มข้อเสนอแนะบนเว็บไซต์.

ที่มา: will.com

เพิ่มความคิดเห็น