درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

بیایید به یاد بیاوریم که Elastic Stack بر اساس پایگاه داده غیررابطه ای Elasticsearch، رابط وب Kibana و جمع آوری کننده ها و پردازشگرهای داده (معروف ترین Logstash، بیت های مختلف، APM و غیره) است. یکی از اضافات خوب به کل پشته محصول لیست شده، تجزیه و تحلیل داده ها با استفاده از الگوریتم های یادگیری ماشین است. در مقاله متوجه می شویم که این الگوریتم ها چیست. لطفا زیر گربه.

یادگیری ماشینی یکی از ویژگی های پولی اشتراک افزار 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 — تنظیمات اعلان ها بر اساس نتایج تجزیه و تحلیل.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

ساختار داده در پایگاه داده Elasticsearch از نمایه ها و اسناد ذخیره شده در آنها تشکیل شده است. هنگامی که با یک پایگاه داده رابطه ای مقایسه می شود، یک شاخص را می توان با یک طرح پایگاه داده و یک سند را با یک رکورد در یک جدول مقایسه کرد. این مقایسه مشروط است و برای ساده‌تر کردن درک مطالب بیشتر برای کسانی که فقط درباره Elasticsearch شنیده‌اند ارائه شده است.

همان عملکردی که از طریق رابط وب از طریق API در دسترس است، بنابراین برای وضوح و درک مفاهیم، ​​نحوه پیکربندی آن را از طریق Kibana نشان خواهیم داد. در منوی سمت چپ یک بخش Machine Learning وجود دارد که می توانید یک شغل جدید ایجاد کنید. در رابط Kibana مانند تصویر زیر است. اکنون هر نوع کار را تجزیه و تحلیل خواهیم کرد و انواع تحلیل هایی را که می توان در اینجا ساخت نشان می دهیم.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

Single Metric - تجزیه و تحلیل یک متریک، چند متریک - تجزیه و تحلیل دو یا چند متریک. در هر دو مورد، هر متریک در یک محیط ایزوله تجزیه و تحلیل می شود، به عنوان مثال. الگوریتم رفتار معیارهای تحلیل شده موازی را در نظر نمی گیرد، همانطور که ممکن است در مورد چند متریک به نظر برسد. برای انجام محاسبات با در نظر گرفتن همبستگی معیارهای مختلف، می توانید از تجزیه و تحلیل جمعیت استفاده کنید. و Advanced الگوریتم ها را با گزینه های اضافی برای کارهای خاص تنظیم می کند.

واحد متریک

تجزیه و تحلیل تغییرات در یک متریک ساده ترین کاری است که می توان در اینجا انجام داد. پس از کلیک بر روی Create Job، الگوریتم به دنبال ناهنجاری ها خواهد بود.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

در این زمینه تجمع شما می توانید رویکردی را برای جستجوی ناهنجاری ها انتخاب کنید. مثلاً وقتی حداقل مقادیر زیر مقادیر معمولی غیرعادی در نظر گرفته خواهند شد. بخور حداکثر، میانگین بالا، کم، متوسط، متمایز و دیگران. توضیحات همه توابع را می توان یافت по ссылке.

در این زمینه میدان نشان دهنده فیلد عددی در سندی است که تجزیه و تحلیل را بر روی آن انجام خواهیم داد.

در این زمینه دهانه سطل - دانه بندی فواصل در جدول زمانی که تجزیه و تحلیل در طول آن انجام خواهد شد. می توانید به اتوماسیون اعتماد کنید یا به صورت دستی انتخاب کنید. تصویر زیر نمونه ای از کم بودن دانه بندی است - ممکن است این ناهنجاری را از دست بدهید. با استفاده از این تنظیمات می توانید حساسیت الگوریتم را به ناهنجاری تغییر دهید.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

مدت زمان داده های جمع آوری شده یک چیز کلیدی است که بر اثربخشی تجزیه و تحلیل تأثیر می گذارد. در طول تجزیه و تحلیل، الگوریتم فواصل تکراری را شناسایی می کند، فواصل اطمینان (خطوط پایه) را محاسبه می کند و ناهنجاری ها - انحرافات غیر معمول از رفتار معمول متریک را شناسایی می کند. فقط برای مثال:

خطوط پایه با یک داده کوچک:

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

وقتی الگوریتم چیزی برای یادگیری داشته باشد، خط مبنا به شکل زیر است:

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

پس از شروع کار، الگوریتم انحرافات غیرعادی از هنجار را تعیین می کند و آنها را با توجه به احتمال ناهنجاری رتبه بندی می کند (رنگ برچسب مربوطه در پرانتز نشان داده شده است):

