Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Tuletame meelde, et Elastic Stacki alus on mitte-suhteandmebaas Elasticsearch, veebiliides Kibana ja andmete töötlemise kogujad (kĂ”ige tuntumad on Logstash, erinevad Beats, APM ja teised). Üks meeldiv lisa kogu sellele tootehulgale on andmete analĂŒĂŒs masinĂ”ppe algoritmide abil. Selles artiklis tutvume nende algoritmidega. Palun vaata allapoole.

MasinÔpe on tasuline funktsioon tinglikult tasuta Elastic Stackis ja kuulub X-Packi paketisse. Selle kasutamiseks piisab, kui aktiveerida pÀrast installimist 30-pÀevane prooviversioon. Prooviperioodi lÔppedes saab taotleda toe pikendamist vÔi osta tellimust. Tellimuse hind ei arvestata andmehulga jÀrgi, vaid kasutatavaid sÔlmi. Jah, andmehulga suurus mÔjutab kindlasti vajalike sÔlmede arvu, kuid selline litsentseerimise lÀhenemine on ettevÔtte eelarve suhtes mÀrksa humanitaarsem. Kui kÔrge jÔudlus pole vajalik, saab ka sÀÀsta.

Elastic Stacki masinĂ”pe on kirjutatud C++-s ja töötab vĂ€ljaspool JVM-i, kus töötab ka Elasticsearch. See tĂ€hendab, et protsess (mida muide nimetatakse autodetekteerimiseks) kasutab kĂ”ike, mida JVM ei suuda töödelda. Demovariandis ei ole see nii kriitiline, kuid tootmisolukordades on oluline eraldada masinĂ”ppe ĂŒlesannete jaoks eraldi sĂ”lmed.

MasinĂ”ppe algoritmid jagunevad kaheks kategooriaks — Ă”petusega ja ilma Ă”petuseta. Elastic Stackis on algoritm kategoriiast "ilma Ă”petuseta". Matemaatikale tuginevaid masinĂ”ppe algoritme saab vaadata, sellel lingil matemaatiliste algoritmide kohta.

AnalĂŒĂŒsi lĂ€biviimiseks kasutab masinĂ”ppe algoritm andmeid, mis on salvestatud Elasticsearchi indeksitesse. AnalĂŒĂŒsitööde loomine on vĂ”imalik nii Kibana liidesest kui ka API kaudu. Kui seda teha Kibana kaudu, ei pea te paljusid asju teadma. NĂ€iteks tĂ€iendavad indeksid, mida algoritm tööprotsessis kasutab.

TĂ€iendavad indeksid, mida kasutatakse analĂŒĂŒsi kĂ€igus.ml-state — teave statistiliste mudelite (analĂŒĂŒsiseadistuste) kohta;
.ml-anomalies-* — masinĂ”ppe algoritmide tulemused;
.ml-notifications — teavitamise seaded analĂŒĂŒsi tulemuste kohta.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Elasticsearchi andmeehitus koosneb indeksitest ja nendes hoitavatest dokumentidest. Kui vÔrrelda relatsioonilise andmebaasiga, siis indeksit vÔib vÔrrelda andmebaasi skeemiga, samas kui dokument vastab tabeli reale. See vÔrdlus on tingimuslik ja on esitatud, et lihtsustada edasise materjali mÔistmist neile, kes on Elasticsearchist vaid kuulnud.

