Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Pripomeňme, že Elastic Stack je založený na nerelačnej databáze Elasticsearch, webovom rozhraní Kibana a dátových kolektoroch a procesoroch (najznámejší Logstash, rôzne Beats, APM a iné). Jedným z pekných doplnkov k celému zoznamu produktov je analýza údajov pomocou algoritmov strojového učenia. V článku pochopíme, aké sú tieto algoritmy. Prosím pod kat.

Strojové učenie je platená funkcia shareware Elastic Stack a je súčasťou X-Packu. Ak ho chcete začať používať, stačí si po inštalácii aktivovať 30-dňovú skúšobnú verziu. Po uplynutí skúšobného obdobia môžete požiadať o podporu a predĺžiť ho alebo si zakúpiť predplatné. Cena predplatného sa nevypočítava na základe objemu dát, ale podľa počtu použitých uzlov. Nie, objem dát, samozrejme, ovplyvňuje počet požadovaných uzlov, ale aj tak je tento prístup k licencovaniu humánnejší vo vzťahu k rozpočtu spoločnosti. Ak nie je potrebná vysoká produktivita, môžete ušetriť peniaze.

ML v Elastic Stack je napísaný v C++ a beží mimo JVM, v ktorom beží samotný Elasticsearch. To znamená, že proces (mimochodom, nazýva sa to autodetect) spotrebuje všetko, čo JVM neprehltne. Na demo stojane to nie je také kritické, ale v produkčnom prostredí je dôležité prideliť samostatné uzly pre úlohy ML.

Algoritmy strojového učenia spadajú do dvoch kategórií − s učiteľom и bez učiteľa. V Elastic Stack je algoritmus z kategórie „bez dozoru“. Autor: tento odkaz Môžete vidieť matematický aparát algoritmov strojového učenia.

Na vykonanie analýzy používa algoritmus strojového učenia údaje uložené v indexoch Elasticsearch. Úlohy na analýzu môžete vytvárať z rozhrania Kibana aj cez API. Ak to urobíte cez Kibana, potom niektoré veci vedieť nemusíte. Napríklad ďalšie indexy, ktoré algoritmus používa počas svojej činnosti.

Ďalšie indexy používané v procese analýzy.ml-state — informácie o štatistických modeloch (nastavenia analýzy);
.ml-anomalies-* — výsledky algoritmov ML;
.ml-notifications — nastavenia pre upozornenia na základe výsledkov analýzy.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Štruktúru údajov v databáze Elasticsearch tvoria indexy a v nich uložené dokumenty. V porovnaní s relačnou databázou možno index porovnať so schémou databázy a dokument so záznamom v tabuľke. Toto porovnanie je podmienené a slúži na zjednodušenie pochopenia ďalšieho materiálu pre tých, ktorí o Elasticsearch iba počuli.

Cez API je dostupná rovnaká funkcionalita ako cez webové rozhranie, takže pre prehľadnosť a pochopenie pojmov si ukážeme, ako ju nakonfigurovať cez Kibana. V ponuke vľavo je sekcia Machine Learning, kde môžete vytvoriť novú úlohu. V rozhraní Kibana to vyzerá ako na obrázku nižšie. Teraz budeme analyzovať každý typ úlohy a ukážeme typy analýz, ktoré tu možno vytvoriť.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Single Metric – analýza jednej metriky, Multi Metric – analýza dvoch alebo viacerých metrík. V oboch prípadoch sa každá metrika analyzuje v izolovanom prostredí, t.j. algoritmus neberie do úvahy správanie paralelne analyzovaných metrík, ako by sa mohlo zdať v prípade Multi Metric. Ak chcete vykonať výpočty s prihliadnutím na koreláciu rôznych metrík, môžete použiť analýzu populácie. A Advanced dolaďuje algoritmy s ďalšími možnosťami pre určité úlohy.

Jedna metrika

Analýza zmien v jednej metrike je tá najjednoduchšia vec, ktorú tu možno urobiť. Po kliknutí na Create Job bude algoritmus hľadať anomálie.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

V poli sčítanie môžete si zvoliť prístup k hľadaniu anomálií. Napríklad kedy Min hodnoty pod typickými hodnotami sa budú považovať za anomálne. Jedzte Max, vysoký priemer, nízky, stredný, výrazný a ďalšie. Popis všetkých funkcií nájdete по ссылке.

