Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Przypomnijmy, że Elastic Stack opiera się na nierelacyjnej bazie danych Elasticsearch, interfejsie sieciowym Kibana oraz kolektorach i procesorach danych (najsłynniejszy Logstash, różne Beats, APM i inne). Jednym z miłych dodatków do całego wymienionego stosu produktów jest analiza danych przy użyciu algorytmów uczenia maszynowego. W artykule rozumiemy, czym są te algorytmy. Proszę pod kotem.

Uczenie maszynowe jest płatną funkcją shareware Elastic Stack i jest zawarte w pakiecie X. Aby zacząć z niego korzystać, wystarczy po instalacji aktywować 30-dniowy okres próbny. Po wygaśnięciu okresu próbnego możesz poprosić o wsparcie w celu jego przedłużenia lub wykupienia subskrypcji. Koszt abonamentu liczony jest nie od ilości danych, ale od ilości wykorzystywanych węzłów. Nie, ilość danych oczywiście wpływa na liczbę wymaganych węzłów, ale mimo to takie podejście do licencjonowania jest bardziej humanitarne w stosunku do budżetu firmy. Jeśli nie jest wymagana wysoka produktywność, możesz zaoszczędzić pieniądze.

ML w Elastic Stack jest napisany w C++ i działa poza maszyną JVM, w której działa sam Elasticsearch. Oznacza to, że proces (nawiasem mówiąc, nazywa się to autodetekcją) zużywa wszystko, czego nie połyka JVM. Na stanowisku demonstracyjnym nie jest to tak krytyczne, ale w środowisku produkcyjnym ważne jest, aby przydzielić osobne węzły do ​​zadań ML.

Algorytmy uczenia maszynowego można podzielić na dwie kategorie: − z учителем и bez nauczyciela. W Elastic Stack algorytm znajduje się w kategorii „bez nadzoru”. Przez link Można zobaczyć aparat matematyczny algorytmów uczenia maszynowego.

Do przeprowadzenia analizy algorytm uczenia maszynowego wykorzystuje dane zapisane w indeksach Elasticsearch. Zadania do analizy możesz tworzyć zarówno z poziomu interfejsu Kibana, jak i poprzez API. Jeśli robisz to poprzez Kibanę, nie musisz wiedzieć pewnych rzeczy. Na przykład dodatkowe indeksy, z których korzysta algorytm podczas swojego działania.

Dodatkowe wskaźniki wykorzystywane w procesie analizy.ml-state — informacja o modelach statystycznych (ustawieniach analizy);
.ml-anomalies-* — wyniki algorytmów ML;
.ml-notifications — ustawienia powiadomień na podstawie wyników analizy.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Struktura danych w bazie danych Elasticsearch składa się z indeksów i przechowywanych w nich dokumentów. W porównaniu z relacyjną bazą danych indeks można porównać do schematu bazy danych, a dokument do rekordu w tabeli. To porównanie jest warunkowe i ma na celu uproszczenie zrozumienia dalszego materiału tym, którzy tylko słyszeli o Elasticsearch.

Ta sama funkcjonalność jest dostępna poprzez API, jak i poprzez interfejs WWW, więc dla przejrzystości i zrozumienia koncepcji pokażemy, jak ją skonfigurować poprzez Kibanę. W menu po lewej stronie znajduje się sekcja Machine Learning, w której możesz utworzyć nową ofertę pracy. W interfejsie Kibana wygląda to jak na obrazku poniżej. Teraz przeanalizujemy każdy typ zadania i pokażemy rodzaje analiz, które można tutaj skonstruować.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Single Metric – analiza jednej metryki, Multi Metric – analiza dwóch lub więcej metryk. W obu przypadkach każda metryka analizowana jest w izolowanym środowisku, tj. algorytm nie uwzględnia zachowania równolegle analizowanych metryk, jak mogłoby się wydawać w przypadku Multi Metric. Aby przeprowadzić obliczenia uwzględniające korelację różnych metryk, można skorzystać z analizy populacji. Advanced dostraja algorytmy za pomocą dodatkowych opcji dla niektórych zadań.

Pojedyncza metryka

Analizowanie zmian w jednym metryce to najprostsza rzecz, jaką można tutaj zrobić. Po kliknięciu Utwórz zadanie algorytm będzie szukał anomalii.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

W polu Zbiór możesz wybrać podejście do wyszukiwania anomalii. Na przykład kiedy Min wartości poniżej typowych wartości zostaną uznane za anomalne. Jeść Maks., Wysoka średnia, Niska, Średnia, Wyraźna i inni. Można znaleźć opisy wszystkich funkcji по ссылке.