API kaudu on saadaval sama funktsionaalsus, mis veebiliidese kaudu, seega, et nĂ€idata kontseptsioonide seadistamist, vaatame, kuidas seadistada lĂ€bi Kibana. Vasakul menĂŒĂŒs on jaotis Machine Learning, kus saab luua uue ĂŒlesande (Job). Kibana liideses nĂ€eb see vĂ€lja nagu alloleval pildil. Praegu kĂ€sitleme iga ĂŒlesande tĂŒĂŒpi ja nĂ€itame analĂŒĂŒsi vorme, mida siin saab konstruida.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Single Metric — ĂŒhe metri analĂŒĂŒs, Multi Metric — kahe vĂ”i enama metri analĂŒĂŒs. MĂ”lemal juhul analĂŒĂŒsitakse iga metri eraldi, st algoritm ei arvesta samal ajal analĂŒĂŒsitavate metrikate kĂ€itumist, nagu vĂ”iks Multi Metric korral tunduda. Erinevate metrikate korrelatsiooni arvesse vĂ”tmiseks saab rakendada populatsiooni analĂŒĂŒsi. Advanced — see on algoritmide peenhÀÀlestamine tĂ€iendavate valikutega spetsiifiliste ĂŒlesannete jaoks.

Single Metric

Ühe ainulaadse metri muutuste analĂŒĂŒs on kĂ”ige lihtsam, mida siin teha saab. PĂ€rast Create Job nuppu vajutamist otsib algoritm anomaaliaid.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

VĂ€ljal Aggregation saab valida anomaaliate otsimise lĂ€henemise. NĂ€iteks, kui Min peetakse anomaaliateks vÀÀrtusi, mis on madalamad tĂŒĂŒpilistest. On olemas Max, High Mean, Low, Mean, Distinct ja teised. KĂ”iki funktsioone saab vaadata linki pidi.

VĂ€ljal Field moodustab numbrilise vĂ€li dokumendis, mille pĂ”hjal teeme analĂŒĂŒsi.

VĂ€ljal Bucket span — ajaskaalal analĂŒĂŒsimiseks valitud intervallide tĂ€psus. VĂ”id usaldada automaatikat vĂ”i valida kĂ€sitsi. Alloleval pildil on toodud nĂ€ide liiga madalast tĂ€psusest — vĂ”id anomaalia maha magada. Selle seadistusega saab muuta algoritmi tundlikkust anomaaliate suhtes.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Kogutud andmete kestus on peamine asi, mis mĂ”jutab analĂŒĂŒsi efektiivsust. AnalĂŒĂŒsi kĂ€igus mÀÀrab algoritm korduvad intervallid, arvutab usaldusinterval (pĂ”hilinid) ja tuvastab anomaaliad — ebatĂŒĂŒpilised kĂ”rvalekalded tavapĂ€rasest metri kĂ€itumisest. Lihtsa nĂ€itena:

PÔhijooned vÀikese andmeosa puhul:

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Kui algoritmil on, millelt Ă”ppida — nĂ€evad pĂ”hijooned vĂ€lja nii:

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

PĂ€rast ĂŒlesande kĂ€ivitamist mÀÀrab algoritm normist kĂ”rvalekaldumisi ja jĂ€rjestab need tĂ”enĂ€osuse jĂ€rgi (nende vastavate siltide vĂ€rv on nĂ€idatud sulgudes):

Warning (sinine): alla 25
Minor (kollane): 25-50
Major (oranĆŸ): 50-75
Critical (punane): 75-100

Alloleval graafikul nÀide leitud kÔrvalekaldumistest.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Siin on number 94, mis tÀhistab kÔrvalekalde tÔenÀosust. Selge on, et kuna vÀÀrtus on lÀhedane 100-le, siis on meil tÔepoolest kÔrvalekalle. Graafiku all olevas veerus on nÀidatud ebatavaliselt madal tÔenÀosus 0.000063634% selle mÔÔtme vÀÀrtuse ilmumiseks.

Lisaks kĂ”rvalekallete leidmisele Kibanas saab kĂ€ivitada ka prognooside koostamise. Seda on lihtne teha ja sama anomaaliate vaate kaudu — nupp Forecast paremas ĂŒlanurgas.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Prognoos koostatakse maksimaalselt 8 nĂ€dala vĂ”rra ette. Isegi kui vĂ€ga sooviks — rohkem ei saa, see on disaini osa.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Teatud olukordades on prognoos vÀga kasulik, nÀiteks kui jÀlgitakse kasutajakoormust infrastruktuurile.