V poli Pole označuje číselné pole v dokumente, na ktorom budeme vykonávať analýzu.

V poli Rozpätie vedra — podrobnosť intervalov na časovej osi, v rámci ktorej sa bude analýza vykonávať. Môžete dôverovať automatizácii alebo si vybrať manuálne. Obrázok nižšie je príkladom príliš nízkej zrnitosti – môže vám uniknúť anomália. Pomocou tohto nastavenia môžete zmeniť citlivosť algoritmu na anomálie.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Trvanie zozbieraných údajov je kľúčovou vecou, ​​ktorá ovplyvňuje účinnosť analýzy. Počas analýzy algoritmus identifikuje opakujúce sa intervaly, vypočítava intervaly spoľahlivosti (základné línie) a identifikuje anomálie – atypické odchýlky od obvyklého správania metriky. Len napríklad:

Základné línie s malým kúskom údajov:

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Keď sa má algoritmus z čoho učiť, základná línia vyzerá takto:

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Po spustení úlohy algoritmus určí anomálne odchýlky od normy a zoradí ich podľa pravdepodobnosti anomálie (farba zodpovedajúceho označenia je uvedená v zátvorkách):

Upozornenie (modré): menej ako 25
Menšie (žlté): 25-50
Hlavná (oranžová): 50-75
Kritické (červené): 75-100

Nižšie uvedený graf ukazuje príklad nájdených anomálií.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Tu vidíte číslo 94, ktoré označuje pravdepodobnosť anomálie. Je jasné, že keďže sa hodnota blíži k 100, znamená to, že máme anomáliu. Stĺpec pod grafom zobrazuje pejoratívne malú pravdepodobnosť, že sa tam objaví 0.000063634 % metriky.

Okrem hľadania anomálií môžete v Kibane spustiť predpovede. To sa robí jednoducho a z rovnakého pohľadu s anomáliami - tlačidlom Predpoveď v pravom hornom rohu.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Predpoveď sa robí maximálne na 8 týždňov dopredu. Aj keby ste naozaj chceli, už to nie je možné vďaka dizajnu.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

V niektorých situáciách bude predpoveď veľmi užitočná, napríklad pri sledovaní užívateľskej záťaže infraštruktúry.

Viac metrických

Prejdime k ďalšej funkcii ML v Elastic Stack – analýze niekoľkých metrík v jednej dávke. To však neznamená, že sa bude analyzovať závislosť jednej metriky od druhej. Je to rovnaké ako Single Metric, ale s viacerými metrikami na jednej obrazovke pre jednoduché porovnanie vplyvu jednej na druhú. O analýze závislosti jednej metriky od druhej si povieme v časti Populácia.

Po kliknutí na štvorec s Multi Metric sa zobrazí okno s nastaveniami. Pozrime sa na ne podrobnejšie.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Najprv musíte vybrať polia na analýzu a agregáciu údajov v nich. Možnosti agregácie sú tu rovnaké ako pre jednu metriku (Max, vysoký priemer, nízky, stredný, výrazný a ďalšie). Ďalej, ak je to potrebné, údaje sa rozdelia do jedného z polí (pole Rozdeliť údaje). V príklade sme to urobili podľa poľa OriginAirportID. Všimnite si, že graf metrík vpravo sa teraz zobrazuje ako viacero grafov.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Pole Kľúčové polia (ovplyvňovatelia) priamo ovplyvňuje zistené anomálie. V predvolenom nastavení tu bude vždy aspoň jedna hodnota a môžete pridať ďalšie. Algoritmus pri analýze zohľadní vplyv týchto polí a ukáže „najvplyvnejšie“ hodnoty.

Po spustení sa niečo také objaví v rozhraní Kibana.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Ide o tzv tepelná mapa anomálií pre každú hodnotu poľa OriginAirportID, ktorý sme naznačili v Rozdeliť údaje. Rovnako ako pri Single Metric, farba označuje úroveň abnormálnej odchýlky. Je vhodné urobiť podobnú analýzu napríklad na pracovných staniciach na sledovanie tých s podozrivo veľkým počtom oprávnení atď. Už sme si písali o podozrivých udalostiach v EventLog Windows, ktoré tu možno tiež zbierať a analyzovať.

