
Kujtojmë se thelbi i Elastic Stack përbëhet nga një bazë të dhënash jo-relacionale Elasticsearch, ndërfaqe web Kibana dhe mbledhës-përpunues të të dhënave (më i njohuri është Logstash, Beats të ndryshëm, APM dhe të tjerë). Një nga shtesat e këndshme të të gjithë këtij stoku produktesh është analiza e të dhënave përmes algoritmeve të mësimit të makinerisë. Në këtë artikull ne shpjegojmë se çfarë përfaqësojnë këta algoritme. Ju lutemi, ndiqni për më shumë.
Mësimi i makinerisë është një funksion me pagesë i Elastic Stack që është kushtimisht falas dhe përfshihet në paketën X-Pack. Për të filluar ta përdorni, mjafton pas instalimit të aktivizoni një provë 30-ditore. Pas skadimit të periudhës provuese, mund të kërkoni ndihmën për ta zgjatur atë ose të blini një abonim. Çmimi i abonimit llogaritet jo nga volumi i të dhënave, por nga numri i nodave në përdorim. Jo, volumi i të dhënave ndikon, padyshim, në numrin e nodave të nevojshme, por megjithatë ky qasje për licencim është më e humanizuar ndaj buxhetit të kompanisë. Nëse nuk keni nevojë për performancë të lartë — mund të kurseni.
ML në Elastic Stack është shkruar në C++ dhe funksionon jashtë JVM-së, ku ekzekutohet vetë Elasticsearch. Pra, procesi (i quajtur autodetect) konsumon gjithçka që JVM nuk e përpunon. Në një skenë demo kjo nuk është aq kritike, por në mjedis produktiv është e rëndësishme të përzgjedhësh node të veçanta për detyrat e ML.
Algoritmet e mësimit të makinerive ndahen në dy kategori — dhe . Në Elastic Stack algoritmi bie në kategorinë "pa mësues". Mund të shihni aparatin matematikor të algoritmeve të mësimit të makinerive.
Për të kryer analizën, algoritmi i mësimit të makinerive përdor të dhënat që ruhen në indekset Elasticsearch. Mund të krijoni detyra për analiza si nga ndërfaqja Kibana ashtu edhe përmes API-së. Nëse e bëni këtë përmes Kibana, disa gjëra nuk është e nevojshme t'i dini. Për shembull, indekset shtesë që përdor algoritmi gjatë funksionimit.
Indekset shtesë të përdorur gjatë analizës.ml-state — informacion mbi modelet statistikore (konfigurimet e analizës);
.ml-anomalies-* — rezultatet e punës së algoritmeve ML;
.ml-notifications — konfigurimet e njoftimeve për rezultatet e analizës.

Struktura e të dhënave në bazën Elasticsearch përbëhet nga indekset dhe dokumentet që ruhen në to. Nëse e krahasojmë me një bazë të dhënash relationale, indeksi mund të krahasohet me diagramin e bazës së dhënash, ndërsa dokumenti me një rekord në tabelë. Ky krahasim është i kushtezuar dhe është dhënë për të thjeshtuar kuptimin e materialeve të mëtejshme për ata që kanë dëgjuar vetëm për Elasticsearch.
Përmes API është i disponueshëm i njëjti funksionalitet si përmes ndërfaqes në ueb, prandaj për ilustërim dhe për të kuptuar konceptet do të tregojmë se si të konfigurojmë përmes Kibana. Në menunë e majtë ka një seksion Machine Learning, ku mund të krijoni një punë të re (Job). Në ndërfaqen Kibana, kjo duket si në imazhin më poshtë. Tani do të shqyrtojmë çdo tip punë dhe do të tregojmë llojet e analizave që mund të ndërtohen këtu.

Single Metric — analiza e një metrikë, Multi Metric — analiza e dy ose më shumë metrike. Në të dyja rastet, çdo metrikë analizohet në një mjedis të izoluar, pra algoritmi nuk merr parasysh sjelljen e metrikeve që analizohen paralelisht, siç mund të dukej në rastin e Multi Metric. Për të bërë llogaritjet duke marrë parasysh korrelacionin midis ndryshimeve të ndryshme, mund të aplikohet analiza e Popullatës. Ndërsa Advanced — është optimizimi i algoritmeve me mundësi të tjera për detyra të caktuara.
Single Metric
Analiza e ndryshimeve të një metrike të vetme — është diçka shumë e thjeshtë që mund të bëhet këtu. Pas klikimit në Create Job, algoritmi do të kërkojë anomalitë.

