Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Podsjetimo, Elastic Stack se temelji na nerelacijskoj bazi podataka Elasticsearch, web sučelju Kibana te sakupljačima i procesorima podataka (najpoznatiji Logstash, razni Beats, APM i drugi). Jedan od lijepih dodataka cijelom navedenom nizu proizvoda je analiza podataka pomoću algoritama strojnog učenja. U članku razumijemo koji su to algoritmi. Molimo pod kat.

Strojno učenje je plaćena značajka sharewarea Elastic Stack i uključena je u X-Pack. Da biste ga počeli koristiti, samo aktivirajte 30-dnevno probno razdoblje nakon instalacije. Nakon što probno razdoblje istekne, možete zatražiti podršku za njegovo produljenje ili kupiti pretplatu. Cijena pretplate ne izračunava se na temelju količine podataka, već na temelju broja korištenih čvorova. Ne, količina podataka, naravno, utječe na broj potrebnih čvorova, ali ipak je ovaj pristup licenciranju humaniji u odnosu na proračun tvrtke. Ako nema potrebe za visokom produktivnošću, možete uštedjeti novac.

ML u Elastic Stacku napisan je u C++ i radi izvan JVM-a, u kojem se izvodi sam Elasticsearch. Odnosno, proces (usput rečeno, zove se autodetect) troši sve što JVM ne proguta. Na demo postolju to nije toliko kritično, ali u proizvodnom okruženju važno je dodijeliti zasebne čvorove za ML zadatke.

Algoritmi strojnog učenja spadaju u dvije kategorije − s učiteljicom и bez učitelja. U Elastic Stacku, algoritam je u kategoriji "bez nadzora". Po ovaj link Možete vidjeti matematički aparat algoritama strojnog učenja.

Za izvođenje analize algoritam strojnog učenja koristi podatke pohranjene u Elasticsearch indeksima. Zadatke za analizu možete kreirati i iz Kibana sučelja i putem API-ja. Ako to radite preko Kibane, onda ne morate znati neke stvari. Na primjer, dodatni indeksi koje algoritam koristi tijekom svog rada.

Dodatni indeksi korišteni u procesu analize.ml-state — informacije o statističkim modelima (postavke analize);
.ml-anomalije-* — rezultati ML algoritama;
.ml-obavijesti — postavke za obavijesti na temelju rezultata analize.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Struktura podataka u bazi Elasticsearch sastoji se od indeksa i dokumenata pohranjenih u njima. U usporedbi s relacijskom bazom podataka, indeks se može usporediti sa shemom baze podataka, a dokument sa zapisom u tablici. Ova je usporedba uvjetna i služi za pojednostavljenje razumijevanja daljnjeg materijala za one koji su samo čuli za Elasticsearch.

Ista funkcionalnost dostupna je putem API-ja kao i putem web sučelja, pa ćemo zbog jasnoće i razumijevanja koncepata pokazati kako to konfigurirati putem Kibane. U izborniku s lijeve strane nalazi se odjeljak Strojno učenje gdje možete stvoriti novi posao. U Kibana sučelju to izgleda kao na slici ispod. Sada ćemo analizirati svaku vrstu zadatka i pokazati vrste analize koje se ovdje mogu konstruirati.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Single Metric - analiza jedne metrike, Multi Metric - analiza dvije ili više metrike. U oba slučaja, svaka metrika se analizira u izoliranom okruženju, tj. algoritam ne uzima u obzir ponašanje paralelno analiziranih metrika, kao što bi se moglo činiti u slučaju Multi Metric. Da biste izvršili izračune uzimajući u obzir korelaciju različitih metrika, možete koristiti analizu stanovništva. A Advanced fino podešava algoritme s dodatnim opcijama za određene zadatke.

Jedna metrika

Analiza promjena u jednom jedinom pokazatelju je najjednostavnija stvar koja se ovdje može učiniti. Nakon klika na Create Job, algoritam će tražiti anomalije.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

U polju sakupljanje možete odabrati pristup traženju anomalija. Na primjer, kada Min vrijednosti ispod uobičajenih vrijednosti smatrat će se anomalnima. Jesti Max, High Mean, Low, Mean, Distinct i drugi. Opisi svih funkcija mogu se pronaći по ссылке.

