Tworzenie Dashboardu w Kibana do monitorowania logów

Tworzenie Dashboardu w Kibana do monitorowania logów

Cześć, mam na imię Jewgienij, jestem liderem zespołu B2B w Sitimobil. Jednym z zadań naszego zespołu jest wsparcie integracji zamówień taksi od partnerów, a aby zapewnić stabilność usługi, musimy zawsze wiedzieć, co dzieje się w naszych mikroserwisach. W tym celu musimy na bieżąco monitorować logi.

W Sitimobil korzystamy z zestawu ELK (ElasticSearch, Logstash, Kibana) do pracy z logami, a objętość danych tam przekazywanych jest ogromna. Znalezienie w tej masie zapytań problemów, które mogą pojawić się po wdrożeniu nowego kodu, jest dość trudne. Aby je wizualnie zidentyfikować, w Kibana jest sekcja Dashboard.

Na Habrze jest sporo artykułów z przykładami, jak skonfigurować zestaw ELK do odbierania i przechowywania danych, ale brakuje aktualnych materiałów na temat tworzenia Dashboardów. Dlatego chcę pokazać, jak w Kibana tworzyć wizualizację danych na podstawie przychodzących logów.

Konfiguracja

Aby było bardziej przejrzyste, stworzyłem obraz Dockera z ELK i Filebeat. Umieściłem w kontenerze małą aplikację napisaną w Go, która w naszym przykładzie będzie generować testowe logi. Nie będę szczegółowo opisywał konfiguracji ELK, jest na to wystarczająco dużo materiałów na Habrze.

Klonujemy repozytorium z konfiguracją docker-compose i ustawieniami ELK, a następnie uruchamiamy je poleceniem docker-compose up. Celowo nie dodaję klucza -d, aby zobaczyć proces działania zestawu ELK.

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

Jeśli wszystko jest poprawnie skonfigurowane, w logach powinniśmy zobaczyć wpis (może to zająć chwilę, proces uruchamiania kontenera z całym zestawem może zająć kilka minut):

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

Pod adresem localhost:5061 powinna otworzyć się Kibana.

Tworzenie Dashboardu w Kibana do monitorowania logów
Tworzenie Dashboardu w Kibana do monitorowania logów
Jedyną rzeczą, którą musimy skonfigurować, jest stworzenie Wzoru Indeksu dla Kibana z informacjami o tym, jakie dane mają być wyświetlane. W tym celu wykonamy zapytanie curl lub przechodzimy przez kilka działań w interfejsie graficznym.

$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
    -H 'Content-Type: application/json'
    -H 'kbn-xsrf: true'
    -d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'

Tworzenie Wzoru Indeksu przez interfejs graficzny
Aby skonfigurować, wybieramy w lewym menu sekcję Odkrywaj, a następnie przechodzimy na stronę tworzenia Wzoru Indeksu.

Tworzenie Dashboardu w Kibana do monitorowania logów
Naciskając przycisk „Utwórz wzór indeksu”, przechodzimy na stronę tworzenia indeksu. W polu „Nazwa wzoru indeksu” wpisujemy „logstash-*”. Jeśli wszystko jest poprawnie skonfigurowane, poniżej Kibana pokaże pasujące indeksy.

Tworzenie Dashboardu w Kibana do monitorowania logów
Na następnej stronie wybieramy kluczowe pole z znakiem czasu, w naszym przypadku to @timestamp.

Tworzenie Dashboardu w Kibana do monitorowania logów
W rezultacie pojawi się strona ustawień indeksu, ale teraz nie są potrzebne żadne dodatkowe działania z naszej strony.

Tworzenie Dashboardu w Kibana do monitorowania logów

Teraz znów możemy przejść do sekcji Discover, gdzie zobaczymy rekordy logów.

Tworzenie Dashboardu w Kibana do monitorowania logów

Dashboard

W lewym menu klikamy na sekcję tworzenia Dashboard i przechodzimy na odpowiednią stronę.

Tworzenie Dashboardu w Kibana do monitorowania logów
Klikamy na "Create new dashboard" i przechodzimy na stronę dodawania obiektów do Dashboard.

Tworzenie Dashboardu w Kibana do monitorowania logów
Klikamy na przycisk "Create new" i system zaproponuje wybór sposobu wyświetlania danych. W Kibanie jest ich wiele, ale rozważymy stworzenie graficznej reprezentacji "Vertical Bar" oraz tabeli "Data Table". Pozostałe rodzaje wyświetlenia są konfigurowane w podobny sposób. 
Tworzenie Dashboardu w Kibana do monitorowania logów
Niektóre dostępne obiekty mają etykiety B i E — oznacza to, że format jest eksperymentalny lub w fazie beta testów. Z czasem format może się zmienić lub całkowicie zniknąć z Kibany.

Vertical Bar

Dla przykładu "Vertical Bar" stworzymy histogram proporcji udanych i nieudanych statusów odpowiedzi naszego serwisu. Po zakończeniu ustawień uzyskamy następujący wykres:

Tworzenie Dashboardu w Kibana do monitorowania logów
Do udanych zaliczymy wszystkie zapytania ze statusem odpowiedzi = 400.

Aby stworzyć wykres "Vertical Bar", musimy wybrać źródło danych. Wybieramy wzór indeksu, który utworzyliśmy wcześniej.

Tworzenie Dashboardu w Kibana do monitorowania logów
Domyślnie, po wyborze źródła danych pojawi się jeden ciągły wykres. Skonfigurujmy go.

