Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Připomeňme, že Elastic Stack je založen na nerelační databázi Elasticsearch, webovém rozhraní Kibana a datových kolektorech a procesorech (nejznámější Logstash, různé Beats, APM a další). Jedním z pěkných přírůstků k celému seznamu produktů je analýza dat pomocí algoritmů strojového učení. V článku pochopíme, co tyto algoritmy jsou. Prosím pod kat.

Strojové učení je placená funkce sharewarového Elastic Stacku a je součástí X-Packu. Chcete-li jej začít používat, stačí po instalaci aktivovat 30denní zkušební verzi. Po uplynutí zkušební doby můžete požádat o podporu a prodloužit ji nebo zakoupit předplatné. Cena předplatného se nepočítá na základě objemu dat, ale podle počtu použitých uzlů. Ne, objem dat samozřejmě ovlivňuje počet požadovaných uzlů, ale přesto je tento přístup k licencování humánnější ve vztahu k rozpočtu společnosti. Pokud není potřeba vysoká produktivita, můžete ušetřit peníze.

ML v Elastic Stack je napsán v C++ a běží mimo JVM, ve kterém běží samotný Elasticsearch. To znamená, že proces (mimochodem se nazývá autodetect) spotřebovává vše, co JVM nepohltí. Na demo stánku to není tak kritické, ale v produkčním prostředí je důležité alokovat samostatné uzly pro úkoly ML.

Algoritmy strojového učení spadají do dvou kategorií − s učitelem и bez učitele. V Elastic Stack je algoritmus v kategorii „bez dozoru“. Podle odkaz Můžete vidět matematický aparát algoritmů strojového učení.

K provedení analýzy používá algoritmus strojového učení data uložená v indexech Elasticsearch. Úlohy pro analýzu můžete vytvářet jak z rozhraní Kibana, tak prostřednictvím API. Pokud to uděláte přes Kibana, pak některé věci vědět nemusíte. Například další indexy, které algoritmus používá během své činnosti.

Další indexy používané v procesu analýzy.ml-state — informace o statistických modelech (nastavení analýzy);
.ml-anomalies-* — výsledky ML algoritmů;
.ml-notifications — nastavení pro upozornění na základě výsledků analýzy.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Strukturu dat v databázi Elasticsearch tvoří indexy a v nich uložené dokumenty. Ve srovnání s relační databází lze index porovnat se schématem databáze a dokument se záznamem v tabulce. Toto srovnání je podmíněné a je poskytováno pro zjednodušení porozumění dalšímu materiálu pro ty, kteří o Elasticsearch pouze slyšeli.

Přes API je dostupná stejná funkcionalita jako přes webové rozhraní, takže pro srozumitelnost a pochopení pojmů si ukážeme, jak ji nakonfigurovat přes Kibana. V nabídce vlevo je sekce Machine Learning, kde můžete vytvořit novou zakázku. V rozhraní Kibana to vypadá jako na obrázku níže. Nyní analyzujeme každý typ úlohy a ukážeme typy analýz, které zde lze sestavit.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Single Metric - analýza jedné metriky, Multi Metric - analýza dvou nebo více metrik. V obou případech je každá metrika analyzována v izolovaném prostředí, tzn. algoritmus nebere v úvahu chování paralelně analyzovaných metrik, jak by se mohlo zdát v případě Multi Metric. Chcete-li provést výpočty s přihlédnutím ke korelaci různých metrik, můžete použít analýzu populace. A Advanced dolaďuje algoritmy pomocí dalších možností pro určité úkoly.

Jediná metrika

Analýza změn v jedné jediné metrice je tou nejjednodušší věcí, kterou zde lze udělat. Po kliknutí na Create Job bude algoritmus hledat anomálie.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

V Agregace můžete zvolit přístup k vyhledávání anomálií. Například kdy Min hodnoty pod typickými hodnotami budou považovány za anomální. Jíst Max, vysoká střední, nízká, střední, výrazná a další. Popisy všech funkcí naleznete по ссылке.

