Kibana, czyli zabawa danymi

Czas czytania ~ 130 sekund

Poprzedni wpis na blogu demonstrował, jak wrzucić logi z aplikacji ASP.NET Core do Elasticsearcha. O potężnych możliwościach tego narzędzia pisałem przy okazji konkursu “Daj się poznać”. Tutaj o wyszukiwaniu, tutaj o agregacjach a tutaj o scoringu. Drobną przeszkodą w korzystaniu z Elasticsearcha, zwłaszcza dla początkujących może być DSL – język zapytań oparty o JSON-y, często z dużą liczbą zagnieżdżeń. Własnoręczne budowanie zapytań jest niewygodne i łatwo się pomylić co skutkuje błędami parsera..

Warto wiedzieć, że danych nie musimy analizować zapytaniami. Alternatywą jest Kibana – świetne narzędzie do wizualizowania tego, co mamy zaindeksowane w Elasticsearchu.

Instalacja Kibany to pobranie archiwum zip ze strony elastic, rozpakowanie go i uruchomienie pliku bat. Wymaganiem jest działająca instancja Elasticsearcha, której adres konfigurujemy w pliku kibana.yml. Usługa uruchomi nam się na porcie 5601.

Pracę z Kibaną rozpoczynamy od podania, które indeksy chcemy przeanalizować. Podajemy pattern z gwiazdką, ponieważ np. logstash codziennie zakłada indeks z datą w nazwie.

Ponieważ mam trochę danych, które pozostały po wspomnianym konkursie (JSON-y z informacjami z ogłoszeń z rynku nieruchomości), spróbujemy pobawić się właśnie tymi danymi. Nie trudno będzie znaleźć analogię do tego, jak możemy wizualizować dane z logów ASP.NET.

Discover

Pierwsza zakładka to wygodna wyszukiwarka z analizą wyników. Po wpisaniu frazy z nazwami dwóch dzielnic oddzielonymi słowem kluczowym OR, Kibana przelicza automatycznie statystyki dla każdego zaindeksowanego pola.

kib1

Co ważne, szablony takich zapytań możemy sobie zapisywać na przyszłość.

Visualize

Najfajniejsza zakładka, w której możemy sobie wyklikać wiele różnych rodzajów wykresów, definiując również, jakie zapytanie ma się wykonać po stronie Elasticsearcha.

Najprostszy przykład wykresu – zliczenie dokumentów według pola tekstowego to tylko tyle definicji.

terms

I od razu efekt

ddd

Inny przykład, to znany np. z Excela Pie Chart. Wyklikanie go zajmuje kilka sekund.

www

I na koniec coś wyjątkowego. Jednym z nietypowych typów danych w Elasticsearch jest geo_point. Z punktu widzenia JSON-a jest to zwykły obiekt z dwoma polami reprezentującymi długość i szerokość geograficzną.Interpretację takiego pola można ustawić definiując mapping dla indeksu Elasticsearcha. Geo point można fajnie wykorzystać do wizualizacji. Wykres typu Tile Map umieści na mapie każde zaindeksowane współrzędne geograficzne. Drobnym mankamentem jest to, że najmocniejsze przybliżenie widzimy poniżej, ale w skali globalnej można tworzyć naprawdę fajne wykresy tego typu.

 

wwww

Pozostałe opcje

Budując wykresy możemy podglądać, jakie zapytania są wysyłane do Elasticsearcha i jakie odpowiedzi są zwracane. Dodatkowo mamy możliwość budowania fajnych dashboardów, na których możemy przeglądać wiele różnych zdefiniowanych wykresów i wyników zapytania.

dashnoad.PNG

Na koniec kilka pomysłów na to, jak można za pomocą Kibany wizualizować proste logi IIS (po wrzuceniu ich do Elasticsearcha)

  • pie chart z typami przeglądarek
  • liczba requestów godzinowo / dziennie / tygodniowo
  • słupkowy wykres endpointów, które najczęściej zwracają kody błędu większe niż 400
  • najczęściej odpytywane endpointy
  • liniowy wykres z liczbą unikalnych adresów IP każdego dnia

 

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s