ELK: Elasticsearch | Logstash | Kibana

ELK

Wraz z rozwojem aplikacji przychodzi moment, w którym zwiększa się zapotrzebowanie na dokładniejszą analizę tego, co nasz system w danej chwili robi, lub robił w przeszłości. Problem zaczyna się wtedy, gdy mamy do czynienia z architekturą rozproszoną. W takiej sytuacji, najczęściej poszczególne elementy naszego systemu znajdują się na różnych maszynach, co często utrudnia analizę występujących problemów.

Ponadto, gdy nasz system zyskuje na popularności musimy zacząć myśleć o efektywnym monitorowaniu poszczególnych jego elementów. Często, podpisujemy umowy SLA (Service Level Agreement), które wymuszają na nas pewien poziom dostępności naszych usług. Naruszenie tych umów wiąże się często z przykrymi konsekwencjami, często finansowymi. Niezapewnienie odpowiedniego poziomu dostępności nieraz doprowadzało do ruiny różne organizacje. Musimy szybko reagować na anomalie, przerwę w działaniu poszczególnych usług, kluczowe jest ustalenie przyczyny awarii i szybkie jej usunięcie.

Jednym ze sposobów monitorowania oraz ustalania przyczyn błędów w działaniu systemu jest analiza logów aplikacji i o tym opowiem w poniższym artykule.

Zastanówmy się przez chwilę, jak w prosty sposób możemy podejść do tematu organizacji logów naszego systemu. Jak wspomniałem wcześniej, istnieje duża szansa na to, że nasz system zostanie rozmieszczony na kilku (a nawet kilkuset) fizycznych maszynach. Co jeżeli, nie chcemy by zespół IT miał bezpośredni dostęp do poszczególnych maszyn? Możemy wtedy zorganizować sobie jedno miejsce, na które przekierujemy sobie nasze logi aplikacyjne, z danych serwerów i do niego dać dostęp zespołowi. Podejście to sprawdza się do pewnego momentu, niestety nie rozwiązuje ono problemu rozproszonych informacji, które dostarczają wartość przy ich całościowej analizie.

Z pomocą przychodzi ELK stack: Elasticsearch, Logstash, Kibana czyli zestaw narzędzi służący do przetwarzania logów aplikacyjnych oraz scentralizowanego zarządzania nimi. Na ELK składa się:

  • Elasticsearch – baza danych, w której zapisywane będą nasze logi, zapewnia ona szybki dostęp do interesujących nas informacji.
  • Logstash – narzędzie, do którego trafiają nasze logi z różnych maszyn w celu ich przetworzenia, wyciągnięcia z nich kluczowych dla nas informacji. Logstash komunikuje się z bazą danych w celu zapisu przetworzonych logów.
  • Kibana – narzędzie do wizualizacji danych pochodzących z bazy danych Elasticsearch

ELK jest wydawany pod jedną wspólną wersją, oznacza to, że np. używanie Elasticsearch w wersji 6.5 wymusza na nas by pozostałe narzędzia były oznaczone tym numerem wersji.

Przyjrzyjmy się najpierw narzędziu, które bezpośrednio będzie przetwarzać nasze logi, czyli Logstashowi. Logstash umożliwia stworzenie pewnego przepływu pracy, na podstawie którego logi, które do niego trafiają mogą być przetwarzane i transformowane w jednolity sposób. Udostępnia on zestaw funkcji oraz podstawowych instrukcji warunkowych przydatnych do rozpoznawania pewnych wzorców w naszych logach oraz wzbogacania ich o dodatkowe informacje.

Podstawowym plikiem konfiguracyjnym Logstasha jest plik logstash.conf. Zawiera on trzy podstawowe sekcje, które uzupełniamy interesującymi nas wyrażeniami.

input {}

filter {}

output {}

Sekcja input definiuje wejście do Logstasha. Udostępnia ona zestaw wtyczek, umożliwiających integrację z różnymi źródłami informacji, np

  • kafka – czyta zdarzenia z określonego topicu brokera komunikatów Kafka,
  • log4j – czyta dane bezpośrednio z aplikacji, w której skonfigurowane jest gniazdo TCP, przez które Log4J przesyła logi aplikacyjne,
  • file – służy do strumieniowania danych z pliku

