{"id":35274,"date":"2019-10-31T22:03:22","date_gmt":"2019-10-31T19:03:22","guid":{"rendered":"https:\/\/prohoster.info\/blog\/razbiraemsya-s-machine-learning-v-elastic-stack-on-zhe-elasticsearch-on-zhe-elk\/"},"modified":"2019-10-31T22:03:22","modified_gmt":"2019-10-31T19:03:22","slug":"razbiraemsya-s-machine-learning-v-elastic-stack-on-zhe-elasticsearch-on-zhe-elk","status":"publish","type":"post","link":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/razbiraemsya-s-machine-learning-v-elastic-stack-on-zhe-elasticsearch-on-zhe-elk","title":{"rendered":"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/8fe88b798a64e2ed8e77dbbc89558827.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrzypominamy, \u017ce w podstawie Elastic Stack le\u017cy nierelacyjna baza danych Elasticsearch, interfejs webowy Kibana oraz zbieracze-przetworniki danych (najbardziej znany to Logstash, r\u00f3\u017cne Beats, APM i inne). Jednym z mi\u0142ych dodatk\u00f3w ca\u0142ego wymienionego stosu produkt\u00f3w jest analiza danych przy u\u017cyciu algorytm\u00f3w uczenia maszynowego. W artykule wyja\u015bniamy, czym s\u0105 te algorytmy. Zapraszamy do lektury.<br \/>\n<noindex><a rel=\"nofollow\" name=\"habracut\"><\/a><\/noindex><br \/>\nUczenie maszynowe to p\u0142atna funkcja warunkowo darmowego Elastic Stack i wchodzi w sk\u0142ad pakietu X-Pack. Aby zacz\u0105\u0107 z niego korzysta\u0107, wystarczy po instalacji aktywowa\u0107 30-dniowy okres pr\u00f3bny. Po up\u0142ywie okresu pr\u00f3bnego mo\u017cna poprosi\u0107 o jego przed\u0142u\u017cenie lub wykupi\u0107 subskrypcj\u0119. Koszt subskrypcji obliczany jest nie od ilo\u015bci danych, lecz od liczby u\u017cywanych w\u0119z\u0142\u00f3w. Tak, obj\u0119to\u015b\u0107 danych ma wp\u0142yw na liczb\u0119 wymaganych w\u0119z\u0142\u00f3w, jednak takie podej\u015bcie do licencjonowania jest bardziej przyjazne dla bud\u017cetu firmy. Je\u015bli nie ma potrzeby w wysokiej wydajno\u015bci, mo\u017cna zaoszcz\u0119dzi\u0107.<\/p>\n<p>ML w Elastic Stack napisany jest w C++ i dzia\u0142a poza JVM, w kt\u00f3rej dzia\u0142a sam Elasticsearch. Oznacza to, \u017ce proces (nazwa to zreszt\u0105 autodetect) zu\u017cywa wszystko, co nie wch\u0142onie JVM. Na demo to nie jest tak krytyczne, ale w \u015brodowisku produkcyjnym wa\u017cne jest wydzielenie oddzielnych w\u0119z\u0142\u00f3w dla zada\u0144 ML.<\/p>\n<p>Algorytmy uczenia maszynowego dziel\u0105 si\u0119 na dwie kategorie \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D1%81_%D1%83%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D0%B5%D0%BC\">z nauczycielem<\/a><\/noindex> i <noindex><a rel=\"nofollow\" href=\"https:\/\/ru.wikipedia.org\/wiki\/%D0%9E%D0%B1%D1%83%D1%87%D0%B5%D0%BD%D0%B8%D0%B5_%D0%B1%D0%B5%D0%B7_%D1%83%D1%87%D0%B8%D1%82%D0%B5%D0%BB%D1%8F\">bez nauczyciela<\/a><\/noindex>. W Elastic Stack algorytm nale\u017cy do kategorii \u201ebez nauczyciela\u201d. Mo\u017cna <noindex><a rel=\"nofollow\" href=\"http:\/\/www.ijmlc.org\/papers\/398-LC018.pdf\">tym linkiem<\/a><\/noindex> zobaczy\u0107 aparat matematyczny algorytm\u00f3w uczenia maszynowego.<\/p>\n<p>Do przeprowadzenia analizy algorytm uczenia maszynowego wykorzystuje dane przechowywane w indeksach Elasticsearch. Zadania do analizy mo\u017cna tworzy\u0107 zar\u00f3wno z interfejsu Kibana, jak i za po\u015brednictwem API. Je\u015bli robisz to przez Kibana, to niekt\u00f3re rzeczy nie s\u0105 konieczne do wiedzenia. Na przyk\u0142ad dodatkowe indeksy, kt\u00f3re algorytm wykorzystuje w trakcie pracy. <\/p>\n<p><b class=\"spoiler_title\">Dodatkowe indeksy wykorzystywane w trakcie analizy<\/b>.ml-state \u2014 informacje o modelach statystycznych (ustawienia analizy);<br \/>\n.ml-anomalies-* \u2014 wyniki dzia\u0142ania algorytm\u00f3w ML;<br \/>\n.ml-notifications \u2014 ustawienia powiadomie\u0144 dotycz\u0105cych wynik\u00f3w analizy.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/a6a67b0c05c6650a158d99010c2872f1.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nStruktura danych w bazie Elasticsearch sk\u0142ada si\u0119 z indeks\u00f3w i przechowywanych w nich dokument\u00f3w. Por\u00f3wnuj\u0105c to z relacyjn\u0105 baz\u0105 danych, indeks mo\u017cna por\u00f3wna\u0107 z schematem bazy danych, a dokument z rekordem w tabeli. To por\u00f3wnanie jest umowne i podano je w celu uproszczenia zrozumienia dalszego materia\u0142u dla tych, kt\u00f3rzy tylko s\u0142yszeli o Elasticsearch.<\/p>\n<p>Za pomoc\u0105 API dost\u0119pna jest ta sama funkcjonalno\u015b\u0107, co przez interfejs webowy, dlatego dla wi\u0119kszej przejrzysto\u015bci i zrozumienia koncepcji poka\u017cemy, jak skonfigurowa\u0107 wszystko przez Kibana. W lewym menu znajduje si\u0119 sekcja Machine Learning, w kt\u00f3rej mo\u017cna utworzy\u0107 nowe zadanie (Job). W interfejsie Kibana wygl\u0105da to jak na poni\u017cszym obrazku. Teraz przeanalizujemy ka\u017cdy typ zadania i poka\u017cemy rodzaje analizy, kt\u00f3re mo\u017cna tu skonstruowa\u0107.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/c0c0bede29fbe38a72270d2128926122.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nSingle Metric \u2014 analiza jednej metryki, Multi Metric \u2014 analiza dw\u00f3ch i wi\u0119cej metryk. W obu przypadkach ka\u017cda metryka analizowana jest w izolowanym \u015brodowisku, tj. algorytm nie uwzgl\u0119dnia zachowania r\u00f3wnolegle analizowanych metryk, jak by si\u0119 mog\u0142o wydawa\u0107 w przypadku Multi Metric. Aby przeprowadzi\u0107 obliczenia z uwzgl\u0119dnieniem korelacji r\u00f3\u017cnych metryk, mo\u017cna zastosowa\u0107 analizy populacyjne. A Advanced \u2014 to precyzyjne dostosowanie algorytm\u00f3w poprzez dodatkowe opcje do okre\u015blonych zada\u0144. <\/p>\n<h2>Single Metric<\/h2>\n<p>\nAnaliza zmian jednej metryki \u2014 najprostsza czynno\u015b\u0107, kt\u00f3r\u0105 mo\u017cna tutaj wykona\u0107. Po naci\u015bni\u0119ciu na Create Job algorytm poszuka anomalii.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/d84d29539c3b97be7a15aac8708bc3be.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW polu <i>Agregacja<\/i> mo\u017cna wybra\u0107 podej\u015bcie do wyszukiwania anomalii. Na przyk\u0142ad, przy <i>Min<\/i> za anomalia b\u0119d\u0105 uznawane warto\u015bci poni\u017cej typowych. Istnieje <i>Max, Hign Mean, Low, Mean, Distinct<\/i> i inne. Opis wszystkich funkcji mo\u017cna zobaczy\u0107 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/guide\/en\/elastic-stack-overview\/current\/ml-functions.html\">pod tym linkiem<\/a><\/noindex>.<\/p>\n<p>W polu <i>Pole<\/i> okre\u015bla pole numeryczne w dokumencie, wed\u0142ug kt\u00f3rego b\u0119dziemy przeprowadza\u0107 analiz\u0119.<\/p>\n<p>W polu <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/blog\/explaining-the-bucket-span-in-machine-learning-for-elasticsearch\"><i>Bucket span<\/i><\/a><\/noindex> \u2014 granularno\u015b\u0107 przedzia\u0142\u00f3w na osi czasu, wed\u0142ug kt\u00f3rych b\u0119dzie prowadzona analiza. Mo\u017cna zaufa\u0107 automatyce lub wybra\u0107 r\u0119cznie. Na poni\u017cszym obrazku przedstawiono przyk\u0142ad zbyt niskiej granularno\u015bci \u2014 mo\u017cna przegapi\u0107 anomali\u0119. Dzi\u0119ki tej ustawieniu mo\u017cna zmienia\u0107 czu\u0142o\u015b\u0107 algorytmu na anomalie.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/a2808c0b451703a50d74f7737332ea8b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nCzas trwania zebranych danych \u2014 kluczowy aspekt, kt\u00f3ry wp\u0142ywa na skuteczno\u015b\u0107 analizy. Podczas analizy algorytm okre\u015bla powtarzaj\u0105ce si\u0119 przedzia\u0142y, oblicza przedzia\u0142 ufno\u015bci (linie bazowe) i identyfikuje anomalie \u2014 nietypowe odchylenia od normalnego zachowania metryki. Dla przyk\u0142adu:<\/p>\n<p>Podstawowe linie przy niewielkim odcinku danych:<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/2a3cbeaa8cf08a2a5dec87071be27db8.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nGdy algorytm ma na czym si\u0119 uczy\u0107 \u2014 podstawowe linie wygl\u0105daj\u0105 tak:<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/13d636ab405a85d89e2ae4ebfe8bb6bd.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPo uruchomieniu zadania algorytm okre\u015bla anomalne odchylenia od normy i klasyfikuje je wed\u0142ug prawdopodobie\u0144stwa anomalno\u015bci (w nawiasach podany jest kolor odpowiedniej etykiety):<\/p>\n<p>Warning (niebieski): mniej ni\u017c 25<br \/>\nMinor (\u017c\u00f3\u0142ty): 25-50<br \/>\nMajor (pomara\u0144czowy): 50-75<br \/>\nCritical (czerwony): 75-100<\/p>\n<p>Na poni\u017cszym wykresie przyk\u0142ad z wykrytymi anomaliami.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/ed87198f99f0cc93ffc16ce458054a9f.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTutaj wida\u0107 liczb\u0119 94, kt\u00f3ra oznacza prawdopodobie\u0144stwo anomalii. Oczywi\u015bcie, \u017ce skoro warto\u015b\u0107 bliska 100, mamy do czynienia z anomali\u0105. W kolumnie pod wykresem podana jest znikoma warto\u015b\u0107 0.000063634% wyst\u0105pienia tam warto\u015bci metryki.<\/p>\n<p>Opr\u00f3cz wyszukiwania anomalii w Kibana mo\u017cna uruchomi\u0107 prognozowanie. Robi si\u0119 to bardzo \u0142atwo w tym samym widoku z anomaliami \u2014 przycisk <i>Forecast<\/i> w prawym g\u00f3rnym rogu.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/73429a947befb8834972ebbfe48c2d48.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPrognoza jest tworzona na maksymalnie 8 tygodni do przodu. Nawet je\u015bli bardzo si\u0119 chce \u2014 wi\u0119cej nie mo\u017cna wed\u0142ug projektu.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/7622608e4b952be741be486f89d1bc43.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW niekt\u00f3rych sytuacjach prognoza b\u0119dzie bardzo przydatna, na przyk\u0142ad, gdy monitoruje si\u0119 obci\u0105\u017cenie u\u017cytkownik\u00f3w w infrastrukturze.<\/p>\n<h2>Multi Metric<\/h2>\n<p>\nPrzechodzimy do kolejnej mo\u017cliwo\u015bci ML w Elastic Stack \u2014 analizy kilku metryk w jednej paczce. To nie oznacza, \u017ce zostanie analizowana zale\u017cno\u015b\u0107 jednej metryki od drugiej. To to samo, co Single Metric, tylko z wieloma metrykami na jednym ekranie dla wygody por\u00f3wnania wp\u0142ywu jednej na drug\u0105. O analizie zale\u017cno\u015bci jednej metryki od drugiej opowiemy w cz\u0119\u015bci Population.<\/p>\n<p>Po naci\u015bni\u0119ciu kwadratu z Multi Metric pojawi si\u0119 okno z ustawieniami. Zatrzymajmy si\u0119 nad nimi dok\u0142adniej.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/eaa06c8b24b393209ef1fb5ba9cfbd62.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa pocz\u0105tek nale\u017cy wybra\u0107 pola do analizy i agregacj\u0119 danych wed\u0142ug nich. Opcje agregacji s\u0105 takie same jak dla Single Metric (<i>Max, Hign Mean, Low, Mean, Distinct<\/i> i inne). Nast\u0119pnie dane, je\u015bli b\u0119dzie taka potrzeba, s\u0105 dzielone po jednym z p\u00f3l (pole <i>Split Data<\/i>). W przyk\u0142adzie zrobili\u015bmy to wed\u0142ug pola <i>OriginAirportID<\/i>. Zwr\u00f3\u0107 uwag\u0119, \u017ce wykres metryk po prawej stronie jest teraz przedstawiony w postaci wielu wykres\u00f3w.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/746a91b28a010a037c66a569fcf47a1b.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nPole <i>Key Fields (Influencers)<\/i> ma bezpo\u015bredni wp\u0142yw na znalezione anomalie. Domy\u015blnie zawsze b\u0119dzie tu przynajmniej jedna warto\u015b\u0107, a mo\u017cesz doda\u0107 dodatkowe. Algorytm uwzgl\u0119dni wp\u0142yw tych p\u00f3l w analizie i poka\u017ce najwa\u017cniejsze \"wp\u0142ywowe\" warto\u015bci.<\/p>\n<p>Po uruchomieniu w interfejsie Kibana pojawi si\u0119 mniej wi\u0119cej taki obrazek.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/c6efd8f4815ad150b046c82780c36574.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTo tzw. mapa cieplna anomalii dla ka\u017cdej warto\u015bci pola <i>OriginAirportID<\/i>, kt\u00f3re wskazali\u015bmy w <i>Split Data<\/i>. Tak jak w przypadku Single Metric, kolor oznacza poziom anomalii. Podobn\u0105 analiz\u0119 mo\u017cna wygodnie przeprowadza\u0107, na przyk\u0142ad, dla stacji roboczych, aby \u015bledzi\u0107 te, kt\u00f3re maj\u0105 podejrzanie du\u017co autoryzacji itd. Ju\u017c pisali\u015bmy <noindex><a rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/galssoftware\/blog\/447522\/\">o podejrzanych zdarzeniach w EventLog Windows<\/a><\/noindex>, kt\u00f3re r\u00f3wnie\u017c mo\u017cna tutaj zbiera\u0107 i analizowa\u0107.<\/p>\n<p>Pod map\u0105 ciepln\u0105 znajduje si\u0119 lista anomalii, z ka\u017cdego elementu mo\u017cna przej\u015b\u0107 do widoku Single Metric dla szczeg\u00f3\u0142owej analizy.<\/p>\n<h2>Population<\/h2>\n<p>\nAby szuka\u0107 anomalii w\u015br\u00f3d korelacji mi\u0119dzy r\u00f3\u017cnymi metrykami, w Elastic Stack dost\u0119pna jest specjalizowana analiza Population. Dzi\u0119ki niej mo\u017cna poszuka\u0107 anomali w wydajno\u015bci danego serwera w por\u00f3wnaniu z innymi podczas, na przyk\u0142ad, zwi\u0119kszenia liczby zapyta\u0144 do docelowego systemu.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/00542d57f2a937d424b2db5e692a6289.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nNa tej ilustracji w polu Population wskazane jest warto\u015b\u0107, do kt\u00f3rej b\u0119d\u0105 odnosi\u0107 si\u0119 analizowane metryki. W tym przypadku to nazwa procesu. W rezultacie zobaczymy, jak obci\u0105\u017cenie procesora przez ka\u017cdy z proces\u00f3w wp\u0142ywa\u0142o na siebie nawzajem.<\/p>\n<p>Z wykresu wida\u0107, \u017ce interpretacja analizowanych danych r\u00f3\u017cni si\u0119 od przypadk\u00f3w z Single Metric i Multi Metric. Jest to wykonane w Kibana zgodnie z zamys\u0142em, aby poprawi\u0107 percepcj\u0119 rozk\u0142adu warto\u015bci analizowanych danych.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/4af704044bf544ca6cd221404288e6c4.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nZ wykresu mo\u017cna zauwa\u017cy\u0107, \u017ce proces <i>stress<\/i> (nawiasem m\u00f3wi\u0105c, wywo\u0142any przez specjalne narz\u0119dzie) na serwerze <i>poipu<\/i>, kt\u00f3ry wp\u0142yn\u0105\u0142 (lub okaza\u0142 si\u0119 influencerem) na powstanie tej anomalii.<\/p>\n<h2>Advanced<\/h2>\n<p>\nZaawansowana analiza. W przypadku analizy Advanced w Kibana pojawiaj\u0105 si\u0119 dodatkowe ustawienia. Po klikni\u0119ciu w menu tworzenia na kafelek Advanced pojawia si\u0119 takie okno z zak\u0142adkami. Zak\u0142adk\u0119 <i>Job Details<\/i> pomin\u0119li\u015bmy celowo, tam znajduj\u0105 si\u0119 podstawowe ustawienia, kt\u00f3re nie odnosz\u0105 si\u0119 bezpo\u015brednio do konfiguracji analizy.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/abe7941ad56acf3ee7ab992fa5fe7b94.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nW <i>summary_count_field_name<\/i> opcjonalnie mo\u017cna poda\u0107 nazw\u0119 pola w dokumentach zawieraj\u0105cego agregowane warto\u015bci. W tym przyk\u0142adzie \u2014 liczba zdarze\u0144 na minut\u0119. W <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/guide\/en\/elastic-stack-overview\/current\/ml-configuring-categories.html\"><i>categorization_field_name<\/i><\/a><\/noindex> wskazuje si\u0119 nazw\u0119 pola w dokumencie, kt\u00f3re zawiera pewn\u0105 zmienn\u0105 warto\u015b\u0107. Na podstawie tego pola mo\u017cna dzieli\u0107 analizowane dane na podzbiory. Zwr\u00f3\u0107 uwag\u0119 na przycisk <i>Add detector<\/i> na wcze\u015bniejszej ilustracji. Poni\u017cej znajduje si\u0119 wynik klikni\u0119cia tego przycisku.<\/p>\n<p><img decoding=\"async\" alt=\"Odkrywamy Machine Learning w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, znanym r\u00f3wnie\u017c jako ELK)\" src=\"\/wp-content\/uploads\/2019\/06\/cce9a6401d6baa72c68b8e0c3c6ab209.png\" style=\"display:block;margin: 0 auto;\" \/><br \/>\n<br \/>\nTutaj znajduje si\u0119 dodatkowy blok ustawie\u0144 do konfiguracji detektora anomalii dla konkretnego zadania. Konkretne przypadki u\u017cycia (szczeg\u00f3lnie w zakresie bezpiecze\u0144stwa) zamierzamy om\u00f3wi\u0107 w kolejnych artyku\u0142ach. Na przyk\u0142ad, <noindex><a rel=\"nofollow\" href=\"https:\/\/discuss.elastic.co\/t\/dec-4th-2018-en-ml-rarity-analysis-with-machine-learning\/158979\">zobacz<\/a><\/noindex> jeden z omawianych przypadk\u00f3w. Jest zwi\u0105zany z wyszukiwaniem rzadko pojawiaj\u0105cych si\u0119 warto\u015bci i realizowany jest <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/guide\/en\/elastic-stack-overview\/7.1\/ml-rare-functions.html\">funkcj\u0105 rare<\/a><\/noindex>.<\/p>\n<p>W polu <i>function<\/i> mo\u017cna wybra\u0107 okre\u015blon\u0105 funkcj\u0119 do wyszukiwania anomalii. Opr\u00f3cz <i>rare<\/i>, jest jeszcze kilka interesuj\u0105cych funkcji \u2014 <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/guide\/en\/elastic-stack-overview\/7.1\/ml-time-functions.html\"><i>time_of_day<\/i> i <i>time_of_week<\/i><\/a><\/noindex>. Wykrywaj\u0105 one anomalia w zachowaniu metryk w trakcie dnia lub tygodnia, odpowiednio. Pozosta\u0142e funkcje analizy <noindex><a rel=\"nofollow\" href=\"https:\/\/www.elastic.co\/guide\/en\/elastic-stack-overview\/7.1\/ml-functions.html\">s\u0105 w dokumentacji<\/a><\/noindex>.<\/p>\n<p>W <i>field_name<\/i> wskazuje pole dokumentu, wed\u0142ug kt\u00f3rego b\u0119dzie prowadzona analiza. <i>By_field_name<\/i> mo\u017ce by\u0107 u\u017cywane do dzielenia wynik\u00f3w analizy na ka\u017cde osobne warto\u015bci wskazanego tutaj pola dokumentu. Je\u015bli wype\u0142nisz <i>over_field_name<\/i> uzyskasz analiz\u0119 populacji, kt\u00f3r\u0105 omawiali\u015bmy powy\u017cej. Je\u015bli podasz warto\u015b\u0107 w <i>partition_field_name<\/i>, to na podstawie tego pola dokumentu b\u0119d\u0105 obliczane osobne podstawowe linie dla ka\u017cdej warto\u015bci (jako warto\u015b\u0107 mog\u0105 wyst\u0119powa\u0107, na przyk\u0142ad, nazwa serwera lub procesu na serwerze). W <i>exclude_frequent<\/i> mo\u017cna wybra\u0107 <i>wszystko<\/i> lub <i>none<\/i>, co b\u0119dzie oznacza\u0107 wykluczenie (lub uwzgl\u0119dnienie) cz\u0119sto wyst\u0119puj\u0105cych warto\u015bci p\u00f3l dokument\u00f3w.<\/p>\n<p>W artykule starali\u015bmy si\u0119 jak najkr\u00f3cej przedstawi\u0107 mo\u017cliwo\u015bci uczenia maszynowego w Elastic Stack, w tle pozostaje jeszcze wiele szczeg\u00f3\u0142\u00f3w. Podzielcie si\u0119 w komentarzach, jakie przypadki uda\u0142o si\u0119 rozwi\u0105za\u0107 za pomoc\u0105 Elastic Stack i do jakich zada\u0144 go wykorzystujecie. Aby si\u0119 z nami skontaktowa\u0107, mo\u017cecie u\u017cy\u0107 wiadomo\u015bci prywatnych na Habrze lub <noindex><a rel=\"nofollow\" href=\"https:\/\/gals.software\/solutions\/elasticstack\">formularza kontaktowego na stronie<\/a><\/noindex>.<br \/>\n<br \/>\u0179r\u00f3d\u0142o: <a content=\"nofollow\" rel=\"nofollow\" href=\"https:\/\/habr.com\/ru\/company\/galssoftware\/blog\/455387\/\">habr.com<\/a><\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c, \u0447\u0442\u043e \u0432 \u043e\u0441\u043d\u043e\u0432\u0435 Elastic Stack \u043b\u0435\u0436\u0430\u0442 \u043d\u0435\u0440\u0435\u043b\u044f\u0446\u0438\u043e\u043d\u043d\u0430\u044f \u0431\u0430\u0437\u0430 \u0434\u0430\u043d\u043d\u044b\u0445 Elasticsearch, \u0432\u0435\u0431-\u0438\u043d\u0442\u0435\u0440\u0444\u0435\u0439\u0441 Kibana \u0438 \u0441\u0431\u043e\u0440\u0449\u0438\u043a\u0438-\u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0438 \u0434\u0430\u043d\u043d\u044b\u0445 (\u0441\u0430\u043c\u044b\u0439 \u0438\u0437\u0432\u0435\u0441\u0442\u043d\u044b\u0439 Logstash, \u0440\u0430\u0437\u043b\u0438\u0447\u043d\u044b\u0435 Beats, APM \u0438 \u0434\u0440\u0443\u0433\u0438\u0435). \u041e\u0434\u043d\u043e \u0438\u0437 \u043f\u0440\u0438\u044f\u0442\u043d\u044b\u0445 \u0434\u043e\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0439 \u0432\u0441\u0435\u0433\u043e \u043f\u0435\u0440\u0435\u0447\u0438\u0441\u043b\u0435\u043d\u043d\u043e\u0433\u043e \u0441\u0442\u0435\u043a\u0430 \u043f\u0440\u043e\u0434\u0443\u043a\u0442\u043e\u0432 \u2014 \u0430\u043d\u0430\u043b\u0438\u0437 \u0434\u0430\u043d\u043d\u044b\u0445 \u043f\u0440\u0438 \u043f\u043e\u043c\u043e\u0449\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u043e\u0432 \u043c\u0430\u0448\u0438\u043d\u043d\u043e\u0433\u043e \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u044f. \u0412 \u0441\u0442\u0430\u0442\u044c\u0435 \u043c\u044b \u0440\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0447\u0442\u043e \u0438\u0437 \u0441\u0435\u0431\u044f \u043f\u0440\u0435\u0434\u0441\u0442\u0430\u0432\u043b\u044f\u044e\u0442 \u044d\u0442\u0438 \u0430\u043b\u0433\u043e\u0440\u0438\u0442\u043c\u044b. \u041f\u0440\u043e\u0441\u0438\u043c \u043f\u043e\u0434 \u043a\u0430\u0442. \u041c\u0430\u0448\u0438\u043d\u043d\u043e\u0435 \u043e\u0431\u0443\u0447\u0435\u043d\u0438\u0435 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":1,"featured_media":26487,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[688],"tags":[],"class_list":["post-35274","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-administrirovanie"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.1.1 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Yuri Gagarin\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/razbiraemsya-s-machine-learning-v-elastic-stack-on-zhe-elasticsearch-on-zhe-elk\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.1.1\" \/>\n\t\t<meta property=\"og:locale\" content=\"pl_PL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441 Machine Learning \u0432 Elastic Stack (\u043e\u043d \u0436\u0435 Elasticsearch, \u043e\u043d \u0436\u0435 ELK) | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/razbiraemsya-s-machine-learning-v-elastic-stack-on-zhe-elasticsearch-on-zhe-elk\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2019-10-31T19:03:22+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2019-10-31T19:03:22+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Rozwa\u017cania na temat uczenia maszynowego w Elastic Stack (znanym r\u00f3wnie\u017c jako Elasticsearch, tak\u017ce ELK) | ProHoster","description":"Przypominamy.","canonical_url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/razbiraemsya-s-machine-learning-v-elastic-stack-on-zhe-elasticsearch-on-zhe-elk","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"pl_PL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u0420\u0430\u0437\u0431\u0438\u0440\u0430\u0435\u043c\u0441\u044f \u0441 Machine Learning \u0432 Elastic Stack (\u043e\u043d \u0436\u0435 Elasticsearch, \u043e\u043d \u0436\u0435 ELK) | ProHoster","og:description":"\u041d\u0430\u043f\u043e\u043c\u043d\u0438\u043c.","og:url":"https:\/\/prohoster.info\/pl\/blog\/administrirovanie\/razbiraemsya-s-machine-learning-v-elastic-stack-on-zhe-elasticsearch-on-zhe-elk","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2019-10-31T19:03:22+00:00","article:modified_time":"2019-10-31T19:03:22+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":{"post_id":"35274","title":null,"description":null,"keywords":null,"keyphrases":null,"primary_term":null,"canonical_url":null,"og_title":null,"og_description":null,"og_object_type":"default","og_image_type":"default","og_image_url":null,"og_image_width":null,"og_image_height":null,"og_image_custom_url":null,"og_image_custom_fields":null,"og_video":null,"og_custom_url":null,"og_article_section":null,"og_article_tags":null,"twitter_use_og":false,"twitter_card":"default","twitter_image_type":"default","twitter_image_url":null,"twitter_image_custom_url":null,"twitter_image_custom_fields":null,"twitter_title":null,"twitter_description":null,"schema":{"blockGraphs":[],"customGraphs":[],"default":{"data":{"Article":[],"Course":[],"Dataset":[],"FAQPage":[],"Movie":[],"Person":[],"Product":[],"ProductReview":[],"Car":[],"Recipe":[],"Service":[],"SoftwareApplication":[],"WebPage":[]},"graphName":"","isEnabled":true},"graphs":[]},"schema_type":null,"schema_type_options":null,"pillar_content":false,"robots_default":true,"robots_noindex":false,"robots_noarchive":false,"robots_nosnippet":false,"robots_nofollow":false,"robots_noimageindex":false,"robots_noodp":false,"robots_notranslate":false,"robots_max_snippet":null,"robots_max_videopreview":null,"robots_max_imagepreview":"large","priority":null,"frequency":null,"local_seo":null,"seo_analyzer_scan_date":"2026-01-21 22:37:19","breadcrumb_settings":null,"limit_modified_date":false,"reviewed_by":null,"ai":null,"created":"2021-03-01 02:07:28","updated":"2026-01-21 22:37:19","focus_keyword":null,"additional_keywords":null,"truseo_locale":null},"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35274","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/comments?post=35274"}],"version-history":[{"count":0,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/posts\/35274\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media\/26487"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/media?parent=35274"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/categories?post=35274"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/pl\/wp-json\/wp\/v2\/tags?post=35274"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}