W polu Pole wskazuje pole numeryczne w dokumencie, na którym przeprowadzimy analizę.

W polu Rozpiętość łyżki — szczegółowość przedziałów czasowych, według których będzie przeprowadzana analiza. Możesz zaufać automatyzacji lub wybrać ręcznie. Poniższy obraz jest przykładem zbyt małej szczegółowości – możesz przeoczyć tę anomalię. Za pomocą tego ustawienia można zmienić czułość algorytmu na anomalie.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Czas zbierania danych jest kluczową rzeczą wpływającą na skuteczność analizy. Podczas analizy algorytm identyfikuje powtarzające się przedziały, oblicza przedziały ufności (linie bazowe) oraz identyfikuje anomalie – nietypowe odchylenia od zwykłego zachowania metryki. Tylko na przykład:

Wartości bazowe z małym fragmentem danych:

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Kiedy algorytm ma się z czego uczyć, linia bazowa wygląda następująco:

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Po uruchomieniu zadania algorytm określa anomalne odchylenia od normy i szereguje je według prawdopodobieństwa wystąpienia anomalii (w nawiasach podano kolor odpowiedniej etykiety):

Ostrzeżenie (niebieski): mniej niż 25
Drobny (żółty): 25-50
Major (pomarańczowy): 50-75
Krytyczny (czerwony): 75-100

Poniższy wykres przedstawia przykład znalezionych anomalii.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Tutaj widać liczbę 94, która wskazuje prawdopodobieństwo wystąpienia anomalii. Oczywiste jest, że skoro wartość jest bliska 100, oznacza to, że mamy anomalię. Kolumna pod wykresem pokazuje pejoratywnie małe prawdopodobieństwo pojawienia się tam wartości metryki wynoszącej 0.000063634%.

Oprócz wyszukiwania anomalii, w Kibanie możesz uruchomić prognozowanie. Odbywa się to w prosty sposób i z tego samego widoku z anomaliami - przycisk Prognoza w prawym górnym rogu.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Prognozę sporządza się z maksymalnie 8-tygodniowym wyprzedzeniem. Nawet jeśli naprawdę tego chcesz, nie jest to już możliwe z założenia.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

W niektórych sytuacjach prognoza będzie bardzo przydatna, np. przy monitorowaniu obciążenia użytkowników infrastruktury.

Wiele metrycznych

Przejdźmy do kolejnej funkcji ML w Elastic Stack — analizowania kilku metryk w jednej partii. Nie oznacza to jednak, że analizowana będzie zależność jednej metryki od drugiej. Działa to tak samo jak w przypadku pojedynczego wskaźnika, ale z wieloma wskaźnikami na jednym ekranie w celu łatwego porównania wpływu jednego na drugi. O analizowaniu zależności jednej metryki od drugiej porozmawiamy w sekcji Populacja.

Po kliknięciu na kwadrat z Multi Metric pojawi się okno z ustawieniami. Przyjrzyjmy się im bardziej szczegółowo.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Najpierw musisz wybrać pola do analizy i agregacji danych na ich temat. Opcje agregacji są tutaj takie same, jak w przypadku pojedynczej metryki (Maks., Wysoka średnia, Niska, Średnia, Wyraźna i inni). Ponadto, w razie potrzeby, dane są dzielone na jedno z pól (pole Podziel dane). W przykładzie zrobiliśmy to według pola OriginAirportID. Zwróć uwagę, że wykres metryk po prawej stronie jest teraz prezentowany jako wiele wykresów.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Pole Kluczowe pola (influencerzy) bezpośrednio wpływa na wykryte anomalie. Domyślnie zawsze będzie tu co najmniej jedna wartość i możesz dodać kolejne. Algorytm uwzględni wpływ tych pól podczas analizy i pokaże najbardziej „wpływowe” wartości.

Po uruchomieniu coś takiego pojawi się w interfejsie Kibana.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Jest to tzw mapa cieplna anomalii dla każdej wartości pola OriginAirportID, co wskazaliśmy w Podziel dane. Podobnie jak w przypadku pojedynczego wskaźnika, kolor wskazuje poziom nieprawidłowego odchylenia. Wygodnie jest przeprowadzić podobną analizę np. na stacjach roboczych, aby wyśledzić te, które mają podejrzanie dużą liczbę uprawnień itp. Już pisaliśmy o podejrzanych zdarzeniach w EventLog Windows, które można również tutaj gromadzić i analizować.