U polju Polje označava numeričko polje u dokumentu na kojem ćemo provesti analizu.

U polju Raspon žlice — granularnost intervala na vremenskoj liniji na kojoj će se analiza provoditi. Možete vjerovati automatizaciji ili odabrati ručno. Slika ispod je primjer preniske granularnosti - možda ćete propustiti anomaliju. Pomoću ove postavke možete promijeniti osjetljivost algoritma na anomalije.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Trajanje prikupljenih podataka ključna je stvar koja utječe na učinkovitost analize. Tijekom analize, algoritam identificira intervale koji se ponavljaju, izračunava intervale pouzdanosti (osnovne vrijednosti) i identificira anomalije - atipična odstupanja od uobičajenog ponašanja metrike. Samo za primjer:

Osnove s malim dijelom podataka:

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Kada algoritam ima iz čega naučiti, osnovna linija izgleda ovako:

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Nakon pokretanja zadatka, algoritam utvrđuje nenormalna odstupanja od norme i rangira ih prema vjerojatnosti anomalije (boja odgovarajuće oznake navedena je u zagradama):

Upozorenje (plavo): manje od 25
Minor (žuto): 25-50
Dur (narančasta): 50-75
Kritično (crveno): 75-100

Grafikon u nastavku prikazuje primjer pronađenih anomalija.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Ovdje možete vidjeti broj 94 koji označava vjerojatnost anomalije. Jasno je da, budući da je vrijednost blizu 100, to znači da imamo anomaliju. Stupac ispod grafikona prikazuje pejorativno malu vjerojatnost od 0.000063634% metričke vrijednosti koja se tamo pojavljuje.

Osim traženja anomalija, u Kibani možete pokrenuti predviđanje. To se radi jednostavno i iz istog prikaza s anomalijama - gumb Prognoza u gornjem desnom kutu.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Prognoza se radi za maksimalno 8 tjedana unaprijed. Čak i ako to stvarno želite, to više nije moguće prema dizajnu.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

U nekim situacijama, prognoza će biti vrlo korisna, na primjer, kada se prati korisničko opterećenje infrastrukture.

Multi metrika

Prijeđimo na sljedeću ML značajku u Elastic Stacku – analizu nekoliko metrika u jednoj seriji. Ali to ne znači da će se analizirati ovisnost jedne metrike o drugoj. Ovo je isto što i pojedinačna metrika, ali s više metrika na jednom zaslonu za jednostavnu usporedbu utjecaja jednih na druge. O analizi ovisnosti jedne metrike o drugoj govorit ćemo u odjeljku Populacija.

Nakon klika na kvadrat s Multi Metric, pojavit će se prozor s postavkama. Pogledajmo ih detaljnije.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Najprije je potrebno odabrati polja za analizu i agregaciju podataka na njima. Opcije agregacije ovdje su iste kao za jednu metriku (Max, High Mean, Low, Mean, Distinct i drugi). Nadalje, po želji, podaci se dijele u jedno od polja (polje Split Data). U primjeru smo to učinili po polju OriginAirportID. Primijetite da je grafikon metrike s desne strane sada predstavljen kao višestruki grafikoni.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Polje Ključna polja (influenceri) izravno utječe na otkrivene anomalije. Prema zadanim postavkama ovdje će uvijek biti barem jedna vrijednost, a možete dodati i dodatne. Algoritam će pri analizi uzeti u obzir utjecaj ovih polja i prikazati najutjecajnije vrijednosti.

Nakon pokretanja, ovako nešto će se pojaviti u Kibana sučelju.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Ovo je tzv toplinska karta anomalija za svaku vrijednost polja OriginAirportID, što smo naveli u Split Data. Kao i kod pojedinačne metrike, boja označava razinu abnormalnog odstupanja. Zgodno je napraviti sličnu analizu npr. na radnim stanicama za praćenje onih sa sumnjivo velikim brojem autorizacija i sl. Već smo napisali o sumnjivim događajima u EventLog Windows, koji se također mogu prikupiti i analizirati ovdje.

