ให้เราระลึกว่า Elastic Stack นั้นใช้ฐานข้อมูล Elasticsearch ที่ไม่เกี่ยวข้อง, เว็บอินเตอร์เฟสของ Kibana รวมถึงตัวรวบรวมข้อมูลและโปรเซสเซอร์ (Logstash ที่มีชื่อเสียงที่สุด, Beats, APM และอื่นๆ) หนึ่งในการเพิ่มที่ดีในกลุ่มผลิตภัณฑ์ทั้งหมดที่อยู่ในรายการคือการวิเคราะห์ข้อมูลโดยใช้อัลกอริธึมการเรียนรู้ของเครื่อง ในบทความเราเข้าใจว่าอัลกอริทึมเหล่านี้คืออะไร กรุณาอยู่ใต้แมว
การเรียนรู้ของเครื่องเป็นคุณสมบัติแบบชำระเงินของ Shareware Elastic Stack และรวมอยู่ใน X-Pack หากต้องการเริ่มใช้งาน เพียงเปิดใช้งานการทดลองใช้ 30 วันหลังการติดตั้ง หลังจากช่วงทดลองใช้งานสิ้นสุดลง คุณสามารถขอรับการสนับสนุนเพื่อขยายเวลาหรือซื้อการสมัครสมาชิกได้ ค่าใช้จ่ายในการสมัครสมาชิกไม่ได้คำนวณตามปริมาณข้อมูล แต่ขึ้นอยู่กับจำนวนโหนดที่ใช้ ไม่ แน่นอนว่าปริมาณข้อมูลส่งผลต่อจำนวนโหนดที่ต้องการ แต่แนวทางการออกใบอนุญาตนี้ก็ยังมีความมีมนุษยธรรมมากกว่าเมื่อเทียบกับงบประมาณของบริษัท หากไม่ต้องการผลผลิตสูง คุณก็ประหยัดเงินได้
ML ใน Elastic Stack เขียนด้วยภาษา C++ และทำงานภายนอก JVM ซึ่ง Elasticsearch เองก็ทำงานอยู่ นั่นคือกระบวนการ (หรือที่เรียกว่าการตรวจจับอัตโนมัติ) จะใช้ทุกสิ่งที่ JVM ไม่ได้กลืนลงไป บนแท่นสาธิต สิ่งนี้ไม่สำคัญนัก แต่ในสภาพแวดล้อมการใช้งานจริง สิ่งสำคัญคือต้องจัดสรรโหนดแยกกันสำหรับงาน ML
อัลกอริธึมการเรียนรู้ของเครื่องแบ่งออกเป็นสองประเภท -
เพื่อทำการวิเคราะห์ อัลกอริธึมการเรียนรู้ของเครื่องจะใช้ข้อมูลที่จัดเก็บไว้ในดัชนี Elasticsearch คุณสามารถสร้างงานสำหรับการวิเคราะห์ได้ทั้งจากอินเทอร์เฟซ Kibana และผ่าน API หากคุณทำสิ่งนี้ผ่าน Kibana คุณไม่จำเป็นต้องรู้บางสิ่ง ตัวอย่างเช่น ดัชนีเพิ่มเติมที่อัลกอริทึมใช้ระหว่างการดำเนินการ
ดัชนีเพิ่มเติมที่ใช้ในกระบวนการวิเคราะห์.ml-state — ข้อมูลเกี่ยวกับแบบจำลองทางสถิติ (การตั้งค่าการวิเคราะห์)
.ml-anomalies-* — ผลลัพธ์ของอัลกอริทึม ML
.ml-notifications — การตั้งค่าสำหรับการแจ้งเตือนตามผลการวิเคราะห์
โครงสร้างข้อมูลในฐานข้อมูล Elasticsearch ประกอบด้วยดัชนีและเอกสารที่เก็บไว้ในนั้น เมื่อเปรียบเทียบกับฐานข้อมูลเชิงสัมพันธ์ ดัชนีสามารถเปรียบเทียบได้กับสคีมาฐานข้อมูล และเอกสารกับบันทึกในตาราง การเปรียบเทียบนี้มีเงื่อนไขและมีไว้เพื่อลดความซับซ้อนในการทำความเข้าใจเนื้อหาเพิ่มเติมสำหรับผู้ที่เคยได้ยินเกี่ยวกับ Elasticsearch เท่านั้น
ฟังก์ชันเดียวกันนี้สามารถใช้งานได้ผ่าน API เช่นเดียวกับผ่านทางอินเทอร์เฟซบนเว็บ ดังนั้นเพื่อความชัดเจนและความเข้าใจในแนวคิด เราจะแสดงวิธีกำหนดค่าผ่าน Kibana ในเมนูด้านซ้ายมีส่วน Machine Learning ที่คุณสามารถสร้างงานใหม่ได้ ในอินเทอร์เฟซ Kibana ดูเหมือนว่ารูปภาพด้านล่าง ตอนนี้เราจะวิเคราะห์งานแต่ละประเภทและแสดงประเภทของการวิเคราะห์ที่สามารถสร้างได้ที่นี่
เมตริกเดี่ยว - การวิเคราะห์หนึ่งเมตริก, หลายเมตริก - การวิเคราะห์เมตริกตั้งแต่สองรายการขึ้นไป ในทั้งสองกรณี แต่ละเมตริกจะได้รับการวิเคราะห์ในสภาพแวดล้อมที่แยกจากกัน เช่น อัลกอริธึมไม่ได้คำนึงถึงพฤติกรรมของเมทริกที่วิเคราะห์แบบขนาน ดังที่อาจดูเหมือนในกรณีของมัลติเมทริก หากต้องการคำนวณโดยคำนึงถึงความสัมพันธ์ของหน่วยวัดต่างๆ คุณสามารถใช้การวิเคราะห์ประชากรได้ และขั้นสูงคือการปรับแต่งอัลกอริธึมอย่างละเอียดพร้อมตัวเลือกเพิ่มเติมสำหรับงานบางอย่าง
เมตริกเดียว
การวิเคราะห์การเปลี่ยนแปลงในเมตริกเดียวคือสิ่งที่ง่ายที่สุดที่สามารถทำได้ที่นี่ หลังจากคลิกสร้างงาน อัลกอริธึมจะค้นหาความผิดปกติ
ใน การรวมตัว คุณสามารถเลือกแนวทางในการค้นหาความผิดปกติได้ เช่น เมื่อใด นาที ค่าที่ต่ำกว่าค่าทั่วไปจะถือว่ามีความผิดปกติ กิน สูงสุด ค่าเฉลี่ยสูง ต่ำ ค่าเฉลี่ย แตกต่าง และคนอื่น ๆ. สามารถดูคำอธิบายฟังก์ชันทั้งหมดได้
ใน สนาม ระบุฟิลด์ตัวเลขในเอกสารที่เราจะทำการวิเคราะห์
ใน
ระยะเวลาของข้อมูลที่รวบรวมเป็นสิ่งสำคัญที่ส่งผลต่อประสิทธิผลของการวิเคราะห์ ในระหว่างการวิเคราะห์ อัลกอริธึมจะระบุช่วงเวลาที่เกิดซ้ำ คำนวณช่วงความเชื่อมั่น (เส้นพื้นฐาน) และระบุความผิดปกติ - การเบี่ยงเบนที่ผิดปกติจากพฤติกรรมปกติของหน่วยเมตริก ตัวอย่างเช่น:
ข้อมูลพื้นฐานที่มีข้อมูลขนาดเล็ก:
เมื่ออัลกอริธึมมีบางอย่างที่ต้องเรียนรู้ เส้นพื้นฐานจะเป็นดังนี้:
หลังจากเริ่มงานแล้ว อัลกอริธึมจะกำหนดการเบี่ยงเบนที่ผิดปกติจากบรรทัดฐานและจัดอันดับตามความน่าจะเป็นของความผิดปกติ (สีของป้ายกำกับที่เกี่ยวข้องจะแสดงอยู่ในวงเล็บ):
คำเตือน (สีน้ำเงิน): น้อยกว่า 25
ผู้เยาว์ (สีเหลือง): 25-50
เมเจอร์ (สีส้ม): 50-75
วิกฤต (สีแดง): 75-100
กราฟด้านล่างแสดงตัวอย่างความผิดปกติที่พบ
ที่นี่คุณสามารถดูหมายเลข 94 ซึ่งบ่งบอกถึงความน่าจะเป็นของความผิดปกติ ชัดเจนว่าเนื่องจากค่าใกล้ 100 แสดงว่าเรามีความผิดปกติ คอลัมน์ด้านล่างกราฟแสดงความน่าจะเป็นที่ดูถูกเล็กน้อยที่ 0.000063634% ของค่าเมตริกที่ปรากฏตรงนั้น
นอกจากการค้นหาความผิดปกติแล้ว คุณยังสามารถเรียกใช้การคาดการณ์ใน Kibana ได้อีกด้วย ทำได้ง่ายและจากมุมมองเดียวกันกับปุ่มความผิดปกติ พยากรณ์ ที่มุมขวาบน
พยากรณ์ล่วงหน้าสูงสุด 8 สัปดาห์ แม้ว่าคุณจะต้องการจริงๆ แต่การออกแบบก็ไม่สามารถทำได้อีกต่อไป
ในบางสถานการณ์ การคาดการณ์จะมีประโยชน์มาก เช่น เมื่อตรวจสอบโหลดของผู้ใช้บนโครงสร้างพื้นฐาน
มัลติเมตริก
มาดูฟีเจอร์ ML ถัดไปใน Elastic Stack กัน - การวิเคราะห์เมตริกหลายตัวในชุดเดียว แต่นี่ไม่ได้หมายความว่าจะมีการวิเคราะห์การพึ่งพาตัวชี้วัดหนึ่งต่ออีกตัวชี้วัดหนึ่ง ซึ่งเหมือนกับเมตริกเดี่ยว แต่มีหลายเมตริกบนหน้าจอเดียวเพื่อให้เปรียบเทียบผลกระทบของเมตริกหนึ่งต่ออีกเมตริกหนึ่งได้อย่างง่ายดาย เราจะพูดถึงการวิเคราะห์การพึ่งพาหน่วยวัดหนึ่งต่ออีกหน่วยวัดหนึ่งในส่วนประชากร
หลังจากคลิกที่สี่เหลี่ยมที่มี Multi Metric หน้าต่างพร้อมการตั้งค่าจะปรากฏขึ้น ลองดูรายละเอียดเพิ่มเติม
ขั้นแรก คุณต้องเลือกฟิลด์สำหรับการวิเคราะห์และการรวมข้อมูล ตัวเลือกการรวมที่นี่จะเหมือนกับเมตริกเดี่ยว (สูงสุด ค่าเฉลี่ยสูง ต่ำ ค่าเฉลี่ย แตกต่าง และคนอื่น ๆ). นอกจากนี้ หากต้องการ ข้อมูลจะถูกแบ่งออกเป็นฟิลด์ใดฟิลด์หนึ่ง (field แยกข้อมูล). ในตัวอย่างนี้ เราทำสิ่งนี้ตามฟิลด์ รหัสสนามบินต้นทาง. โปรดสังเกตว่ากราฟเมตริกทางด้านขวาจะแสดงเป็นกราฟหลายกราฟ
สนาม ฟิลด์สำคัญ (ผู้มีอิทธิพล) ส่งผลโดยตรงต่อความผิดปกติที่ตรวจพบ ตามค่าเริ่มต้นจะมีค่าอย่างน้อยหนึ่งค่าที่นี่เสมอ และคุณสามารถเพิ่มค่าเพิ่มเติมได้ อัลกอริธึมจะคำนึงถึงอิทธิพลของฟิลด์เหล่านี้เมื่อวิเคราะห์และแสดงค่าที่ "มีอิทธิพล" มากที่สุด
หลังจากเปิดตัว บางสิ่งเช่นนี้จะปรากฏในอินเทอร์เฟซ Kibana
นี่คือสิ่งที่เรียกว่า แผนที่ความร้อนของความผิดปกติสำหรับแต่ละค่าฟิลด์ รหัสสนามบินต้นทางซึ่งเราได้ระบุไว้ใน แยกข้อมูล. เช่นเดียวกับ Single Metric สีจะบ่งบอกถึงระดับความเบี่ยงเบนที่ผิดปกติ สะดวกในการทำการวิเคราะห์ที่คล้ายกัน เช่น บนเวิร์กสเตชันเพื่อติดตามการอนุญาตจำนวนมากอย่างน่าสงสัย เป็นต้น เราเขียนแล้ว
ด้านล่างแผนที่ความร้อนคือรายการความผิดปกติ คุณสามารถสลับไปใช้มุมมองเมตริกเดี่ยวเพื่อการวิเคราะห์โดยละเอียดได้
ประชากร
หากต้องการค้นหาความผิดปกติระหว่างความสัมพันธ์ระหว่างตัววัดต่างๆ Elastic Stack มีการวิเคราะห์ประชากรแบบพิเศษ ด้วยความช่วยเหลือที่คุณสามารถค้นหาค่าที่ผิดปกติในประสิทธิภาพของเซิร์ฟเวอร์เมื่อเปรียบเทียบกับค่าอื่น ๆ เช่น เมื่อจำนวนคำขอไปยังระบบเป้าหมายเพิ่มขึ้น
ในภาพประกอบนี้ ฟิลด์ประชากรจะระบุค่าที่เกี่ยวข้องกับเมทริกที่วิเคราะห์แล้ว ในกรณีนี้คือชื่อของกระบวนการ ด้วยเหตุนี้ เราจะเห็นว่าโหลดของโปรเซสเซอร์แต่ละกระบวนการมีอิทธิพลต่อกันอย่างไร
โปรดทราบว่ากราฟของข้อมูลที่วิเคราะห์จะแตกต่างจากกรณีที่มีเมตริกเดี่ยวและหลายเมตริก สิ่งนี้ทำใน Kibana โดยการออกแบบเพื่อปรับปรุงการรับรู้การกระจายค่าของข้อมูลที่วิเคราะห์
กราฟแสดงให้เห็นว่ากระบวนการทำงานผิดปกติ ความเครียด (โดยวิธีการสร้างโดยยูทิลิตี้พิเศษ) บนเซิร์ฟเวอร์ ปอยปูซึ่งมีอิทธิพล (หรือกลายเป็นผู้มีอิทธิพล) ให้เกิดความผิดปกตินี้
ระดับสูง
การวิเคราะห์พร้อมการปรับแต่งอย่างละเอียด ด้วยการวิเคราะห์ขั้นสูง การตั้งค่าเพิ่มเติมจะปรากฏใน Kibana หลังจากคลิกที่ไทล์ขั้นสูงในเมนูการสร้าง หน้าต่างพร้อมแท็บนี้จะปรากฏขึ้น แท็บ รายละเอียดของงาน เราข้ามไปโดยตั้งใจ มีการตั้งค่าพื้นฐานที่ไม่เกี่ยวข้องโดยตรงกับการตั้งค่าการวิเคราะห์
В สรุป_count_field_name หรือคุณสามารถระบุชื่อของฟิลด์จากเอกสารที่มีค่ารวมได้ ในตัวอย่างนี้ คือจำนวนเหตุการณ์ต่อนาที ใน
นี่คือบล็อกการตั้งค่าเพิ่มเติมสำหรับการกำหนดค่าตัวตรวจจับความผิดปกติสำหรับงานเฉพาะ เราวางแผนที่จะหารือเกี่ยวกับกรณีการใช้งานเฉพาะ (โดยเฉพาะด้านความปลอดภัย) ในบทความต่อไปนี้ ตัวอย่างเช่น,
ใน ฟังก์ชัน คุณสามารถเลือกฟังก์ชันเฉพาะเพื่อค้นหาความผิดปกติได้ ยกเว้น หายากมีฟังก์ชั่นที่น่าสนใจอีกสองสามอย่าง -
В field_name ระบุฟิลด์ของเอกสารที่จะดำเนินการวิเคราะห์ By_field_name สามารถใช้แยกผลการวิเคราะห์สำหรับแต่ละค่าของฟิลด์เอกสารที่ระบุที่นี่ ถ้าเติม over_field_name คุณได้รับการวิเคราะห์ประชากรที่เรากล่าวถึงข้างต้น หากคุณระบุค่าเป็น partition_field_nameจากนั้นสำหรับฟิลด์นี้ของเอกสาร เส้นพื้นฐานที่แยกจากกันจะถูกคำนวณสำหรับแต่ละค่า (ค่าอาจเป็นได้ เช่น ชื่อของเซิร์ฟเวอร์หรือกระบวนการบนเซิร์ฟเวอร์) ใน ไม่รวม_ความถี่ สามารถเลือกได้ ทั้งหมด หรือ ไม่มีซึ่งจะหมายถึงการยกเว้น (หรือรวม) ค่าฟิลด์เอกสารที่เกิดขึ้นบ่อยครั้ง
ในบทความนี้ เราพยายามให้แนวคิดที่กระชับที่สุดเท่าที่จะเป็นไปได้เกี่ยวกับความสามารถของ Machine Learning ใน Elastic Stack ซึ่งยังมีรายละเอียดอีกมากที่หลงเหลืออยู่เบื้องหลัง บอกเราในความคิดเห็นว่าคุณจัดการแก้ไขกรณีใดโดยใช้ Elastic Stack และงานใดบ้างที่คุณใช้ หากต้องการติดต่อเรา คุณสามารถใช้ข้อความส่วนตัวได้ที่ Habré หรือ
ที่มา: will.com