هشدار (آبی): کمتر از 25
مینور (زرد): 25-50
ماژور (نارنجی): 50-75
بحرانی (قرمز): 75-100

نمودار زیر نمونه ای از ناهنجاری های یافت شده را نشان می دهد.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

در اینجا می توانید عدد 94 را مشاهده کنید که نشان دهنده احتمال ناهنجاری است. واضح است که از آنجایی که مقدار نزدیک به 100 است، به این معنی است که ما یک ناهنجاری داریم. ستون زیر نمودار احتمال ناچیز 0.000063634٪ از مقدار متریک را نشان می دهد که در آنجا ظاهر می شود.

علاوه بر جستجوی ناهنجاری ها، می توانید پیش بینی را در کیبانا اجرا کنید. این کار به سادگی و از همان نمای با دکمه های ناهنجاری انجام می شود پیش بینی در گوشه سمت راست بالا

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

پیش بینی حداکثر برای 8 هفته قبل انجام می شود. حتی اگر واقعاً بخواهید، دیگر با طراحی امکان پذیر نیست.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

در برخی شرایط، پیش بینی بسیار مفید خواهد بود، به عنوان مثال، هنگام نظارت بر بار کاربر در زیرساخت.

چند متریک

بیایید به ویژگی بعدی ML در Elastic Stack برویم - تجزیه و تحلیل چندین معیار در یک دسته. اما این بدان معنا نیست که وابستگی یک معیار به معیار دیگر مورد تجزیه و تحلیل قرار گیرد. این همان متریک منفرد است، اما با چندین معیار در یک صفحه برای مقایسه آسان تأثیر یکی بر دیگری. ما در مورد تجزیه و تحلیل وابستگی یک معیار به دیگری در بخش جمعیت صحبت خواهیم کرد.

پس از کلیک بر روی مربع با Multi Metric، پنجره ای با تنظیمات ظاهر می شود. بیایید با جزئیات بیشتری به آنها نگاه کنیم.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

ابتدا باید فیلدهایی را برای تجزیه و تحلیل و تجمیع داده ها روی آنها انتخاب کنید. گزینه های تجمیع در اینجا مانند واحد متریک است (حداکثر، میانگین بالا، کم، متوسط، متمایز و دیگران). علاوه بر این، در صورت تمایل، داده ها به یکی از فیلدها تقسیم می شوند (فیلد تقسیم داده ها). در مثال، ما این کار را به صورت میدانی انجام دادیم OriginAirport ID. توجه داشته باشید که نمودار متریک سمت راست اکنون به صورت نمودارهای متعدد ارائه می شود.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

رشته زمینه های کلیدی (اینفلوئنسرها) به طور مستقیم بر ناهنجاری های شناسایی شده تأثیر می گذارد. به طور پیش فرض همیشه حداقل یک مقدار در اینجا وجود خواهد داشت و می توانید مقادیر اضافی اضافه کنید. این الگوریتم در هنگام تجزیه و تحلیل، تأثیر این زمینه ها را در نظر می گیرد و "تاثیرگذارترین" مقادیر را نشان می دهد.

پس از راه اندازی، چیزی شبیه به این در رابط Kibana ظاهر می شود.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

این به اصطلاح است نقشه حرارتی ناهنجاری ها برای هر مقدار میدان OriginAirport ID، که در آن اشاره کردیم تقسیم داده ها. همانند Single Metric، رنگ نشان دهنده سطح انحراف غیر طبیعی است. انجام یک تجزیه و تحلیل مشابه، به عنوان مثال، در ایستگاه های کاری برای ردیابی کسانی که دارای تعداد مشکوکی مجوزها و غیره هستند، راحت است. قبلا نوشتیم درباره رویدادهای مشکوک در EventLog ویندوزکه در اینجا نیز قابل جمع آوری و تحلیل است.

در زیر نقشه حرارتی لیستی از ناهنجاری ها وجود دارد که از هر کدام می توانید برای تجزیه و تحلیل دقیق به نمای Single Metric بروید.

جمعیت

برای جست‌وجوی ناهنجاری‌ها در بین همبستگی‌های بین معیارهای مختلف، پشته الاستیک دارای یک تحلیل تخصصی جمعیت است. با کمک آن است که می توانید به دنبال مقادیر غیرعادی در عملکرد یک سرور در مقایسه با سایرین باشید، به عنوان مثال، زمانی که تعداد درخواست ها به سیستم هدف افزایش می یابد.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