Në fushën Aggregation mund të zgjidhni qasjen për kërkimin e anomalive. Për shembull, në Min do të konsiderohen anomali vlerat që janë më të ulëta se tipiket. Ekzistojnë Max, High Mean, Low, Mean, Distinct dhe të tjera. Përshkrimin e të gjitha funksioneve mund ta shihni .
Në fushën Field është e specifikuar një fushë numerike në dokument, mbi të cilën do të bëjmë analizën.
Në fushën — granulariteti i intervaleve në linjën e kohës, mbi të cilët do të bëhet analiza. Mund të besoni automatizimin ose të zgjidhni manualisht. Në figurën më poshtë tregohet një shembull i granularitetit shumë të ulët — mund të kaloni një anomalie. Me këtë cilësim mund të ndryshoni ndjeshmërinë e algoritmit ndaj anomaliave.

Kohëzgjatja e të dhënave të mbledhura është një faktor kyç që ndikon në efikasitetin e analizës. Gjatë analizës, algoritmi përcakton intervalet e përsëritura, llogarit intervalin e besimit (bazat) dhe zbulon anomali — devijime të pazakonta nga sjellja normale e metrikës. Për një shembull:
Bazat për një interval të vogël të dhënash:

Kur algoritmi ka me çfarë të mësojë — bazat duken kështu:

Pas nisjes së detyrës, algoritmi përcakton devijimet anomale nga norma dhe i rendit ato sipas probabilitetit të anomalisë (në paranteza është ngjyra e etiketës përkatëse):
Warning (blu): më pak se 25
Minor (yellow): 25-50
Major (orange): 50-75
Critical (red): 75-100
Në grafikun më poshtë është një shembull me anomali të gjetura.

Këtu shikohet numri 94, i cili tregon probabilitetin e një anomali. Natyrisht, nëse vlera është afër 100, kjo tregon se kemi të bëjmë me një anomalitë. Në kolonën poshtë grafikëve shënohet një probabilitet shumë i vogël prej 0.000063634% për të pasur një vlerë të metrikës atje.
Përveç kërkimit të anomali në Kibana, mund të nisni parashikimin. Kjo është shumë e thjeshtë dhe bëhet nga e njëjta pamje me anomali — butoni Forecast në këndin e sipërm të djathtë.

Parashikimi ndërtohet maksimumi 8 javë përpara. Edhe pse dëshira për më shumë është e madhe — më shumë nuk lejohet sipas dizajnit.

Në disa situata, parashikimi do të jetë shumë i dobishëm, për shembull, kur monitorohet ngarkesa e përdoruesve në infrastrukturë.
Multi Metric
Të kalojmë te mundësia tjetër ML në Elastic Stack — analiza e disa metrikave në një grup. Por kjo nuk do të thotë se do të analizohet varësia e një metrike nga tjetra. Ky është njësoj si Single Metric, vetëm me shumë metrika në një ekran për të lehtësuar krahasimin e ndikimit të njëra-tjetrës. Do të flasim për analizën e varësisë së një metrike nga tjetra në pjesën e Population.
Pas klikimit në katrorin me Multi Metric, do të shfaqet një dritare me cilësimet. Do t'i ndalem më në detaje atyre.

për të filluar, nevojitet të zgjidhni fushat për analizë dhe aggregimin e të dhënave në to. Opsionet e agregimit këtu janë ato që janë përdorur për Metrikën e Vetme (Max, High Mean, Low, Mean, Distinct dhe të tjera). Më pas, të dhënat mund të ndahen sipas njërit nga fushat (fusha Ndarja e të Dhënave). Në këtë shembull, ne e bëmë këtë sipas fushës OriginAirportID. Vini re se grafiku i metrikeve të djathtas tani paraqitet si një sërë grafiku.

Fusha Fushat Kyçe (Influencers) ka një ndikim të drejtpërdrejtë në anomali që janë gjetur. Në mënyrë të parazgjedhur, do të ketë gjithmonë të paktën një vlerë këtu, dhe ju mund të shtoni të tjera. Algoritmi do të marrë parasysh ndikimin e këtyre fushave gjatë analizës dhe do të tregojë vlerat më 'të ndikueshme'.
Pas nisjes, në ndërfaqen Kibana do të shfaqet një pamje si kjo.

Kjo është e ashtuquajtura hartë e nxehtësisë së anomali për çdo vlerë të fushës OriginAirportID, e cila është shënuar në Ndarja e të Dhënave. Ashtu si në rastin e Metrikës së Vetme, ngjyra tregon nivelin e devijimit anormal. Një analizë e ngjashme është e përshtatshme të bëhet, për shembull, për stacionet e punës për të ndjekur ato, ku ka një sasi të dyshimtë të autorizimeve etj. Ne kemi shkruar më parë , të cilat gjithashtu mund të mblidhen dhe analizohen këtu.
Nën hartën termike është lista e anomalive, nga e cila çdo një mund të çojë në pamjen Single Metric për një analizë të detajuar.
Popullata
Për të kërkuar anomalitë midis korelacionëve të metrikave të ndryshme në Elastic Stack, ka një analizë të specializuar Popullata. Pikërisht me ndihmën e saj mund të kërkohen vlera anomale në performancën e ndonjë serveri në krahasim me të tjerët, për shembull, gjatë rritjes së numrit të kërkesave ndaj sistemit të synuar.

Në këtë ilustrim, në fushën Popullata tregohet vlera ndaj të cilës do të referohen metrikat që po analizohet. Në këtë rast, është emri i procesit. Si rezultat, ne do të shohim se si ngarkesa e procesorit nga secili prej procesëve ka ndikuar njëri te tjetri.
Vini re se grafiku i të dhënave të analizuara është ndryshe nga rastet me Single Metric dhe Multi Metric. Kjo u bë në Kibana për të përmirësuar perceptimin e shpërndarjes së vlerave të të dhënave të analizuara.

Nga grafiku tregohet se procesi stress (për ta thënë, i gjeneruar nga një utilitar të veçantë) në serverin poipu, i cili ndikoi (apo u bë influencues) në shfaqjen e kësaj anomalie.
Advanced
Analitika me përshtatje të hollësishme. Në analizën Advanced në Kibana shfaqen cilësime shtesë. Pasi të klikoni në menunë e krijimit mbi pllakën Advanced, gjithashtu shfaqet një dritare e tillë me skeda. Skeda Detajet e Punës e kemi lënë qëllimisht mënjanë, aty janë cilësimet bazë që nuk i përkasin drejtpërdrejt për konfigurimin e analizës.

Në summary_count_field_name opsionale mund të specifikoni emrin e fushës nga dokumentet që përmban vlera të agreguara. Në këtë shembull — numri i ngjarjeve për minutë. Në jysh specifikohet emri i fushës në dokument që përmban një vlerë të caktuar. Në përputhje me këtë fushë, të dhënat e analizuar mund të ndahen në nëngrupe. Vëreni butonin Shto detektor në iluztrimin e mëparshëm. Më poshtë është rezultati i klikimit mbi këtë buton.

Këtu është një bllok shtesë cilësimesh për konfigurimin e detektorit të anomalive për një detyrë të caktuar. Raste të caktuara përdorimi (veçanërisht për sigurinë) ne planifikojmë t'i shqyrtojmë në artikujt e ardhshëm. Për shembull, një nga rastet e shqyrtuara. Ai lidhet me kërkimin e vlerave të rralla dhe realizohet .
Në fushën function mund të zgjidhet një funksion specifik për kërkimin e anomali. Përveç të ralla, ka edhe disa funksione interesante — . Ato zbulojnë anomali në sjelljen e metrikeve gjatë ditës ose javës përkatësisht. Funkcioni tjetër i analizës .
Në emri_i_fushës specifikon fushën e dokumentit sipas së cilës do të kryhet analiza. Nga_emri_i_fushës mund të përdoret për të ndarë rezultatet e analizës sipas çdo vlerë të veçantë të caktuar këtu në fushën e dokumentit. Nëse plotëson përmes_emrit_të_fushës do të përfitohet një analizë populations, siç shqyrtuam më lart. Nëse specifikohet një vlerë në fusha_partition, atëherë për këtë fushë dokumenti do të llogariten linja bazë të ndryshme për çdo vlerë (si vlera mund të shërbejë, për shembull, emri i serverit ose procesit në server). Në përjashto_të_frekuentat mund të zgjidhet all ose none, që do të thotë përjashtim (ose përfshirje) e vlerave të zakonshme të fushave të dokumente.
Në këtë artikull, përpiqemi të japim një përmbledhje sa më të saktë të mundësive të mësimit të makinerive në Elastic Stack, duke lënë shumë detaje pas skenës. Na tregoni në komentet se cilat raste keni arritur të zgjidhni me ndihmën e Elastic Stack dhe për cilat detyra e përdorni atë. Për t'u lidhur me ne, mund të përdorni mesazhet personale në Habr ose .
Burimi: habr.com
