Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Еске салайық, Elastic Stack реляциялық емес Elasticsearch дерекқорына, Kibana веб-интерфейсіне және деректер жинаушылар мен процессорларға (ең танымал Logstash, әртүрлі Beats, APM және т.б.) негізделген. Бүкіл тізімделген өнім стекке жақсы толықтырулардың бірі - машиналық оқыту алгоритмдері арқылы деректерді талдау. Мақалада біз бұл алгоритмдердің не екенін түсінеміз. Өтінемін, мысықтың астында.

Машиналық оқыту - бұл Elastic Stack ортақ бағдарламалық құралының ақылы мүмкіндігі және X-Pack құрамына кіреді. Оны пайдалануды бастау үшін орнатудан кейін 30 күндік сынақ нұсқасын іске қосыңыз. Сынақ мерзімі аяқталғаннан кейін оны ұзарту немесе жазылым сатып алу үшін қолдау сұрауға болады. Жазылым құны деректер көлеміне емес, пайдаланылған түйіндер санына негізделеді. Жоқ, деректер көлемі, әрине, қажетті түйіндердің санына әсер етеді, бірақ әлі де лицензиялауға бұл көзқарас компанияның бюджетіне қатысты гуманитарлық болып табылады. Егер жоғары өнімділікке қажеттілік болмаса, ақшаны үнемдеуге болады.

Elastic Stack ішіндегі ML C++ тілінде жазылған және Elasticsearch өзі жұмыс істейтін JVM жүйесінен тыс жұмыс істейді. Яғни, процесс (айтпақшы, ол автоматты анықтау деп аталады) JVM жұтылмағанның бәрін тұтынады. Демо-стендте бұл соншалықты маңызды емес, бірақ өндірістік ортада ML тапсырмалары үшін бөлек түйіндерді бөлу маңызды.

Машиналық оқыту алгоритмдері екі санатқа бөлінеді - мұғаліммен и мұғалімсіз. Эластикалық стекте алгоритм «қадағаланбайтын» санатында. Авторы бұл сілтеме Сіз машиналық оқыту алгоритмдерінің математикалық аппаратын көре аласыз.

Талдауды орындау үшін машиналық оқыту алгоритмі Elasticsearch индекстерінде сақталған деректерді пайдаланады. Талдау үшін тапсырмаларды Kibana интерфейсінен де, API арқылы да жасауға болады. Егер сіз мұны Кибана арқылы жасасаңыз, сізге кейбір нәрселерді білудің қажеті жоқ. Мысалы, алгоритм өз жұмысы кезінде қолданатын қосымша индекстер.

Талдау процесінде қолданылатын қосымша индекстер.ml-күй — статистикалық модельдер туралы ақпарат (талдау параметрлері);
.ml-anomalies-* — ML алгоритмдерінің нәтижелері;
.ml-notifications — талдау нәтижелеріне негізделген хабарландыруларға арналған параметрлер.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Elasticsearch дерекқорындағы деректер құрылымы индекстер мен оларда сақталған құжаттардан тұрады. Реляциялық деректер қорымен салыстырған кезде индексті дерекқор схемасымен, ал құжатты кестедегі жазбамен салыстыруға болады. Бұл салыстыру шартты болып табылады және Elasticsearch туралы тек естіген адамдар үшін қосымша материалды түсінуді жеңілдету үшін берілген.

Бірдей функционалдылық API арқылы веб-интерфейс арқылы қол жетімді, сондықтан түсініктерді анық және түсіну үшін оны Kibana арқылы конфигурациялауды көрсетеміз. Сол жақтағы мәзірде жаңа жұмысты жасауға болатын Machine Learning бөлімі бар. Кибана интерфейсінде ол төмендегі суретке ұқсайды. Енді біз тапсырманың әрбір түрін талдап, осы жерде құрастыруға болатын талдау түрлерін көрсетеміз.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Single Metric - бір метриканы талдау, Multi Metric - екі немесе одан да көп көрсеткіштерді талдау. Екі жағдайда да әрбір метрика оқшауланған ортада талданады, яғни. алгоритм Multi Metric жағдайында көрінуі мүмкін параллельді талданатын көрсеткіштердің әрекетін ескермейді. Әртүрлі көрсеткіштердің корреляциясын ескере отырып, есептеулерді орындау үшін Популяция талдауын пайдалануға болады. Ал Advanced белгілі бір тапсырмалар үшін қосымша опциялармен алгоритмдерді дәл баптайды.

Бір метрика

Бір ғана метрикадағы өзгерістерді талдау - бұл жерде жасауға болатын ең қарапайым нәрсе. «Тапсырманы құру» түймесін басқаннан кейін, алгоритм ауытқуларды іздейді.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Алаңда Біріктіру аномалияларды іздеу тәсілін таңдауға болады. Мысалы, қашан Min типтік мәндерден төмен мәндер аномальдық болып саналады. Тамақ Макс, жоғары орташа, төмен, орташа, ерекше және басқалар. Барлық функциялардың сипаттамасын табуға болады байланыс.