V Pole označuje číselné pole v dokumentu, na kterém budeme provádět analýzu.

V Rozpětí lopaty — granularita intervalů na časové ose, ve které bude analýza provedena. Můžete věřit automatizaci nebo si vybrat ručně. Níže uvedený obrázek je příkladem příliš nízké zrnitosti – může vám uniknout anomálie. Pomocí tohoto nastavení můžete změnit citlivost algoritmu na anomálie.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Doba trvání shromážděných dat je klíčová věc, která ovlivňuje efektivitu analýzy. Během analýzy algoritmus identifikuje opakující se intervaly, vypočítá intervaly spolehlivosti (základní hodnoty) a identifikuje anomálie - atypické odchylky od obvyklého chování metriky. Jen pro příklad:

Základní linie s malým kusem dat:

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Když se má algoritmus z čeho učit, základní linie vypadá takto:

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Po spuštění úlohy algoritmus určí anomální odchylky od normy a seřadí je podle pravděpodobnosti anomálie (barva odpovídajícího štítku je uvedena v závorce):

Varování (modré): méně než 25
Menší (žlutá): 25-50
Hlavní (oranžová): 50-75
Kritické (červené): 75-100

Níže uvedený graf ukazuje příklad nalezených anomálií.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Zde vidíte číslo 94, které označuje pravděpodobnost anomálie. Je jasné, že jelikož se hodnota blíží 100, znamená to, že máme anomálii. Sloupec pod grafem ukazuje pejorativně malou pravděpodobnost, že se zde objeví 0.000063634 % metrické hodnoty.

Kromě vyhledávání anomálií můžete v Kibaně spouštět prognózy. To se provádí jednoduše a ze stejného pohledu s anomáliemi - tlačítko předpověď v pravém horním rohu.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Předpověď se dělá maximálně na 8 týdnů dopředu. I kdybyste opravdu chtěli, už to není možné.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

V některých situacích bude předpověď velmi užitečná, například při sledování uživatelského zatížení infrastruktury.

Více metrických

Pojďme k další funkci ML v Elastic Stack – analýze několika metrik v jedné dávce. To však neznamená, že bude analyzována závislost jedné metriky na jiné. To je stejné jako Single Metric, ale s více metrikami na jedné obrazovce pro snadné srovnání dopadu jedné na druhou. O analýze závislosti jedné metriky na druhé si povíme v části Populace.

Po kliknutí na čtvereček s Multi Metric se objeví okno s nastavením. Pojďme se na ně podívat podrobněji.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Nejprve musíte vybrat pole pro analýzu a agregaci dat na nich. Možnosti agregace jsou zde stejné jako u Single Metric (Max, vysoká střední, nízká, střední, výrazná a další). Dále, pokud je to požadováno, jsou data rozdělena do jednoho z polí (pole Rozdělit data). V příkladu jsme to provedli podle pole OriginAirportID. Všimněte si, že graf metrik vpravo je nyní zobrazen jako více grafů.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Pole Klíčová pole (ovlivňovači) přímo ovlivňuje zjištěné anomálie. Ve výchozím nastavení zde bude vždy alespoň jedna hodnota a můžete přidat další. Algoritmus při analýze zohlední vliv těchto polí a ukáže „nejvlivnější“ hodnoty.

Po spuštění se něco takového objeví v rozhraní Kibana.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Jedná se o tzv tepelná mapa anomálií pro každou hodnotu pole OriginAirportID, které jsme uvedli v Rozdělit data. Stejně jako u Single Metric barva označuje úroveň abnormální odchylky. Podobnou analýzu je vhodné provést například na pracovních stanicích pro sledování těch s podezřele velkým počtem oprávnění atd. Už jsme psali o podezřelých událostech v EventLog Windows, které lze zde také shromáždit a analyzovat.

