Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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 − z učiteljem и brez učitelja. V Elastic Stack je algoritem v kategoriji »nenadzorovano«. Avtor: ta povezava Ogledate si lahko matematični aparat algoritmov strojnega učenja.

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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 Razpon žlice — razdrobljenost intervalov na časovni premici, po kateri bo izvedena analiza. Lahko zaupate avtomatizaciji ali izberete ročno. Spodnja slika je primer prenizke razdrobljenosti - morda boste spregledali anomalijo. S to nastavitvijo lahko spremenite občutljivost algoritma na anomalije.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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:

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

Ko se ima algoritem česa naučiti, je izhodišče videti takole:

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

Napoved se naredi za največ 8 tednov vnaprej. Tudi če si res želite, to po zasnovi ni več mogoče.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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 o sumljivih dogodkih v EventLog Windows, ki jih lahko zbirate in analizirate tudi tukaj.

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

В 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 ime_polja_kategorizacije označuje ime in vrednost polja iz dokumenta, ki vsebuje neko vrednost spremenljivke. Z uporabo maske v tem polju lahko analizirane podatke razdelite na podnabore. Bodite pozorni na gumb Dodajte detektor v prejšnji ilustraciji. Spodaj je rezultat klika na ta gumb.

Razumevanje strojnega učenja v elastičnem skladu (alias Elasticsearch, alias ELK)

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 poglej enega od razstavljenih primerov. Povezan je z iskanjem redko pojavljajočih se vrednosti in se izvaja redka funkcija.

Na področju funkcija Za iskanje nepravilnosti lahko izberete določeno funkcijo. Razen redki, obstaja še nekaj zanimivih funkcij - čas dneva и čas_v_tednu. Prepoznajo anomalije v obnašanju meritev čez dan oziroma teden. Druge funkcije analize je v dokumentaciji.

В 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 obrazec za povratne informacije na spletni strani.

Vir: www.habr.com

Dodaj komentar