Poniżej mapy cieplnej znajduje się lista anomalii. W przypadku każdej z nich możesz przełączyć się do widoku Pojedyncza metryka w celu szczegółowej analizy.

Populacja

Aby szukać anomalii między korelacjami między różnymi metrykami, Elastic Stack posiada specjalistyczną analizę populacji. To za jego pomocą można szukać nietypowych wartości w wydajności serwera w porównaniu do innych, gdy np. wzrasta liczba żądań do systemu docelowego.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Na tej ilustracji pole Populacja wskazuje wartość, do której będą odnosić się analizowane metryki. W tym przypadku jest to nazwa procesu. W rezultacie zobaczymy, jak obciążenie procesora każdego procesu wpływało na siebie.

Należy pamiętać, że wykres analizowanych danych różni się od przypadków z pojedynczą metryką i wieloma metrykami. Dokonano tego w Kibanie z założenia, aby poprawić postrzeganie rozkładu wartości analizowanych danych.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Wykres pokazuje, że proces zachowywał się nieprawidłowo stres (nawiasem mówiąc, wygenerowany przez specjalne narzędzie) na serwerze poipu, który wpłynął (lub okazał się wpływowcem) na wystąpienie tej anomalii.

Zaawansowane

Analityka z dostrojeniem. W przypadku analizy zaawansowanej w Kibanie pojawiają się dodatkowe ustawienia. Po kliknięciu na kafelek Zaawansowane w menu tworzenia pojawia się okno z zakładkami. Patka szczegóły pracy Celowo to pominęliśmy, są tam podstawowe ustawienia niezwiązane bezpośrednio z ustawieniem analizy.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

В liczba_podsumowań nazwa_pola Opcjonalnie możesz podać nazwę pola z dokumentów zawierających wartości zagregowane. W tym przykładzie liczba zdarzeń na minutę. W nazwa_pola_kategoryzacji wskazuje nazwę i wartość pola z dokumentu zawierającego jakąś zmienną wartość. Za pomocą maski znajdującej się na tym polu można podzielić analizowane dane na podzbiory. Zwróć uwagę na przycisk Dodaj detektor na poprzedniej ilustracji. Poniżej efekt kliknięcia tego przycisku.

Zrozumienie uczenia maszynowego w Elastic Stack (aka Elasticsearch, alias ELK)

Poniżej znajduje się dodatkowy blok ustawień służący do konfiguracji detektora anomalii pod kątem konkretnego zadania. W kolejnych artykułach planujemy omówić konkretne przypadki użycia (zwłaszcza dotyczące bezpieczeństwa). Na przykład, zobaczyć jedna ze zdemontowanych obudów. Wiąże się to z poszukiwaniem rzadko występujących wartości i jest realizowane rzadka funkcja.

W polu funkcjonować Możesz wybrać konkretną funkcję do wyszukiwania anomalii. Z wyjątkiem rzadki, jest jeszcze kilka interesujących funkcji - pora dnia и czas_tygodnia. Identyfikują anomalie w zachowaniu wskaźników odpowiednio w ciągu dnia lub tygodnia. Inne funkcje analityczne jest w dokumentacji.

В Nazwa pola wskazuje dziedzinę dokumentu, na którym zostanie przeprowadzona analiza. Według_nazwy_pola można wykorzystać do oddzielenia wyników analizy dla każdej indywidualnej wartości określonego tutaj pola dokumentu. Jeśli wypełnisz nazwa_pola otrzymasz analizę populacji, którą omówiliśmy powyżej. Jeśli określisz wartość w nazwa_pola_partycji, wówczas dla tego pola dokumentu dla każdej wartości zostaną wyliczone osobne wartości bazowe (wartością może być np. nazwa serwera lub procesu na serwerze). W wykluczaj_często może wybrać cała kolekcja lub Żaden, co będzie oznaczać wykluczenie (lub włączenie) często występujących wartości pól dokumentu.

W tym artykule staraliśmy się jak najkrócej przedstawić możliwości uczenia maszynowego w Elastic Stack; wiele szczegółów pozostało jeszcze za kulisami. Opowiedz nam w komentarzach, jakie przypadki udało Ci się rozwiązać za pomocą Elastic Stack i do jakich zadań go używasz. Aby się z nami skontaktować, możesz skorzystać z wiadomości osobistych na Habré lub formularz opinii na stronie internetowej.

Źródło: www.habr.com

Dodaj komentarz