Ispod toplinske karte nalazi se popis anomalija, sa svake se možete prebaciti na prikaz pojedinačne metrike za detaljnu analizu.

Stanovništvo

Za traženje anomalija među korelacijama između različitih metrika, Elastic Stack ima specijaliziranu analizu populacije. Uz njegovu pomoć možete tražiti nenormalne vrijednosti u performansama poslužitelja u usporedbi s drugima kada se, na primjer, poveća broj zahtjeva prema ciljnom sustavu.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Na ovoj ilustraciji polje Populacija označava vrijednost na koju će se odnositi analizirana metrika. U ovom slučaju to je naziv procesa. Kao rezultat toga, vidjet ćemo kako je opterećenje procesora svakog procesa utjecalo jedno na drugo.

Imajte na umu da se grafikon analiziranih podataka razlikuje od slučajeva s jednom metrikom i višestrukom metrikom. To je napravljeno u Kibani dizajnom za poboljšanu percepciju distribucije vrijednosti analiziranih podataka.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Grafikon pokazuje da se proces ponašao neuobičajeno stres (usput, generiran posebnim uslužnim programom) na poslužitelju poipu, koji je utjecao (ili se pokazao kao influencer) na pojavu ove anomalije.

napredan

Analitika s finim podešavanjem. S naprednom analizom, dodatne postavke pojavljuju se u Kibani. Nakon klika na pločicu Napredno u izborniku za izradu, pojavljuje se ovaj prozor s karticama. tab detalji za posao Namjerno smo ga preskočili, postoje osnovne postavke koje nisu izravno povezane s postavljanjem analize.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

В summary_count_field_name Po izboru, možete navesti naziv polja iz dokumenata koji sadrže agregirane vrijednosti. U ovom primjeru, broj događaja u minuti. U naziv_polja_kategorizacije označava naziv i vrijednost polja iz dokumenta koje sadrži neku vrijednost varijable. Pomoću maske u ovom polju analizirane podatke možete podijeliti u podskupove. Obratite pozornost na gumb Dodajte detektor u prethodnoj ilustraciji. Ispod je rezultat klika na ovaj gumb.

Razumijevanje strojnog učenja u Elastic Stacku (aka Elasticsearch, aka ELK)

Ovdje je dodatni blok postavki za konfiguriranje detektora anomalija za određeni zadatak. U sljedećim člancima planiramo raspravljati o specifičnim slučajevima upotrebe (osobito sigurnosnim). Na primjer, pogledajte jedan od rastavljenih kućišta. Povezan je s traženjem vrijednosti koje se rijetko pojavljuju i implementiran je rijetka funkcija.

U polju funkcija Možete odabrati određenu funkciju za traženje anomalija. Osim rijedak, ima još par zanimljivih funkcija - vrijeme dana и vrijeme_u_tjednu. Oni identificiraju anomalije u ponašanju metrike tijekom dana ili tjedna. Ostale funkcije analize nalazi se u dokumentaciji.

В naziv polja označava polje dokumenta na kojem će se vršiti analiza. Po_nazivu_polja može se koristiti za odvajanje rezultata analize za svaku pojedinačnu vrijednost ovdje navedenog polja dokumenta. Ako ispunite nad_ime_polja dobit ćete analizu stanovništva o kojoj smo gore govorili. Ako navedete vrijednost u ime_polja_particije, tada će se za ovo polje dokumenta izračunati zasebne osnovne linije za svaku vrijednost (vrijednost može biti, na primjer, naziv poslužitelja ili procesa na poslužitelju). U isključiti_često mogu birati svi ili nijedan, što će značiti isključivanje (ili uključivanje) vrijednosti polja dokumenta koje se često pojavljuju.

U ovom smo članku pokušali dati što je moguće sažetiju ideju o mogućnostima strojnog učenja u Elastic Stacku; još uvijek je puno detalja ostalo iza kulisa. Recite nam u komentarima koje ste slučajeve uspjeli riješiti koristeći Elastic Stack i za koje zadatke ga koristite. Za kontakt s nama možete koristiti osobne poruke na Habréu ili obrazac za povratne informacije na web stranici.

Izvor: www.habr.com

Dodajte komentar