Gdy mamy już skonfigurowany sposób wejścia danych, czas na ich przetworzenie. Podstawowe wtyczki dla tej sekcji filter to:

  • grok – bardzo przydatna wtyczka, służąca do parsowania logów i umieszczania ich w odpowiednie pola,
  • date – służy do parsowania dat, umieszczania ich w interesujących nas polach
  • mutate – przydatny do manipulowania polami, konwersją danych, usuwaniem zbędnych pól

Sekcja output, określa gdzie mają trafić nasze przetworzone dane, w naszym przypadku skorzystamy z wtyczki elasticsearch, w celu zapisu naszych danych w bazie.

Polecam zapoznanie się z poszczególnymi wtyczkami dla każdej z sekcji, ponieważ jest ich dużo i każda z nich jest bardzo interesująca:

Przykładowy plik konfiguracyjny może wyglądać w ten sposób:

input {

  file {

    path => “/var/log/application.log”

    start_position => "beginning"

  }

}

filter {

    grok {

    patterns_dir => ["./patterns"]

    match => { "message" => [

"%{TIMESTAMP_ISO8601:timestamp}%{SPACES}\[%{GREEDYDATA:thread}\]%{SPACES}%{WORD:level}%{SPACES}%{PACKAGE:package}%{SPACES}-%{SPACES}%{GREEDYDATA:log_message}"

         ]

}

    }

    date {

        match => [ "timestamp", "YYYY-MM-dd HH:mm:ss,SSS" ]

        target => "@timestamp"

        timezone => "Europe/Warsaw"

    }

    if [level] == "DEBUG" { drop{} }

    mutate {

remove_field => ["timestamp", "time", "host", "@version", "message", "thread"]

    }

}

output {

    elasticsearch {

        hosts => ["localhost:9200"]

    }

}

Powyższa konfiguracja powoduje czytanie z pliku application.log, opcja beginning oznacza, że chcemy czytać plik od początku. Następnie, plik jest filtrowany, funkcja match próbuje dopasować log do podanego wzorca (powyższa konfiguracja wskazuje poprzez parameter patterns_dir miejsce ze zdefiniowanymi, nazwanymi wzorcami), a następnie przekazuje wartości do odpowiednich pól (timestamp, thread, level, package itd). Chcemy, aby nasze logi trafiły do Elasticsearch z uzupełnioną data wystąpienia w aplikacji, służy do tego wtyczka date, której podajemy format daty oraz pole do którego ma zostać przekazana. Pole @timestamp jest domyślnie wykorzystywane przez Elasticsearch i Kibanę, w celu indeksowania i wyświetlania danych po czasie. Na końcu tej sekcji usuwamy niepotrzebne pola oraz wszystkie logi z poziomem DEBUG. W sekcji output, korzystamy z wtyczki elasticsearch, więc dane trafiają już bezpośrednio do bazy.

Ostatnią rzeczą jaką potrzebujemy jest uruchomienie Kibany oraz zdefiniowanie index pattern. Jeżeli poprawnie uruchomiliśmy wszystkie elementy ELK powinniśmy mieć do wyboru interesujące na indeksy Elasticsearch.

Wzorzec ustawiamy na logstash-*, przez co złapią się w niego wszystkie indeksy Elasticsearch, których nazwy rozpoczynają się od logstash-

Klikamy w przycisk Next step, następnie musimy wybrać pole, które będzie służyło do filtrowania naszych danych po czasie. W naszym przypadku jest to pole @timestamp

W tym momencie możemy rozpocząć przygodę z analizą naszych danych. W celu przeszukiwania logów po zdefiniowanych wcześniej polach, przechodzimy do zakładki Discover, w bocznym menu.

Zakładka ta pozwala na wyszukiwaniu danych, m.in poprzez definiowanie zakresu czasu, oraz wpisywaniu własnych zapytań.

Często zdarza się, że potrzebujemy skorzystać z przygotowanych wcześniej wizualizacji naszych danych. Aby przygotować takie wizualizacje, przechodzimy do zakładki Visualize. Mamy do wyboru szereg wykresów i narzędzi, które pomogą nam skorelować i zobrazować nasze dane. Do wyboru są między innymi wykresy typu line, heatmap, pie. Ciekawe jest narzędzie mapa, przydatne gdy mamy do czynienia z danymi typu IP, albo współrzędnymi geograficznymi.

Z gotowych wizualizacji możemy budować Dashboardy, zawierające interesujące nas informacje, co bardzo ułatwia analizę zachowania naszych usług.

Od wersji 6.4 Kibana dostarcza nam również narzędzi służących do uczenia maszynowego. Oferuje on wizualizatory pomagające zrozumienie istniejących danych oraz narzędzia analizujące nasze dane pod kątem występujących w nich anomalii. Narzędzie to przedstawimy w osobnym artykule.