Tworzenie Dashboardu w Kibana do monitorowania logów
W sekcji "Buckets" klikamy przycisk „Add”, wybieramy „X-axis” i konfigurujemy oś X. Oznaczymy na niej znaki czasowe przybycia rekordów do logu. W polu „Aggregation” wybieramy „Date Histogram”, a w polu „Field” wybieramy „@timestamp”, wskazujący na pole czasowe. „Minimum interval” pozostawiamy w stanie „Auto”, a on automatycznie dopasuje się do naszego wyświetlenia. 

Tworzenie Dashboardu w Kibana do monitorowania logów
Klikając przycisk „Update”, zobaczymy wykres z ilością zapytań co 30 sekund.

Tworzenie Dashboardu w Kibana do monitorowania logów
Teraz skonfigurujemy kolumny na osi Y. Teraz wyświetlana jest całkowita liczba zapytań w wybranym przedziale czasowym.

Tworzenie Dashboardu w Kibana do monitorowania logów
Zmieńmy wartość „Aggregation” na „Sum Bucket”, która pozwala nam połączyć dane dotyczące udanych i nieudanych zapytań. W sekcji Bucket -> Aggregation wybieramy agregację po „Filters” i ustawiamy filtrację po „statusCode >= 400”. A w polu „Custom label” podajemy naszą nazwę wskaźnika dla lepszego wyświetlania w legendzie na wykresie i w ogólnym wykazie.

Tworzenie Dashboardu w Kibana do monitorowania logów
Klikając przycisk „Aktualizuj” pod blokiem ustawień, uzyskamy wykres z problematycznymi zapytaniami.

Tworzenie Dashboardu w Kibana do monitorowania logów
Jeśli klikniesz okrąg obok legendy, pojawi się okno, w którym można zmienić kolor słupków.

Tworzenie Dashboardu w Kibana do monitorowania logów
Teraz dodajemy do wykresu dane o udanych zapytaniach. W sekcji „Metryki” klikamy przycisk „Dodaj” i wybieramy „Oś Y”.

Tworzenie Dashboardu w Kibana do monitorowania logów
W nowo utworzonej metryce wykonujemy takie same ustawienia, jak dla błędnych zapytań. Tylko w filtrze podajemy „statusCode < 400”.

Tworzenie Dashboardu w Kibana do monitorowania logów
Zmieniając kolor nowego słupka, uzyskamy wizualizację proporcji problematycznych i udanych zapytań.

Tworzenie Dashboardu w Kibana do monitorowania logów
Klikając w górnej części ekranu przycisk „Zapisz” i podając nazwę, zobaczymy na Dashboardzie pierwszy wykres.

Tworzenie Dashboardu w Kibana do monitorowania logów

Tabela danych

Teraz przyjrzyjmy się tabelarnemu przedstawieniu „Tabela danych”. Stwórzmy tabelę z listą wszystkich URL, dla których były zapytania, oraz liczbą tych zapytań. Podobnie jak w przykładzie z pionowym wykresem, najpierw wybieramy źródło danych.

Tworzenie Dashboardu w Kibana do monitorowania logów
Po tym na ekranie wyświetli się tabela z jedną kolumną, która pokazuje całkowitą liczbę zapytań za wybrany okres czasu.

Tworzenie Dashboardu w Kibana do monitorowania logów
Będziemy zmieniać tylko blok „Koszyki”. Klikamy przycisk „Dodaj” i wybieramy „Podziel wiersze”.

Tworzenie Dashboardu w Kibana do monitorowania logów
W polu „Agregacja” wybieramy „Terminy”. A w pojawiającym się polu „Pole” wybieramy „url.keyword”.

Tworzenie Dashboardu w Kibana do monitorowania logów
Podając w polu „Niestandardowa etykieta” wartość „Url” i klikając „Aktualizuj”, otrzymamy pożądaną tabelę z liczbą zapytań dla każdego z URL za wybrany okres czasu.

Tworzenie Dashboardu w Kibana do monitorowania logów
W górnej części ekranu ponownie klikniemy przycisk „Zapisz” i podamy nazwę tabeli, na przykład Urls. Wrócimy do Dashboardu i zobaczymy oba utworzone widoki.

Tworzenie Dashboardu w Kibana do monitorowania logów

Praca z Dashboardem

Tworząc Dashboard, w ustawieniach obiektów wyświetlania ustalaliśmy tylko podstawowe parametry wizualne. Nie ma sensu podawanie w obiektach danych do filtrów, na przykład „zakresu dat”, „filtrowania według useragent”, „filtrowania według kraju zapytania” itd. Wygodniej jest podać pożądany okres czasu lub ustawić niezbędne filtry w panelu zapytań, który znajduje się nad obiektami.

Tworzenie Dashboardu w Kibana do monitorowania logów
Filtry dodane na tym panelu będą miały zastosowanie do całego Dashboardu, a wszystkie obiekty wyświetlania zostaną przekształcone zgodnie z aktualnymi przefiltrowanymi danymi.

Podsumowanie

Kibana — potężne narzędzie, które pozwala wizualizować wszelkie dane w wygodny sposób. Postarałem się pokazać konfigurację dwóch podstawowych rodzajów wyświetlania. Inne typy również można konfigurować w podobny sposób. Bogactwo opcji, które pozostawiłem „poza kadrem”, pozwoli Wam bardzo elastycznie dostosować wykresy do swoich potrzeb.

Źródło: habr.com

Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS 🔥 Kup solidny hosting stron z ochroną przed DDoS, serwery VPS VDS | ProHoster