Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Kujtojmë se Elastic Stack bazohet në një bazë të dhënash jo-relacionale Elasticsearch, një ndërfaqe në internet Kibana dhe ndërlidhës-dhënës (më i njohur Logstash, Beats të ndryshme, APM dhe të tjera). Një prej shtesave të këndshme të gjithë këtij rrjeti produktesh është analiza e të dhënave me ndihmën e algoritmeve të mësimit makinerik. Në këtë artikull, ne shqyrtojmë se çfarë përfaqësojnë këto algoritme. Ju lutemi, lexoni më tej.

MĂ«simi makinerik Ă«shtĂ« njĂ« funksion me pagesĂ« i Elastic Stack 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 sĂ« provĂ«s, mund tĂ« kĂ«rkoni mbĂ«shtetje pĂ«r zgatjen e saj ose tĂ« blini njĂ« abonim. Çmimi i abonimit nuk llogaritet sipas sasisĂ« sĂ« tĂ« dhĂ«nave, por sipas numrit tĂ« nyjeve tĂ« pĂ«rdorura. Po, sasia e tĂ« dhĂ«nave natyrisht ndikon nĂ« numrin e nyjeve tĂ« nevojshme, por ende ky qasje pĂ«r licencimin Ă«shtĂ« mĂ« humane 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, në të cilën funksionon vetë Elasticsearch. Kështu që procesi (ai është quajtur autodetect) konsumon gjithçka që JVM nuk e përpunon. Në një demonstrim kjo nuk është kaq kritike, por në një ambient prodhimi është e rëndësishme të ndahen nyje të veçanta për detyrat ML.

Algoritmet e mĂ«simit makinerik ndahen nĂ« dy kategori — me mbikĂ«qyrje dhe pa mbikĂ«qyrje. NĂ« Elastic Stack algoritmi Ă«shtĂ« nga kategoria "pa mbikĂ«qyrje". Me kĂ«tĂ« lidhje mund tĂ« shihni aparatin matematikor tĂ« algoritmeve tĂ« mĂ«simit makinerik.

Për të kryer analizën, algoritmi i mësimit makinerik përdor të dhënat e ruajtura në indekset Elasticsearch. Të dhëna për analizë mund të krijohen si nga ndërfaqja Kibana ashtu edhe përmes API-së. Nëse e bëni këtë përmes Kibana-s, disa gjëra nuk është e nevojshme të dihen. Për shembull, indekset shtesë që përdor algoritmi gjatë punës së tij.

Indeksat shtesĂ« tĂ« pĂ«rdorur gjatĂ« procesit tĂ« analizĂ«s.ml-state — informacion mbi modelet statistikore (caktimet e analizĂ«s);
.ml-anomalies-* — rezultatet e punĂ«s sĂ« algoritmeve ML;
.ml-notifications — caktimet e njoftimeve mbi rezultatet e analizĂ«s.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Struktura e dhënash në bazën Elasticsearch përbëhet nga indekse dhe dokumentet që ruhen në to. Nëse e krahasojmë me një bazë të dhënash relationale, indeksi mund të krahasohet me skemën e bazës së të dhënave, ndërsa dokumenti me një rekord në tabelë. Ky krahasim është i kushtëzuar 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-së është i aksesueshëm të njëjtin funksionalitet si përmes ndërfaqes web, prandaj për qartësi dhe kuptimin e koncepteve ne do të tregojmë se si të konfigurojmë përmes Kibana. Në menunë e majtë ekziston seksioni Machine Learning, në të cilin mund të krijoni një detyrë të re (Job). Në ndërfaqen Kibana kjo duket si në imazhin më poshtë. Tani do të shqyrtojmë çdo lloj detyre dhe do të tregojmë llojet e analizës që mund të krijoni këtu.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Single Metric — analiza e njĂ« metri, Multi Metric — analiza e dy apo mĂ« shumĂ« metrikeve. NĂ« tĂ« dy rastet, çdo metrikĂ« analizohet nĂ« njĂ« ambient tĂ« izoluar, dmth. algoritmi nuk merr parasysh sjelljen e metrikeve qĂ« shqyrtohen paralelisht ashtu siç mund tĂ« dukej nĂ« rastin e Multi Metric. PĂ«r tĂ« kryer llogaritjen duke marrĂ« parasysh korrelacionin e metrikeve tĂ« ndryshme, mund tĂ« aplikoni analizĂ«n e PopullatĂ«s. Dhe Advanced — Ă«shtĂ« cilĂ«simi i imĂ«t i algoritmeve me opsione shtesĂ« pĂ«r detyra tĂ« caktuara.

Single Metric

Analiza e ndryshimeve tĂ« njĂ« metri tĂ« vetme — Ă«shtĂ« gjĂ«ja mĂ« e thjeshtĂ« qĂ« mund tĂ« bĂ«ni kĂ«tu. Pasi tĂ« klikoni Create Job, algoritmi do tĂ« kĂ«rkojĂ« anomali.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Në fushën Agregimi mund të zgjidhni qasjen për të gjetur anomali. Për shembull, kur Min do të konsiderohen si anomali vlerat nën ato tipike. Ka Max, Hign Mean, Low, Mean, Distinct dhe të tjera. Përshkrimi i të gjitha funksioneve mund të shihet në lidhje.