Mateusz Morawski

SALESmanago to platforma Customer Engagement, zaprojektowana dla efektywnych i głodnych sukcesu zespołów marketingowych w eCommerce. Dla marketerów, którzy pragną być zaufanymi partnerami dla swoich CEO. Z naszego rozwiązania korzysta ponad 2000 biznesów online średniej wielkości w 50 krajach oraz liczne globalne marki takie jak Starbucks, Vodafone, Lacoste, New Balance czy Victoria's Secret.

SALESmanago zapewnia maksymalizację wzrostu przychodów oraz poprawy wskaźników KPI dla eCommerce wykorzystując trzy zasady: (1) Customer Intimacy, aby stworzyć autentyczne relacje z klientami w oparciu o dane Zero- i First-Party, (2) Precision Execution, aby zapewnić doskonałe omnichannelowe doświadczenie klienta dzięki hiper-personalizacji oraz (3) Growth Intelligence, która łączy wskazówki opracowane przez specjalistów oraz AI, umożliwiając pragmatyczne i szybkie podejmowanie decyzji w celu maksymalizacji efektu.

Czytaj więcej na: www.salesmanago.pl

Transformacja cyfrowa iSpot: Jak polski Apple Premium Partner osiągnął 70-krotny zwrot z inwestycji (ROI) dzięki SALESmanago
Transformacja cyfrowa iSpot: Jak polski Apple Premium Partner osiągnął 70-krotny zwrot z inwestycji (ROI) dzięki SALESmanago

    Kiedy wiodący polski Apple Premium Partner postanowił przekształcić swoje podejście do klienta z transakcyjnego na relacyjne, zwrócił się z tym zadaniem do SALESmanago. Wyniki? Oszałamiający 70-krotny zwrot z inwestycji, wskaźniki zaangażowania w kampaniach e-mailowych wyższe o 1334% od standardów branżowych oraz płynne doświadczenie omnichannel, które doskonale uzupełnia ofertę produktów premium. Oto, jak iSpot […]

Marketerzy ufają swoim narzędziom MarTech, ale nie wykorzystują ich kluczowych funkcji – wynika z badania
Marketerzy ufają swoim narzędziom MarTech, ale nie wykorzystują ich kluczowych funkcji – wynika z badania

    Nowe badania przeprowadzone przez SALESmanago pokazują, że prawie wszyscy przebadani (99%) marketerzy twierdzą, że w swoich technologiach marketingowych posiadają aktywne funkcje, z których nie korzystają, a większość (62%) przyznaje, że wykorzystuje tylko 50-75% dostępnych możliwości Prawie połowa marketerów (47%) uważa, że ledwo radzą sobie z nakładem pracy przez ograniczenia czasowe i wydajnościowe, podczas […]

Ważna aktualizacja naszych Ogólnych Warunków Umów w związku z unijnym Data Act
Ważna aktualizacja naszych Ogólnych Warunków Umów w związku z unijnym Data Act

    Jako Twój zaufany partner, czujemy się odpowiedzialni za Twoje bezpieczeństwo prawne i rozwój. Nieustannie monitorujemy zmiany w przepisach, dlatego proaktywnie aktualizujemy nasze Ogólne Warunki Umów (OWU), aby zapewnić jej zgodność z nowym unijnym Akt w sprawie danych.   Celem tych aktualizacji jest wzmocnienie Twoich praw, co przekłada się na większą elastyczność i kontrolę […]

Tatuum – Rewolucja w Marketingu
Tatuum – Rewolucja w Marketingu

    Tatuum, polska marka odzieżowa, z powodzeniem kształtuje europejskie szały kapsułowe od ponad 25 lat. Jej wyróżnikiem jest kompleksowe podejście, kładące nacisk na jakość, trwałość i ponadczasowy design. Tatuum promuje styl życia zakorzeniony w szacunku do tradycji, doświadczeń i wartości i stawia na budowanie głębokich relacji ze swoimi klientami.. Pomaga jej w tym strategia […]