Pod tepelnou mapou je zoznam anomálií, z ktorých sa môžete prepnúť do zobrazenia Single Metric pre podrobnú analýzu.

Populácie

Na hľadanie anomálií medzi koreláciami medzi rôznymi metrikami má Elastic Stack špecializovanú analýzu populácie. S jeho pomocou môžete hľadať anomálne hodnoty vo výkone servera v porovnaní s ostatnými, keď sa napríklad zvyšuje počet požiadaviek na cieľový systém.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Na tomto obrázku pole Populácia označuje hodnotu, na ktorú sa budú vzťahovať analyzované metriky. V tomto prípade ide o názov procesu. V dôsledku toho uvidíme, ako sa zaťaženie procesora každého procesu navzájom ovplyvňovalo.

Upozorňujeme, že graf analyzovaných údajov sa líši od prípadov s Single Metric a Multi Metric. Toto bolo urobené v Kibana zámerne pre lepšie vnímanie rozloženia hodnôt analyzovaných údajov.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Graf ukazuje, že proces sa správal abnormálne stres (mimochodom, vygenerovaný špeciálnym nástrojom) na serveri poipu, ktorý ovplyvnil (alebo sa ukázal byť influencerom) výskyt tejto anomálie.

pokročilý

Analytika s jemným doladením. S rozšírenou analýzou sa v Kibane objavia ďalšie nastavenia. Po kliknutí na dlaždicu Rozšírené v ponuke vytvárania sa zobrazí toto okno s kartami. Tab podrobnosti o zamestnanie Zámerne sme to preskočili, sú tu základné nastavenia, ktoré priamo nesúvisia s nastavením analýzy.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

В súhrnný_počet_názov_poľa Voliteľne môžete zadať názov poľa z dokumentov obsahujúcich agregované hodnoty. V tomto príklade počet udalostí za minútu. IN kategorizácia_názov_poľa označuje názov a hodnotu poľa z dokumentu, ktoré obsahuje nejakú premennú hodnotu. Pomocou masky v tomto poli môžete rozdeliť analyzované údaje do podmnožín. Venujte pozornosť tlačidlu Pridajte detektor na predchádzajúcej ilustrácii. Nižšie je uvedený výsledok kliknutia na toto tlačidlo.

Pochopenie strojového učenia v elastickom balíku (známy ako Elasticsearch, aka ELK)

Tu je ďalší blok nastavení pre konfiguráciu detektora anomálií pre konkrétnu úlohu. Konkrétne prípady použitia (najmä tie bezpečnostné) plánujeme rozobrať v nasledujúcich článkoch. Napríklad, vyzerať jeden z rozobratých kufríkov. Je spojená s vyhľadávaním zriedkavo sa vyskytujúcich hodnôt a je implementovaná zriedkavá funkcia.

V poli funkcie Môžete si vybrať konkrétnu funkciu na vyhľadávanie anomálií. Okrem vzácny, existuje niekoľko ďalších zaujímavých funkcií - čas dňa и čas_týždňa. Identifikujú anomálie v správaní metrík počas dňa alebo týždňa, resp. Ďalšie analytické funkcie je v dokumentácii.

В názov poľa označuje pole dokumentu, na ktorom sa bude analýza vykonávať. Podľa názvu_poľa možno použiť na oddelenie výsledkov analýzy pre každú jednotlivú hodnotu tu špecifikovaného poľa dokumentu. Ak vyplníte over_field_name získate analýzu populácie, o ktorej sme hovorili vyššie. Ak zadáte hodnotu v partition_field_name, potom pre toto pole dokumentu budú pre každú hodnotu vypočítané samostatné základné línie (hodnotou môže byť napríklad názov servera alebo procesu na serveri). IN vylúčiť_často si môžu vybrať všetko alebo nikto, čo bude znamenať vylúčenie (alebo zahrnutie) často sa vyskytujúcich hodnôt polí dokumentu.

V tomto článku sme sa pokúsili poskytnúť čo najstručnejšiu predstavu o možnostiach strojového učenia v Elastic Stack; v zákulisí stále zostáva veľa detailov. Napíšte nám do komentárov, aké prípady sa vám pomocou Elastic Stacku podarilo vyriešiť a na aké úlohy ho používate. Na kontaktovanie môžete využiť osobné správy na Habré resp formulár spätnej väzby na webovej stránke.

Zdroj: hab.com

Pridať komentár