در این تصویر، فیلد جمعیت مقداری را نشان می دهد که معیارهای تحلیل شده به آن مربوط می شود. در این مورد نام فرآیند است. در نتیجه، خواهیم دید که چگونه بار پردازنده هر فرآیند بر یکدیگر تأثیر گذاشته است.

لطفاً توجه داشته باشید که نمودار داده های تجزیه و تحلیل شده با موارد Single Metric و Multi Metric متفاوت است. این در Kibana با طراحی برای درک بهتر توزیع مقادیر داده های تجزیه و تحلیل شده انجام شد.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

نمودار نشان می دهد که فرآیند غیرعادی عمل می کند فشار (به هر حال، توسط یک ابزار ویژه تولید شده است) در سرور پویپو، که بر وقوع این ناهنجاری تأثیر گذاشت (یا معلوم شد که یک تأثیرگذار است).

فناوری

تجزیه و تحلیل با تنظیم دقیق. با تجزیه و تحلیل پیشرفته، تنظیمات اضافی در کیبانا ظاهر می شود. پس از کلیک بر روی کاشی پیشرفته در منوی ایجاد، این پنجره با برگه ها ظاهر می شود. Tab جزئیات کار ما عمداً آن را نادیده گرفتیم، تنظیمات اساسی وجود دارد که مستقیماً به تنظیم تجزیه و تحلیل مربوط نمی شود.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

В summary_count_field_name به صورت اختیاری، می توانید نام یک فیلد را از اسناد حاوی مقادیر تجمیع شده مشخص کنید. در این مثال تعداد رویدادها در دقیقه. که در categorization_field_name نام و مقدار یک فیلد از سند را نشان می دهد که حاوی مقداری متغیر است. با استفاده از ماسک در این فیلد، می توانید داده های تجزیه و تحلیل شده را به زیر مجموعه ها تقسیم کنید. به دکمه توجه کنید آشکارساز اضافه کنید در تصویر قبلی در زیر نتیجه کلیک بر روی این دکمه است.

درک یادگیری ماشینی در Elastic Stack (با نام مستعار Elasticsearch، با نام مستعار ELK)

در اینجا یک بلوک اضافی از تنظیمات برای پیکربندی آشکارساز ناهنجاری برای یک کار خاص وجود دارد. ما قصد داریم در مقالات بعدی در مورد موارد استفاده خاص (به ویژه موارد امنیتی) بحث کنیم. مثلا، نگاهی بینداز یکی از کیس های جدا شده با جستجوی مقادیری که به ندرت ظاهر می شوند همراه است و اجرا می شود عملکرد نادر.

در این زمینه تابع شما می توانید یک تابع خاص را برای جستجوی ناهنجاری ها انتخاب کنید. بجز نادر، چند عملکرد جالب دیگر وجود دارد - زمان_روز и زمان_هفته. آنها به ترتیب ناهنجاری هایی را در رفتار معیارها در طول روز یا هفته شناسایی می کنند. سایر توابع تجزیه و تحلیل در اسناد موجود است.

В نام زمینه نشان دهنده زمینه سندی است که تجزیه و تحلیل بر روی آن انجام می شود. By_field_name می توان برای جدا کردن نتایج تجزیه و تحلیل برای هر مقدار جداگانه از فیلد سند مشخص شده در اینجا استفاده کرد. اگر پر کنید over_field_name تجزیه و تحلیل جمعیت را که در بالا مورد بحث قرار دادیم، دریافت می کنید. اگر مقداری را در partition_field_name، سپس برای این فیلد سند خطوط پایه جداگانه برای هر مقدار محاسبه می شود (مقدار می تواند مثلاً نام سرور یا فرآیند روی سرور باشد). که در exclude_frequent می توانید انتخاب کنید تمام یا هیچ، که به معنای حذف (یا شامل) مقادیر فیلد اسنادی است که اغلب اتفاق می افتد.

در این مقاله سعی کردیم تا حد ممکن ایده ای مختصر در مورد قابلیت های یادگیری ماشین در Elastic Stack ارائه دهیم؛ هنوز جزئیات زیادی در پشت صحنه باقی مانده است. در نظرات به ما بگویید که چه مواردی را با استفاده از Elastic Stack حل کرده اید و برای چه کارهایی از آن استفاده می کنید. برای تماس با ما، می توانید از پیام های شخصی در Habré یا فرم بازخورد در وب سایت.

منبع: www.habr.com

اضافه کردن نظر