Jak zrewolucjonizować handel detaliczny w branży fashion: Historia sukcesu Monnari
Jak zrewolucjonizować handel detaliczny w branży fashion:  Historia sukcesu Monnari

    Monnari, uznana polska marka odzieżowa z 25-letnią tradycją, jest ceniona za swój unikalny design, tworzony specjalnie z myślą o polskim rynku mody kobiecej. Łącząc tradycję z nowoczesnością, Monnari oferuje ponadczasowe, wszechstronne kolekcje, przywiązując szczególną wagę do detali w swoich projektach. By móc odpowiadać na potrzeby konsumentów, Monnari prowadzi rozbudowaną sieć sprzedaży, obejmującą sklepy […]

SALESmanago przejmuje Thulium od Spire Capital Partners, ujednolicając marketing i obsługę klienta, by stworzyć płynne, spersonalizowane doświadczenia zakupowe oparte na AI
SALESmanago przejmuje Thulium od Spire Capital Partners, ujednolicając marketing i obsługę klienta, by stworzyć płynne, spersonalizowane doświadczenia zakupowe oparte na AI

    SALESmanago wyznacza nowy standard angażowania klientów, stając się pierwszą platformą, która w pełni integruje pozyskiwanie klientów, zarządzanie ich danymi, automatyzację marketingu, komunikację wielokanałową i obsługę klienta. Europejskie marki eCommerce średniej wielkości mogą teraz zwiększać swoje przychody, monetyzując spersonalizowane interakcje na każdym etapie ścieżki zakupowej.   Kraków, Polska, 24 lipca 2025 – SALESmanago, wiodąca […]

SALESmanago uruchamia platformę marketingową działającą w czasie rzeczywistym, aby skrócić czas tworzenia kampanii z godzin do minut
SALESmanago uruchamia platformę marketingową działającą  w czasie rzeczywistym, aby skrócić czas tworzenia kampanii  z godzin do minut

    Inteligentniejsze i szybsze narzędzia komunikacyjne eliminują bariery w realizacji działań, umożliwiają marketing konwersacyjny i zapewniają natychmiastową personalizację we wszystkich kanałach kontaktu z klientem.   Kraków, Polska; 15 lipca 2025 – SALESmanago, wiodąca europejska Platforma Customer Engagement, ogłosiła serię strategicznych zmian produktowych skoncentrowanych na wsparciu marketerów w szybszej, efektywniejszej i pewniejszej pracy.   Celem […]

TikTok commerce, dark social i zmierzch SEO: badanie SALESmanago ujawnia, co spędza sen z powiek marketerom z sektora detalicznego
TikTok commerce, dark social i zmierzch SEO: badanie SALESmanago ujawnia, co spędza sen z powiek marketerom z sektora detalicznego

    Badanie przeprowadzone wśród europejskich marek e-commerce wskazuje na wyzwania technologiczne wynikające z ewolucji oczekiwań     i zachowań konsumentów.   Kraków, 20 maja 2025 r.: Nadchodzi kres SEO w tradycyjnej odsłonie – tak wynika z najnowszego badania przeprowadzonego przez SALESmanago, czołową europejską platformę zarządzania zaangażowaniem klientów. Aż 73% marketerów w sektorze e-commerce i […]

Ambitniejsze cele, mniejsze budżety: aż 73% marketerów, mimo korzystania z AI, ma problem z osiągnięciem założonych na ten rok celów przy ograniczonych zasobach
Ambitniejsze cele, mniejsze budżety: aż 73% marketerów, mimo korzystania z AI, ma problem z osiągnięciem założonych na ten rok celów przy ograniczonych zasobach

    Z ostatniego badania SALESmanago wynika, że dziś sukces w marketingu warunkuje sztuczna inteligencja – mimo to problemy narastają z uwagi na cięcia kadrowe i coraz większą presję   Kraków, 3 kwietnia 2025 r. Z ostatniego badania SALESmanago, czołowej europejskiej platformy zarządzania zaangażowaniem klientów obsługującej ponad 3 tys. klientów, wynika, że marketerom w Europie […]

AI Sidekick – nowe inteligentne narzędzie SALESmanago mierzy i zwiększa wydajność w eCommerce
AI Sidekick – nowe inteligentne narzędzie SALESmanago mierzy i zwiększa wydajność w eCommerce

    AI Sidekick usprawnia marketing e-commerce, zapewniając inteligentną automatyzację, większe zaangażowanie klientów i dużą elastyczność   Kraków, 12 marca 2025 r.  SALESmanago – czołowa europejska platforma zarządzania zaangażowaniem klientów obsługująca ponad 3 tys. firm – poinformowała dziś o rozszerzeniu funkcji AI Sidekick – spersonalizowanej warstwy AI zaprojektowanej z myślą o większej wydajności w e-commerce, […]