Në fushën Fusha tregon fushën numerike në dokument, mbi të cilën do ta realizojmë analizën.

NĂ« fushĂ«n Bucket span — granulariteti i intervaleve nĂ« kohĂ«linĂ«, mbi tĂ« cilat do tĂ« bĂ«het analiza. Mund t’i besoni automatizimit ose ta zgjidhni manualisht. NĂ« imazhin mĂ« poshtĂ« Ă«shtĂ« dhĂ«nĂ« njĂ« shembuj i granularitetit tĂ« ulĂ«t — mund tĂ« humbni njĂ« anomali. Me anĂ« tĂ« kĂ«tij cilĂ«simi mund tĂ« ndryshoni ndjeshmĂ«rinĂ« e algoritmit ndaj anomali.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

KohĂ«zgjatja e tĂ« dhĂ«nave tĂ« mbledhura — Ă«shtĂ« çështje kyçe, e cila ndikon nĂ« efikasitetin e analizĂ«s. GjatĂ« analizĂ«s, algoritmi pĂ«rcakton intervalet e pĂ«rsĂ«ritura, llogarit intervalin e besueshmĂ«risĂ« (bazat e linjĂ«s) dhe identifikon anomali — devijime tĂ« pazakonshme nga sjellja e zakonshme e metrikeve. Thjesht pĂ«r shembull:

Bazat përkatëse për një sasi të vogël të dhënash:

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Kur algoritmi ka për të mësuar diçka - bazat duken kështu:

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Pas fillimit të detyrës, algoritmi përcakton devijimet anomale nga norma dhe i rendit ato sipas probabilitetit të anomalisë (në kllapa është treguar ngjyra e etiketës përkatëse):

Warning (blu): më pak se 25
Minor (e verdhë): 25-50
Major (portokalli): 50-75
Critical (e kuqe): 75-100

Në grafikën më poshtë është një shembull me anomali të gjetura.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Këtu shihet numri 94, i cili tregon probabilitetin e anomalisë. Kuptohet se, pasi vlera është afër 100, kemi një anomalie. Në kolonën nën grafik është shfaqur një probabilitet ekstremisht i vogël prej 0.000063634% për shfaqjen e atij vlerë metriç.

Përveç gjetjes së anomalive, në Kibana mund të filloni parashikimin. Kjo bëhet lehtësisht dhe nga e njëjta pamje me anomali - butoni Forecast në këndin e sipërm të djathtë.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Parashikimi ndërtomaximumi në 8 javët e ardhshme. Edhe nëse dëshiron shumë - nuk lejohet më shumë për arsye dizajni.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Në disa situata parashikimi do të jetë shumë i dobishëm, për shembull, kur ndiqet ngarkesa e përdoruesve në infrastrukturë.

Multi Metric

Kalojmë te mundësia tjetër e 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. Kjo është e njëjtë si Single Metric, vetëm me shumë metrika në një ekran për lehtësinë e krahasimit të ndikimit të njëra mbi tjetrën. Për analizën e varësisë së një metrike nga njëra tjetra, do të flasim në pjesën Population.

Pas klikimit në katrorin e Multi Metric do të shfaqet një dritare me cilësimet. Ne do të ndalemi më në detaje mbi to.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Fillimisht duhet zgjedhur fushat për analizë dhe agregimin e të dhënave mbi to. Opcione të agregimit këtu janë të njëjtat si për Single Metric (Max, Hign Mean, Low, Mean, Distinct dhe të tjera). Më pas, të dhënat, nëse dëshirohet, ndahen sipas njërit prej fushave (fusha Split Data). Në shembullin tonë, e kemi bërë për fushën OriginAirportID. Vini re se tani grafiku i metrikave në të djathtë është paraqitur në formën e shumë grafikëve.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Fusha Key Fields (Influencers) ndikon drejtpërdrejt në anomali të gjetura. Nga ana tjetër, gjithmonë do të ketë të paktën një vlerë këtu, dhe ju mund të shtoni të tjera. Algoritmi do të ketë parasysh ndikimin e këtyre fushave gjatë analizës dhe do të tregojë vlerat më "ndikues".

Pas fillimit, në ndërfaqen e Kibana do të duket afërsisht kështu.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Kjo është një hartë nxehtësie e anomaliëve për secilën vlerë të fushës OriginAirportID, e cila është treguar nga ne. Split Data. Si në rastin e Single Metric, ngjyra tregon nivelin e devijimit anormal. Një analizë e ngjashme është e dobishme, për shembull, për stacionet e punës për të ndjekur ato, ku ka shumë autorizime të dyshimta, etj. Ne kemi shkruar tashmë për ngjarjet e dyshimta në EventLog Windows, të cilat gjithashtu mund të mblidhen dhe analizohen këtu.