Multi Metric

Liigume jĂ€rgmise ML vĂ”imaluse juurde Elastic Stackis — mitme mÔÔtme samal ajal analĂŒĂŒs. Kuid see ei tĂ€henda, et analĂŒĂŒsitakse ĂŒhe mÔÔtme sĂ”ltuvust teisest. See on sama, mis Single Metric, lihtsalt mitme mÔÔtme jaoks ĂŒhel ekraanil mugavuse huvides, et vĂ”rrelda ĂŒksteise mĂ”ju. Ühe mÔÔtme sĂ”ltuvuse analĂŒĂŒsimisest rÀÀgime jaotises Population.

PĂ€rast Multi Metrici ruudule klikimist ilmub seadistuste aken. Neid peatume ĂŒksikasjalikumalt.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Esmalt tuleb valida analĂŒĂŒsimiseks vĂ€ljad ja andmete agregatsioon nende jĂ€rgi. AgregatsioonivĂ”imalused on samad, mis Single Metrici puhul (Max, High Mean, Low, Mean, Distinct ja muud). Edasi jagatakse andmed soovi korral ĂŒhe vĂ€lja jĂ€rgi (vĂ€li Split Data). NĂ€ites oleme seda teinud vĂ€lja OriginAirportID. Pange tĂ€hele, et paremal kĂ”rvalekallete graafik on nĂŒĂŒd esitatud hulga graafikute kujul.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

VĂ€li Key Fields (Influencers) mĂ”jutavad otseselt leitud kĂ”rvalekaldeid. Vaikimisi on siin alati vĂ€hemalt ĂŒks vÀÀrtus, kuid saate lisada tĂ€iendavaid. Algoritm arvestab nende vĂ€ljade mĂ”ju analĂŒĂŒsi kĂ€igus ja nĂ€itab kĂ”ige „mĂ”julisemaid” vÀÀrtusi.

PÀrast kÀivitamist ilmub Kibana kasutajaliideses enam-vÀhem selline pilt.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

See on nn anomaaliate soojuskaart iga vĂ€lja kohta OriginAirportID, mille me mÀÀrasime Split Data. Nagu ka Single Metric puhul, vĂ€rv nĂ€itab ebanormaalse kĂ”rvalekalde taset. Sarnast analĂŒĂŒsi on mugav teha nĂ€iteks tööjaamade puhul, et jĂ€lgida neid, kus on kahtlaselt palju autentimisi jne. Oleme juba kirjutanud kahtlastest sĂŒndmustest EventLog Windowsis, mida saab samuti siia koguda ja analĂŒĂŒsida.

Soojuskaardi all on anomaaliate loetelu, millest igast saab minna Single Metric vaatesse detailanalĂŒĂŒsiks.

Populatsioon

Ebanormaalsete korrelatsioonide otsimiseks erinevate metrikate vahel Elastic Stackis on spetsialiseerunud populatsiooni analĂŒĂŒs. Kui suurendada nĂ”udluse arvu sihtsĂŒsteemile, saab selle abil otsida ebanormaalseid vÀÀrtusi mingi serveri jĂ”udluses vĂ”rreldes teistega.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Selles illustratsioonis on populatsiooni vĂ€ljas nĂ€idatud vÀÀrtus, millega analĂŒĂŒsitavad metrikad seonduvad. Antud juhul on see protsessi nimi. Tulemuseks nĂ€eme, kuidas iga protsessi protsessorikoormus omavahel mĂ”jutas.

Pange tĂ€hele, et analĂŒĂŒsitavate andmete graafik erineb Single Metric ja Multi Metric juhtudest. See on tehtud Kibana's disainitud viisil, et parandada analĂŒĂŒsitavate andmete vÀÀrtuste jaotuse tajumist.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Graafikult on nÀha, et protsess toimis ebanormaalselt stress (mille tÔi esile spetsiaalne utiliit) serveris poipu, mis mÔjutas (vÔi oli mÔjutaja) selle anomaalia tekkimist.

Advanced

TĂ€pne analĂŒĂŒtika. Advanced analĂŒĂŒsis kuvatakse Kibana's tĂ€iendavad seaded. PĂ€rast loomise menĂŒĂŒ tile Advanced klikkimist avaneb selline aken vahekategooriatega. Kategooriat Job Details jĂ€eti tahtlikult vahele, seal on pĂ”hiseaded, mis ei ole otseselt seotud analĂŒĂŒsi seadistamisega.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Uues summary_count_field_name vĂ”ib valikuliselt tĂ€psustada dokumentide vĂ€ljal, mis sisaldab agreggeeritud vÀÀrtusi. Selles nĂ€ites — sĂŒndmuste arv minutis. categorization_field_name mille puhul mÀÀratakse dokumendi vĂ€lja nimi, mis sisaldab mingit muutuvat vÀÀrtust. Selle vĂ€lja mustri jĂ€rgi saab analĂŒĂŒsitavaid andmeid jagada alagruppideks. Pange tĂ€hele nuppu Add detector eelnevas illustratsioonis. Allpool on nĂ€ha tulemused, kui sellele nupule vajutada.

Uurime Machine Learning'i Elastic Stackis (tuntud ka kui Elasticsearch, ELK)

Siin on tĂ€iendav seadistuste plokk anomaaliade tuvastaja kohandamiseks konkreetse ĂŒlesande jaoks. Konkreetseid kasutusjuhtumeid (eriti turvalisuse osas) kavatseme arutada jĂ€rgmistes artiklites. NĂ€iteks, vaadake ĂŒht analĂŒĂŒsitud juhtumit. See on seotud harvaesinevate vÀÀrtuste otsimisega ja rakendatakse funktsiooni rare.

VĂ€ljal function vĂ”ite valida konkreetse funktsiooni anomaaliade otsimise jaoks. Lisaks rare, on veel paar huvitavat funktsiooni — time_of_day ja time_of_week. Need tuvastavad aheldumisi metrikate kĂ€itumises pĂ€eva vĂ”i nĂ€dala jooksul vastavalt. ÜlejÀÀnud analĂŒĂŒsifunktsioonid leidub dokumentatsioonis.

Uues field_name mĂ€rgib dokumenti vĂ€lja, mille alusel analĂŒĂŒs toimub. By_field_name vĂ”ib kasutada analĂŒĂŒsi tulemuste jagamiseks iga eraldi vÀÀrtuse pĂ”hjal, mida antud vĂ€lja dokumentis kuvab. Kui tĂ€ita over_field_name saadakse population-analĂŒĂŒs, millest rÀÀkisime varem. Kui mÀÀrata vÀÀrtus partition_field_name, siis selle vĂ€lja pĂ”hjal arvutatakse eraldi alusjooned iga vÀÀrtuse jaoks (vÀÀrtusena vĂ”ivad esineda nĂ€iteks serveri vĂ”i serveril töötava protsessi nimed). exclude_frequent saab valida all vĂ”i none, mis tĂ€hendab, et sagedasti esinevaid dokumendi vĂ€ljade vÀÀrtusi vĂ€listatakse (vĂ”i lisatakse).

Artiklis pĂŒĂŒdsime vĂ”imalikult lĂŒhidalt anda ĂŒlevaate masinĂ”ppe vĂ”imalustest Elastic Stackis, samas jĂ€i palju detaile kajastamata. Jagage kommentaarides, milliseid juhtumeid olete Elastic Stacki abil lahendanud ja milliste ĂŒlesannete jaoks seda kasutate. Meiega ĂŒhenduse vĂ”tmiseks vĂ”ite kasutada isiklikke sĂ”numeid Habr's vĂ”i tagasisidevormi meie veebisaidil.

Allikas: habr.com

Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid đŸ”„ Osta usaldusvÀÀrne hostimine veebilehtede jaoks DDoS-i kaitsega, VPS VDS serverid | ProHoster