تذكر أن Elastic Stack يعتمد على قاعدة بيانات Elasticsearch غير العلائقية وواجهة الويب Kibana وجامعي البيانات (أشهر Logstash و Beats و APM وغيرها). يعد تحليل البيانات باستخدام خوارزميات التعلم الآلي أحد الإضافات الرائعة إلى مجموعة المنتجات المدرجة بالكامل. في المقالة نفهم ما هي هذه الخوارزميات. من فضلك تحت القط.
التعلم الآلي هو ميزة مدفوعة من برنامج المشاركة 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.
تتوفر نفس الوظيفة من خلال واجهة برمجة التطبيقات كما هو الحال من خلال واجهة الويب ، لذلك من أجل توضيح المفاهيم وفهمها ، سنعرض كيفية التكوين من خلال Kibana. يوجد في القائمة الموجودة على اليسار قسم "التعلم الآلي" ، حيث يمكنك إنشاء وظيفة جديدة (الوظيفة). في واجهة Kibana ، تبدو الصورة أدناه. سنقوم الآن بتحليل كل نوع من المهام وإظهار أنواع التحليل التي يمكن إنشاؤها هنا.
مقياس واحد - تحليل مقياس واحد ، متعدد المقاييس - تحليل مقياسين أو أكثر. في كلتا الحالتين ، يتم تحليل كل مقياس في بيئة معزولة ، أي لا تأخذ الخوارزمية في الاعتبار سلوك المقاييس التي تم تحليلها بالتوازي ، كما قد يبدو في حالة Multi Metric. لحساب مع مراعاة الارتباط بين المقاييس المختلفة ، يمكنك تطبيق تحليل السكان. والمتقدم هو ضبط دقيق للخوارزميات مع خيارات إضافية لمهام معينة.
متري واحد
يعد تحليل التغييرات في مقياس واحد أسهل ما يمكنك فعله هنا. بعد النقر فوق إنشاء وظيفة ، ستبحث الخوارزمية عن الحالات الشاذة.
في تجميع يمكنك اختيار طريقة البحث عن الحالات الشاذة. على سبيل المثال ، متى اقل شئ سيتم اعتبار القيم التي تقل عن القيم النموذجية غير طبيعية. يأكل الحد الأقصى ، المتوسط العالي ، المنخفض ، المتوسط ، المميز و اخرين. يمكن العثور على وصف لجميع الوظائف
في الحقل يشار إلى الحقل الرقمي في المستند ، والذي بموجبه سنجري التحليل.
في
تعد مدة البيانات التي تم جمعها أمرًا أساسيًا يؤثر على فعالية التحليل. أثناء التحليل ، تحدد الخوارزمية تكرار الفجوات ، وتحسب فاصل الثقة (خطوط الأساس) ، وتكشف الانحرافات غير النمطية عن السلوك المعتاد للمقياس. فقط على سبيل المثال:
خطوط الأساس لشريحة بيانات صغيرة:
عندما يكون لدى الخوارزمية شيء لتتعلم منه ، تبدو الخطوط الأساسية كما يلي:
بعد بدء المهمة ، تحدد الخوارزمية الانحرافات غير الطبيعية عن القاعدة وترتبها وفقًا لاحتمال حدوث شذوذ (يشار إلى لون الملصق المقابل بين قوسين):
تحذير (أزرق): أقل من 25
طفيفة (أصفر): 25-50
الرائد (برتقالي): 50-75
الحرجة (حمراء): 75-100
يوضح الرسم البياني أدناه مثالاً على الحالات الشاذة التي تم العثور عليها.
هنا يمكنك رؤية الرقم 94 ، والذي يشير إلى احتمال حدوث شذوذ. من الواضح أنه نظرًا لأن القيمة قريبة من 100 ، فإن لدينا حالة شاذة. يشير العمود الموجود أسفل الرسم البياني إلى احتمال ضئيل بشكل مزعج قدره 0.000063634٪ من قيمة المقياس الذي يظهر هناك.
بالإضافة إلى البحث عن الحالات الشاذة في Kibana ، يمكنك إجراء التنبؤ. يتم ذلك بشكل أساسي ومن نفس التمثيل مع الحالات الشاذة - الزر توقعات في الزاوية اليمنى العليا.
تم بناء التوقعات لمدة تصل إلى 8 أسابيع. حتى لو كنت ترغب حقًا في ذلك ، لم يعد بإمكانك ذلك بالتصميم.
في بعض الحالات ، ستكون التوقعات مفيدة للغاية ، على سبيل المثال ، عند مراقبة حمل المستخدم على البنية التحتية.
متعدد المقاييس
دعنا ننتقل إلى ميزة ML التالية في Elastic Stack - تحليل عدة مقاييس في دفعة واحدة. لكن هذا لا يعني أنه سيتم تحليل اعتماد مقياس على آخر. هذا هو نفس المقياس الفردي فقط مع مقاييس متعددة على شاشة واحدة لسهولة المقارنة بين تأثير واحد على الآخر. سنتحدث عن تحليل اعتماد مقياس على آخر في الجزء السكاني.
بعد النقر فوق المربع باستخدام Multi Metric ، ستظهر نافذة بها إعدادات. دعونا نتناولها بمزيد من التفصيل.
تحتاج أولاً إلى تحديد الحقول للتحليل وتجميع البيانات عليها. خيارات التجميع هنا هي نفسها خيارات القياس الفردي (الحد الأقصى ، المتوسط العالي ، المنخفض ، المتوسط ، المميز و اخرين). علاوة على ذلك ، يتم تقسيم البيانات ، إذا رغبت في ذلك ، إلى أحد الحقول (الحقل تقسيم البيانات). في المثال ، فعلنا ذلك عبر المجال OriginAirportID. لاحظ أن الرسم البياني للمقاييس على اليمين يتم تمثيله الآن كمجموعة من الرسوم البيانية.
حقل المجالات الرئيسية (المؤثرون) يؤثر بشكل مباشر على الحالات الشاذة الموجودة. بشكل افتراضي ، ستكون هناك دائمًا قيمة واحدة على الأقل ، ويمكنك إضافة المزيد. ستأخذ الخوارزمية في الاعتبار تأثير هذه المجالات في التحليل وتظهر القيم الأكثر "تأثيرًا".
بعد الإطلاق ، ستظهر الصورة التالية في واجهة Kibana.
هذا هو ما يسمى ب. خريطة حرارية للشذوذ لكل قيمة حقل OriginAirportIDالذي أشرنا إليه تقسيم البيانات. كما هو الحال مع Single Metric ، يشير اللون إلى مستوى الخارج. من الملائم إجراء تحليل مماثل ، على سبيل المثال ، في محطات العمل لتتبع تلك التي يوجد فيها العديد من التراخيص بشكل مثير للريبة ، وما إلى ذلك. لقد كتبنا بالفعل
يوجد أسفل خريطة الحرارة قائمة بالأمور الشاذة ، يمكنك من كل منها الانتقال إلى طريقة العرض أحادية القياس للحصول على تحليل مفصل.
السكان
للبحث عن الانحرافات بين الارتباطات بين المقاييس المختلفة ، يحتوي Elastic Stack على تحليل سكاني متخصص. وبمساعدته ، يمكن للمرء أن يبحث عن القيم الشاذة في أداء الخادم مقارنة بالباقي عند ، على سبيل المثال ، زيادة في عدد الطلبات إلى النظام المستهدف.
في هذا الرسم التوضيحي ، يشير حقل السكان إلى القيمة التي ستشير إليها المقاييس التي تم تحليلها. في هذه الحالة ، هذا هو اسم العملية. نتيجة لذلك ، سوف نرى كيف أثر حمل المعالج لكل عملية على بعضها البعض.
يرجى ملاحظة أن مخطط البيانات التي تم تحليلها يختلف عن الحالات ذات المقياس الفردي والمتري المتعدد. يتم ذلك في Kibana حسب التصميم لتحسين إدراك توزيع قيم البيانات التي تم تحليلها.
يوضح الرسم البياني أن العملية تصرفت بشكل غير طبيعي إجهاد (بالمناسبة ، تم إنشاؤها بواسطة أداة خاصة) على الخادم بويبو، التي أثرت (أو تبين أنها مؤثرة) حدوث هذا الشذوذ.
متقدم
التحليلات مع الضبط الدقيق. مع التحليل المتقدم في Kibana ، تظهر إعدادات إضافية. بعد النقر فوق المربع المتقدم في قائمة الإنشاء ، تظهر النافذة المبوبة التالية. فاتورة غير مدفوعة تفاصيل الوظيفة إذا تم تخطيها عن قصد ، فهناك إعدادات أساسية لا تتعلق مباشرة بإعداد التحليل.
В Summary_count_field_name اختياريًا ، يمكنك تحديد اسم الحقل من المستندات التي تحتوي على القيم المجمعة. في هذا المثال ، عدد الأحداث في الدقيقة. في
فيما يلي كتلة إضافية من الإعدادات لإعداد كاشف العيوب لمهمة معينة. نخطط لتحليل حالات استخدام محددة (خاصة حالات الأمان) في المقالات التالية. على سبيل المثال،
في وظيفة يمكنك تحديد وظيفة معينة للبحث عن الحالات الشاذة. يستثني نادر، هناك وظيفتان مثيرتان للاهتمام -
В اسم الحقل يشار إلى مجال المستند الذي سيتم من خلاله إجراء التحليل. By_field_name يمكن استخدامها لفصل نتائج التحليل لكل قيمة فردية لحقل المستند المحدد هنا. إذا تم ملء over_field_name نحصل على تحليل السكان ، الذي درسناه أعلاه. إذا قمت بتحديد قيمة في part_field_name، ثم سيتم حساب خطوط أساس منفصلة لكل قيمة لهذا الحقل من المستند (على سبيل المثال ، يمكن أن يعمل اسم الخادم أو العملية على الخادم كقيمة). في استبعاد_متكرر يمكن أن تختار من جميع أو لا شيء، وهو ما قد يعني استبعاد (أو تضمين) قيم حقول المستند التي تظهر بشكل شائع.
في المقالة ، حاولنا تقديم الفكرة الأكثر إيجازًا عن إمكانيات التعلم الآلي في Elastic Stack ، ولا يزال هناك الكثير من التفاصيل وراء الكواليس. أخبرنا في التعليقات عن الحالات التي تمكنت من حلها بمساعدة Elastic Stack وما هي المهام التي تستخدمها. للاتصال بنا ، يمكنك استخدام الرسائل الخاصة على Habré أو
المصدر: www.habr.com