Nën hartën termike, lista e anomali, nga çdo një mund të kaloni në pamjen e Single Metric për analizë të detajuar.

Popullsia

Për të kërkuar anomali në mes të korelacioneve midis metrikave të ndryshme në Elastic Stack, ekziston analiza e specializuar të Popullsisë. Me anë të saj, mund të kërkoni vlera anormale në performancën e ndonjë serveri në krahasim me të tjerët në rast se, për shembull, rritet numri i kërkesave në sistemin e synuar.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Në këtë ilustrim, në fushën e Popullsisë është treguar vlera, ndaj së cilës do t'i referohemi metrikave që po analizohet. Në këtë rast, është emri i procesit. Si rezultat, do të shohim si ngarkesa e procesorit nga secili nga proceset ka ndikuar në njëri-tjetrin.

Vini re se grafiku i të dhënave të analizuar është ndryshe nga rastet me Single Metric dhe Multi Metric. Kjo është bërë në Kibana me qëllim për një perceptim më të mirë të shpërndarjes së vlerave të të dhënave të analizuar.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Nga grafiku, duket se procesi ka sjellë anomali stress (për ta thënë, i krijuar nga një utilitar të veçantë) në serverin poipu, i cili ndihmoi (ose ishte influenceri) në shfaqjen e kësaj anomie.

TĂ« avancuara

Analitika me cilësi të lartë. Gjatë analizës së avancuar në Kibana, shfaqen cilësime të tjera. Pas klikimit në menunë e krijimit në pllakën Advanced shfaqet ky dritare me skeda. Skedën Detajet e Punës e kemi lënë të kaluar qëllimisht, pasi aty ka cilësime bazike që nuk lidhen drejtpërdrejt me cilësimin e analizës.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

NĂ« emri_fushĂ«s_sĂ«_pĂ«rmbledhjes mund tĂ« specifikohet opsionalisht emri i fushĂ«s nga dokumentet qĂ« pĂ«rmban vlerat e agreguara. NĂ« kĂ«tĂ« rast — numri i ngjarjeve pĂ«r minutĂ«. NĂ« emri_fushĂ«s_sĂ«_kategorisĂ« specifikohet emri i vlerĂ«s sĂ« fushĂ«s nga dokumenti, i cili pĂ«rmban njĂ« vlerĂ« tĂ« caktuar. Sipas maskĂ«s sĂ« kĂ«saj fushe, mund tĂ« ndajmĂ« tĂ« dhĂ«nat e analizuar nĂ« nĂ«ngrupe. Vini re butonin Shto detektor nĂ« ilustrimin e mĂ«parshĂ«m. MĂ« poshtĂ« Ă«shtĂ« rezultati i klikimit nĂ« kĂ«tĂ« buton.

Po merremi me Machine Learning në Elastic Stack (ai që është Elasticsearch, ai që është ELK)

Këtu është një bllok shtesë cilësimesh për të konfigurimin e detektorëve të anomalisë për një detyrë të caktuar. Raste specifike përdorimi (veçanërisht për sigurinë) ne planifikojmë t'i shqyrtojmë në artikujt e ardhshëm. Si shembull, shikoni një nga rastet e shqyrtuara. Ai lidhet me gjetjen e vlerave që shfaqen rrallë dhe realizohet me funksionin rare.

NĂ« fushĂ«n function mund tĂ« zgjidhet njĂ« funksion i caktuar pĂ«r gjetjen e anomalisĂ«. PĂ«rveç rare, ka edhe disa funksione interesante tĂ« tjera — time_of_day dhe time_of_week. Ato zbulojnĂ« anomali nĂ« sjelljen e metrike gjatĂ« ditĂ«s ose javĂ«s pĂ«rkatĂ«sisht. Funksionet e tjera tĂ« analizĂ«s janĂ« nĂ« dokumentacion.

Në field_name specifikon fushën e dokumentit, sipas së cilës do të bëhet analiza. By_field_name mund të përdoret për ndarjen e rezultateve të analizës sipas çdo vlere të veçantë të fushës së dokumentit të specifikuar këtu. Nëse mbushni over_field_name do të rezultojë në një analizë populacioni, të cilin ne e shqyrtuam më lart. Nëse specifikoni një vlerë në partition_field_name, atëherë për këtë fushë dokumenti do të llogariten bazat e veçanta për çdo vlerë (si vlerë mund të shërbejë, për shembull, emri i serverit ose procesit në server). Në exclude_frequent mund të zgjidhet të gjitha ose none, që do të thotë përjashtim (ose përfshirje) e vlerave të shpeshta të fushave të dokumenteve.

Në këtë artikull përpiqem t'i ofrojmë një pasqyrë të shkurtuar të mundësive të mësimit automatik në Elastic Stack, ka ende shumë detaje pas skenës. Na tregoni në komentet se cilat raste arritët t'i zgjidhni me ndihmën e Elastic Stack dhe për cilat detyra e përdorni. Për të na kontaktuar, mund të përdorni mesazhe personale në Habrë ose formën e feedback-ut në faqen e internetit.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster