Naj spomnimo, da Elastic Stack temelji na nerelacijski bazi podatkov Elasticsearch, spletnem vmesniku Kibana ter zbiralnikih in procesorjih podatkov (najbolj znani Logstash, razni Beats, APM in drugi). Eden od prijetnih dodatkov celotnemu naštetemu naboru izdelkov je analiza podatkov z uporabo algoritmov strojnega učenja. V članku razumemo, kaj so ti algoritmi. Prosim pod kat.
Strojno učenje je plačljiva funkcija programske opreme za skupno rabo Elastic Stack in je vključena v paket X-Pack. Če ga želite začeti uporabljati, preprosto aktivirajte 30-dnevno preskusno različico po namestitvi. Po poteku preizkusnega obdobja lahko zahtevate podporo za podaljšanje ali nakup naročnine. Stroški naročnine se ne izračunajo glede na količino podatkov, temveč glede na število uporabljenih vozlišč. Ne, količina podatkov seveda vpliva na število potrebnih vozlišč, vendar je ta pristop k licenciranju bolj human glede na proračun podjetja. Če ni potrebe po visoki produktivnosti, lahko prihranite denar.
ML v Elastic Stack je napisan v C++ in deluje zunaj JVM, v katerem teče sam Elasticsearch. To pomeni, da proces (mimogrede, imenuje se samodejno zaznavanje) porabi vse, česar JVM ne pogoltne. Na predstavitvenem stojalu to ni tako kritično, v produkcijskem okolju pa je pomembno dodeliti ločena vozlišča za naloge ML.
Algoritmi strojnega učenja spadajo v dve kategoriji −
Za izvedbo analize algoritem strojnega učenja uporablja podatke, shranjene v indeksih Elasticsearch. Naloge za analizo lahko ustvarite tako iz vmesnika Kibana kot prek API-ja. Če to počnete prek Kibane, vam nekaterih stvari ni treba vedeti. Na primer dodatni indeksi, ki jih algoritem uporablja med svojim delovanjem.
Dodatni indeksi, uporabljeni v procesu analize.ml-state — informacije o statističnih modelih (nastavitve analize);
.ml-anomalies-* — rezultati algoritmov ML;
.ml-notifications — nastavitve za obvestila na podlagi rezultatov analize.
Struktura podatkov v bazi Elasticsearch je sestavljena iz indeksov in dokumentov, ki so shranjeni v njih. V primerjavi z relacijsko bazo podatkov lahko indeks primerjamo s shemo baze podatkov, dokument pa z zapisom v tabeli. Ta primerjava je pogojna in je namenjena poenostavitvi razumevanja nadaljnjega gradiva za tiste, ki so le slišali za Elasticsearch.
Ista funkcionalnost je na voljo prek API-ja kot prek spletnega vmesnika, zato bomo zaradi jasnosti in razumevanja konceptov pokazali, kako jo konfigurirati prek Kibane. V meniju na levi je razdelek Strojno učenje, kjer lahko ustvarite novo delovno mesto. V vmesniku Kibana je videti kot na spodnji sliki. Zdaj bomo analizirali vsako vrsto naloge in prikazali vrste analiz, ki jih je mogoče sestaviti tukaj.
Single Metric - analiza ene metrike, Multi Metric - analiza dveh ali več metrik. V obeh primerih se vsaka metrika analizira v izoliranem okolju, tj. algoritem ne upošteva obnašanja vzporedno analiziranih metrik, kot se morda zdi v primeru Multi Metric. Za izvedbo izračunov ob upoštevanju korelacije različnih meritev lahko uporabite analizo populacije. In Advanced natančno nastavlja algoritme z dodatnimi možnostmi za določene naloge.
Enotna metrika
Analiza sprememb ene same metrike je najpreprostejša stvar, ki jo lahko naredimo tukaj. Po kliku na Create Job bo algoritem poiskal anomalije.
Na področju Združevanje lahko izberete pristop k iskanju nepravilnosti. Na primer, kdaj Min vrednosti pod tipičnimi vrednostmi se bodo štele za nenormalne. Jejte Max, High Mean, Low, Mean, Distinct in drugi. Opise vseh funkcij najdete
Na področju Polje označuje številsko polje v dokumentu, na katerem bomo izvajali analizo.
Na področju
Trajanje zbranih podatkov je ključna stvar, ki vpliva na učinkovitost analize. Med analizo algoritem identificira ponavljajoče se intervale, izračuna intervale zaupanja (izhodišča) in prepozna anomalije – netipična odstopanja od običajnega obnašanja metrike. Samo za primer:
Osnove z majhnim delom podatkov:
Ko se ima algoritem česa naučiti, je izhodišče videti takole:
Po zagonu naloge algoritem določi nenormalna odstopanja od norme in jih razvrsti glede na verjetnost anomalije (barva ustrezne oznake je navedena v oklepaju):
Opozorilo (modro): manj kot 25
Minor (rumena): 25-50
Major (oranžna): 50-75
Kritično (rdeča): 75-100
Spodnji graf prikazuje primer najdenih anomalij.
Tukaj lahko vidite številko 94, ki označuje verjetnost anomalije. Jasno je, da ker je vrednost blizu 100, pomeni, da imamo anomalijo. Stolpec pod grafom prikazuje slabšalno majhno verjetnost, da se tam pojavi 0.000063634 % metrične vrednosti.
Poleg iskanja anomalij lahko v Kibani izvajate napovedovanje. To se naredi preprosto in iz istega pogleda z anomalijami - gumb Napoved v zgornjem desnem kotu.
Napoved se naredi za največ 8 tednov vnaprej. Tudi če si res želite, to po zasnovi ni več mogoče.
V nekaterih situacijah bo napoved zelo uporabna, na primer pri spremljanju uporabniške obremenitve infrastrukture.
Več metrik
Preidimo na naslednjo funkcijo ML v Elastic Stack – analiziranje več metrik v enem paketu. Vendar to ne pomeni, da bo analizirana odvisnost ene metrike od druge. To je enako kot ena meritev, vendar z več meritvami na enem zaslonu za enostavno primerjavo vpliva ene na drugo. O analizi odvisnosti ene metrike od druge bomo govorili v razdelku Populacija.
Po kliku na kvadrat z Multi Metric se prikaže okno z nastavitvami. Oglejmo si jih podrobneje.
Najprej morate izbrati polja za analizo in združevanje podatkov na njih. Možnosti združevanja so tukaj enake kot za eno metriko (Max, High Mean, Low, Mean, Distinct in drugi). Nadalje, po želji, se podatki razdelijo v eno od polj (polje Razdeljeni podatki). V primeru smo to naredili po polju OriginAirportID. Upoštevajte, da je graf meritev na desni zdaj predstavljen kot več grafov.
Polje Ključna polja (vplivneži) neposredno vpliva na odkrite anomalije. Privzeto bo tukaj vedno vsaj ena vrednost, dodate pa lahko še dodatne. Algoritem bo pri analizi upošteval vpliv teh polj in prikazal najbolj »vplivne« vrednosti.
Po zagonu se bo nekaj takega pojavilo v vmesniku Kibana.
To je t.i toplotni zemljevid anomalij za vsako vrednost polja OriginAirportID, ki smo jih navedli v Razdeljeni podatki. Kot pri enojni meritvi barva označuje stopnjo nenormalnega odstopanja. Podobno analizo je priročno narediti na primer na delovnih postajah za sledenje tistim s sumljivo velikim številom avtorizacij itd. Smo že pisali
Pod toplotno karto je seznam anomalij, od vsake lahko preklopite na pogled posamezne metrike za podrobno analizo.
Prebivalstvo
Za iskanje anomalij med korelacijami med različnimi metrikami ima Elastic Stack specializirano analizo populacije. Z njegovo pomočjo lahko iščete nenormalne vrednosti v zmogljivosti strežnika v primerjavi z drugimi, ko se na primer poveča število zahtev do ciljnega sistema.
Na tej sliki polje Populacija označuje vrednost, na katero se bodo nanašale analizirane metrike. V tem primeru je to ime postopka. Posledično bomo videli, kako je obremenitev procesorja vsakega procesa vplivala drug na drugega.
Upoštevajte, da se graf analiziranih podatkov razlikuje od primerov z eno metriko in več metriko. To je bilo zasnovano v Kibani za izboljšano zaznavanje porazdelitve vrednosti analiziranih podatkov.
Graf kaže, da se je postopek obnašal nenormalno stres (mimogrede, ustvarjen s posebnim pripomočkom) na strežniku poipu, ki je vplival (ali se je izkazal za vplivneža) na nastanek te anomalije.
Napredno
Analitika s fino nastavitvijo. Z napredno analizo se v Kibani prikažejo dodatne nastavitve. Po kliku na ploščico Napredno v meniju za ustvarjanje se prikaže to okno z zavihki. Tab podrobnosti zaposlitve Namenoma smo ga preskočili, tam so osnovne nastavitve, ki niso neposredno povezane z nastavitvijo analize.
В summary_count_field_name Po želji lahko določite ime polja iz dokumentov, ki vsebujejo združene vrednosti. V tem primeru število dogodkov na minuto. IN
Tukaj je dodaten blok nastavitev za konfiguracijo detektorja nepravilnosti za določeno nalogo. V naslednjih člankih nameravamo razpravljati o posebnih primerih uporabe (zlasti varnostnih). na primer
Na področju funkcija Za iskanje nepravilnosti lahko izberete določeno funkcijo. Razen redki, obstaja še nekaj zanimivih funkcij -
В ime_polja označuje polje dokumenta, na katerem bo opravljena analiza. Po_imenu_polja lahko uporabite za ločevanje rezultatov analize za vsako posamezno vrednost polja dokumenta, navedenega tukaj. Če napolnite nad_ime_polja dobite analizo populacije, o kateri smo razpravljali zgoraj. Če podate vrednost v ime_polja_particije, potem bodo za to polje dokumenta za vsako vrednost izračunane ločene osnovne črte (vrednost je lahko na primer ime strežnika ali procesa na strežniku). IN izključi_pogosto lahko izbira vse ali none, kar bo pomenilo izključitev (ali vključitev) vrednosti polj dokumenta, ki se pogosto pojavljajo.
V tem članku smo poskušali podati čim bolj jedrnato predstavo o zmožnostih strojnega učenja v Elastic Stack; veliko podrobnosti je še vedno ostalo v ozadju. V komentarjih nam povejte, katere primere vam je uspelo rešiti z Elastic Stackom in za katere naloge ga uporabljate. Za stik z nami lahko uporabite osebna sporočila na Habré oz
Vir: www.habr.com