Алаңда дала біз талдау жүргізетін құжаттағы сандық өрісті көрсетеді.

Алаңда Шелек аралығы — талдау жүргізілетін уақыт шкаласы бойынша интервалдардың түйіршіктілігі. Сіз автоматтандыруға сене аласыз немесе қолмен таңдай аласыз. Төмендегі сурет түйіршіктіліктің тым төмен болуының мысалы болып табылады - аномалияны жіберіп алуыңыз мүмкін. Бұл параметрді пайдаланып, алгоритмнің ауытқуларға сезімталдығын өзгертуге болады.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Жиналған деректердің ұзақтығы талдаудың тиімділігіне әсер ететін негізгі нәрсе болып табылады. Талдау кезінде алгоритм қайталанатын аралықтарды анықтайды, сенімділік аралықтарын (негізгі сызықтар) есептейді және ауытқуларды - метриканың әдеттегі әрекетінен атипті ауытқуларды анықтайды. Мысалы:

Шағын деректер бөлігі бар негізгі сызықтар:

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Алгоритмде үйренуге болатын нәрсе болған кезде, базалық сызық келесідей болады:

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Тапсырманы бастағаннан кейін алгоритм нормадан аномальді ауытқуларды анықтайды және оларды аномалия ықтималдығына қарай орналастырады (тиісті белгінің түсі жақшада көрсетілген):

Ескерту (көк): 25-тен төмен
Кіші (сары): 25-50
Майор (қызғылт сары): 50-75
Сыни (қызыл): 75-100

Төмендегі графикте табылған ауытқулардың мысалы көрсетілген.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Мұнда сіз аномалияның ықтималдығын көрсететін 94 санын көре аласыз. Мән 100-ге жақын болғандықтан, бұл бізде аномалия бар екенін білдіретіні анық. Графиктің астындағы баған онда пайда болатын метрикалық мәннің 0.000063634% төмен ықтималдылығын көрсетеді.

Аномалияларды іздеуге қоса, сіз Кибанада болжауды іске қоса аласыз. Бұл қарапайым және аномалиялармен бірдей көріністен жасалады - түйме болжау жоғарғы оң жақ бұрышта.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Болжам ең көп дегенде 8 апта бұрын жасалады. Сіз шынымен қаласаңыз да, дизайн бойынша бұл мүмкін емес.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Кейбір жағдайларда болжам өте пайдалы болады, мысалы, пайдаланушының инфрақұрылымға жүктемесін бақылау кезінде.

Көп метрикалық

Серпімді стектегі келесі ML мүмкіндігіне көшейік - бір топтамада бірнеше көрсеткіштерді талдау. Бірақ бұл бір метриканың екіншісіне тәуелділігі талданады дегенді білдірмейді. Бұл жалғыз метрикамен бірдей, бірақ бірінің екіншісіне әсерін оңай салыстыру үшін бір экранда бірнеше көрсеткіштер бар. Бір метриканың екіншісіне тәуелділігін талдау туралы біз Популяция бөлімінде айтатын боламыз.

Multi Metric көмегімен шаршыны басқаннан кейін параметрлері бар терезе пайда болады. Оларды толығырақ қарастырайық.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Алдымен талдау және олар бойынша деректерді жинақтау үшін өрістерді таңдау керек. Мұндағы біріктіру опциялары Бір метрикамен бірдей (Макс, жоғары орташа, төмен, орташа, ерекше және басқалар). Әрі қарай, қажет болса, деректер өрістердің біріне бөлінеді (өріс Деректерді бөлу). Мысалда біз мұны өріс бойынша жасадық OriginAirportID. Оң жақтағы көрсеткіштер графигі енді бірнеше графиктер ретінде ұсынылғанына назар аударыңыз.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

өріс Негізгі өрістер (әсер етушілер) анықталған ауытқуларға тікелей әсер етеді. Әдепкі бойынша мұнда әрқашан кем дегенде бір мән болады және қосымша мәндерді қосуға болады. Алгоритм талдау кезінде осы өрістердің әсерін ескереді және ең «әсерлі» мәндерді көрсетеді.

Іске қосқаннан кейін Кибана интерфейсінде осындай нәрсе пайда болады.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Бұл деп аталатын нәрсе әрбір өріс мәні үшін аномалиялардың жылу картасы OriginAirportID, біз көрсеткен Деректерді бөлу. Single Metric сияқты, түс қалыптан тыс ауытқу деңгейін көрсетеді. Ұқсас талдауды жүргізу ыңғайлы, мысалы, күдікті көп рұқсаттары бар адамдарды бақылау үшін жұмыс станцияларында және т.б. Біз қазірдің өзінде жазғанбыз EventLog Windows жүйесіндегі күдікті оқиғалар туралы, оны да осында жинап, талдауға болады.