Pod tepelnou mapou je seznam anomálií, z nichž se můžete přepnout do zobrazení Single Metric pro podrobnou analýzu.

obyvatelstvo

Chcete-li hledat anomálie mezi korelacemi mezi různými metrikami, má Elastic Stack specializovanou analýzu populace. S jeho pomocí můžete hledat anomální hodnoty ve výkonu serveru ve srovnání s ostatními, když se například zvyšuje počet požadavků na cílový systém.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Na tomto obrázku pole Populace označuje hodnotu, ke které se budou analyzované metriky vztahovat. V tomto případě je to název procesu. Ve výsledku uvidíme, jak se zatížení procesoru každého procesu vzájemně ovlivňovalo.

Upozorňujeme, že graf analyzovaných dat se liší od případů s Single Metric a Multi Metric. To bylo provedeno v Kibana záměrně pro lepší vnímání distribuce hodnot analyzovaných dat.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Graf ukazuje, že proces se choval abnormálně stres (mimochodem generované speciálním nástrojem) na serveru poipu, který ovlivnil (nebo se ukázal být influencerem) výskyt této anomálie.

pokročilý

Analytika s jemným doladěním. S Pokročilou analýzou se v Kibaně objeví další nastavení. Po kliknutí na dlaždici Upřesnit v nabídce vytváření se zobrazí toto okno se záložkami. Tab podrobnosti o zaměstnání Záměrně jsme to přeskočili, jsou zde základní nastavení přímo nesouvisející s nastavením analýzy.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

В souhrnný_počet_název_pole Volitelně můžete zadat název pole z dokumentů obsahujících agregované hodnoty. V tomto příkladu počet událostí za minutu. V název_pole kategorizace označuje název a hodnotu pole z dokumentu, které obsahuje nějakou proměnnou hodnotu. Pomocí masky v tomto poli můžete rozdělit analyzovaná data do podmnožin. Věnujte pozornost tlačítku Přidat detektor na předchozím obrázku. Níže je výsledek kliknutí na toto tlačítko.

Pochopení strojového učení v elastickém balíčku (také znám jako Elasticsearch, aka ELK)

Zde je další blok nastavení pro konfiguraci detektoru anomálií pro konkrétní úlohu. Konkrétní případy použití (zejména ty bezpečnostní) plánujeme probrat v následujících článcích. Například, pohled jeden z rozebraných pouzder. Je spojen s hledáním zřídka se vyskytujících hodnot a je implementován vzácná funkce.

V funkce Pro vyhledávání anomálií můžete vybrat konkrétní funkci. Až na vzácný, existuje několik dalších zajímavých funkcí - time_of_day и čas_týdne. Identifikují anomálie v chování metrik během dne, respektive týdne. Další analytické funkce je v dokumentaci.

В název_pole označuje pole dokumentu, na kterém bude analýza provedena. Podle názvu_pole lze použít k oddělení výsledků analýzy pro každou jednotlivou hodnotu zde specifikovaného pole dokumentu. Pokud vyplníte over_field_name získáte populační analýzu, o které jsme hovořili výše. Pokud zadáte hodnotu v název_pole_oddílu, pak pro toto pole dokumentu budou pro každou hodnotu vypočítány samostatné směrné linie (hodnotou může být např. název serveru nebo procesu na serveru). V vyloučit_často moci vybrat všechno nebo žádný, což bude znamenat vyloučení (nebo zahrnutí) často se vyskytujících hodnot polí dokumentu.

V tomto článku jsme se pokusili podat co nejstručnější představu o možnostech strojového učení v Elastic Stacku; v zákulisí stále zůstává mnoho detailů. Napište nám do komentářů, jaké případy se vám pomocí Elastic Stacku podařilo vyřešit a na jaké úkoly jej používáte. Ke kontaktu můžete využít osobní zprávy na Habré popř formulář zpětné vazby na webu.

Zdroj: www.habr.com

Přidat komentář