Жылу картасының астында ауытқулар тізімі берілген, олардың әрқайсысынан егжей-тегжейлі талдау үшін Бірыңғай метрикалық көрініске ауысуға болады.

халық

Әртүрлі көрсеткіштер арасындағы корреляциялар арасындағы ауытқуларды іздеу үшін Эластикалық стекте арнайы Популяция талдауы бар. Оның көмегімен, мысалы, мақсатты жүйеге сұраулар саны артқан кезде, басқалармен салыстырғанда сервердің жұмысында аномальды мәндерді іздеуге болады.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Бұл суретте Популяция өрісі талданған көрсеткіштер қатысты болатын мәнді көрсетеді. Бұл жағдайда бұл процестің атауы. Нәтижесінде біз әр процестің процессорлық жүктемесі бір-біріне қалай әсер еткенін көреміз.

Талданған деректердің графигі бір метрикалық және көп метрлік жағдайлардан ерекшеленетінін ескеріңіз. Бұл Кибанада талданатын деректердің мәндерінің таралуын қабылдауды жақсарту үшін жасалған.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

График процестің қалыптан тыс әрекет еткенін көрсетеді стресс (айтпақшы, арнайы утилита арқылы жасалған) серверде поипу, бұл аномалияның пайда болуына кім әсер етті (немесе әсер етуші болып шықты).

озат

Нақты баптауы бар аналитика. Кеңейтілген талдау көмегімен Kibana қолданбасында қосымша параметрлер пайда болады. Жасау мәзіріндегі Кеңейтілген тақтаны басқаннан кейін қойындылары бар бұл терезе пайда болады. қойындысы Жұмыс туралы мәлімет Біз оны әдейі өткізіп жібердік, талдауды орнатуға тікелей қатысы жоқ негізгі параметрлер бар.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

В жиынтық_санақ_өріс_аты Қосымша мәндері бар құжаттардан өріс атауын көрсетуге болады. Бұл мысалда минуттағы оқиғалар саны. IN санаттау_өрісі_атауы кейбір айнымалы мәнді қамтитын құжаттағы өрістің атауы мен мәнін көрсетеді. Осы өрістегі масканы пайдаланып, талданған деректерді ішкі жиындарға бөлуге болады. Түймеге назар аударыңыз Детекторды қосыңыз алдыңғы суретте. Төменде осы түймені басу нәтижесі берілген.

Эластикалық стектегі машиналық оқытуды түсіну (aka Elasticsearch, ELK)

Мұнда белгілі бір тапсырма үшін аномалия детекторын конфигурациялауға арналған параметрлердің қосымша блогы берілген. Біз келесі мақалаларда нақты пайдалану жағдайларын (әсіресе қауіпсіздікті) талқылауды жоспарлап отырмыз. Мысалы үшін, қараңыз бөлшектелген корпустардың бірі. Бұл сирек кездесетін құндылықтарды іздеумен байланысты және жүзеге асырылады сирек функция.

Алаңда функция Аномалияларды іздеу үшін арнайы функцияны таңдауға болады. қоспағанда Сирек кездеседі, тағы бірнеше қызықты функциялар бар - күн_уақыты и аптаның_уақыты. Олар сәйкесінше күн немесе апта бойы көрсеткіштердің әрекетіндегі ауытқуларды анықтайды. Басқа талдау функциялары құжаттамада бар.

В өріс_атауы талдау жүргізілетін құжаттың өрісін көрсетеді. Өріс_атауы бойынша мұнда көрсетілген құжат өрісінің әрбір жеке мәні үшін талдау нәтижелерін бөлу үшін пайдалануға болады. Толтырсаңыз өрістің_атауы Сіз жоғарыда талқылаған популяциялық талдауды аласыз. ішінде мәнді көрсетсеңіз бөлім_өрісінің_аты, содан кейін құжаттың осы өрісі үшін әрбір мән үшін бөлек базалық сызықтар есептеледі (мән, мысалы, сервердің немесе сервердегі процестің атауы болуы мүмкін). IN шығару_жиі таңдай алады барлық немесе бірде-бір, бұл жиі кездесетін құжат өрісінің мәндерін алып тастауды (немесе қосуды) білдіреді.

Бұл мақалада біз Elastic Stack-те машиналық оқытудың мүмкіндіктері туралы мүмкіндігінше қысқаша түсінік беруге тырыстық; сахна артында әлі де көптеген мәліметтер қалды. Түсініктемелерде серпімді стек көмегімен қандай жағдайларды шеше алғаныңызды және оны қандай тапсырмалар үшін қолданатыныңызды айтыңыз. Бізбен байланысу үшін сіз Habré немесе жеке хабарламаларды пайдалана аласыз веб-сайттағы кері байланыс формасы.

Ақпарат көзі: www.habr.com

пікір қалдыру