Kibana - Wprowadzenie do stosu łosi
Kibana to narzędzie wizualizacyjne typu open source wykorzystywane głównie do analizy dużej ilości dzienników w postaci wykresów liniowych, słupkowych, kołowych, termomap itp. Kibana działa w synchronizacji z Elasticsearch i Logstash, które razem tworzą tzw. ELK stos.
ELK oznacza Elasticsearch, Logstash i Kibana. ELK jest jedną z popularnych platform do zarządzania dziennikami używanymi na całym świecie do analizy dzienników.
W stosie ELK -
Logstashwyodrębnia dane logowania lub inne zdarzenia z różnych źródeł wejściowych. Przetwarza zdarzenia, a później przechowuje je w Elasticsearch.
Kibana to narzędzie do wizualizacji, które uzyskuje dostęp do logów z Elasticsearch i jest w stanie wyświetlić użytkownikowi w postaci wykresu liniowego, słupkowego, kołowego itp.
W tym samouczku będziemy ściśle współpracować z Kibana i Elasticsearch oraz wizualizować dane w różnych formach.
W tym rozdziale zrozumiemy, jak wspólnie pracować ze stosem ELK. Poza tym zobaczysz również, jak -
- Załaduj dane CSV z Logstash do Elasticsearch.
- Użyj indeksów z Elasticsearch w Kibanie.
Załaduj dane CSV z Logstash do Elasticsearch
Zamierzamy używać danych CSV do przesyłania danych za pomocą Logstash do Elasticsearch. Aby pracować nad analizą danych, możemy pobrać dane ze strony kaggle.com. Witryna Kaggle.com zawiera wszystkie typy danych przesyłanych, a użytkownicy mogą ich używać do analizy danych.
Z tego miejsca pobraliśmy dane w plikach countries.csv: https://www.kaggle.com/fernandol/countries-of-the-world. Możesz pobrać plik csv i użyć go.
Plik csv, którego będziemy używać, zawiera następujące szczegóły.
Nazwa pliku - countriesdata.csv
Kolumny - „Kraj”, „Region”, „Ludność”, „Obszar”
Możesz także utworzyć fałszywy plik csv i użyć go. Będziemy używać logstash, aby zrzucić te dane z countriesdata.csv do pliku flexiblesearch .
Uruchom elastyczne wyszukiwanie i Kibanę w swoim terminalu i kontynuuj ich działanie. Musimy stworzyć plik konfiguracyjny dla logstash, który będzie zawierał szczegółowe informacje o kolumnach pliku CSV, a także inne szczegóły, jak pokazano w pliku logstash-config podanym poniżej -
input {
file {
path => "C:/kibanaproject/countriesdata.csv"
start_position => "beginning"
sincedb_path => "NUL"
}
}
filter {
csv {
separator => ","
columns => ["Country","Region","Population","Area"]
}
mutate {convert => ["Population", "integer"]}
mutate {convert => ["Area", "integer"]}
}
output {
elasticsearch {
hosts => ["localhost:9200"]
=> "countriesdata-%{+dd.MM.YYYY}"
}
stdout {codec => json_lines }
}
W pliku konfiguracyjnym stworzyliśmy 3 komponenty -
Wejście
Musimy podać ścieżkę do pliku wejściowego, który w naszym przypadku jest plikiem csv. Ścieżka, w której przechowywany jest plik csv, jest podawana w polu ścieżki.
Filtr
Będzie miał komponent csv z zastosowanym separatorem, którym w naszym przypadku jest przecinek, a także kolumny dostępne dla naszego pliku csv. Ponieważ logstash traktuje wszystkie dane przychodzące jako łańcuchy, w przypadku gdybyśmy chcieli, aby jakakolwiek kolumna była używana jako liczba całkowita, float to samo musi zostać określone przy użyciu funkcji mutate, jak pokazano powyżej.
Wynik
Na wyjściu musimy określić, gdzie musimy umieścić dane. Tutaj w naszym przypadku używamy elastycznego wyszukiwania. Dane, które należy przekazać elastycznemu wyszukiwaniu, to hosty, na których działa, wspomnieliśmy o nich jako localhost. Następnym polem jest indeks, któremu nadaliśmy nazwę kraje -data bieżąca. Musimy użyć tego samego indeksu w Kibanie po zaktualizowaniu danych w Elasticsearch.
Zapisz powyższy plik konfiguracyjny jako logstash_countries.config . Zauważ, że musimy podać ścieżkę tej konfiguracji do polecenia logstash w następnym kroku.
Aby załadować dane z pliku csv do elasticsearch, musimy uruchomić serwer flexsearch -
A teraz biegnij http://localhost:9200 w przeglądarce, aby sprawdzić, czy elastyczne wyszukiwanie działa pomyślnie.
Mamy uruchomione elastyczne wyszukiwanie. Teraz przejdź do ścieżki, w której jest zainstalowany logstash, i uruchom następujące polecenie, aby przesłać dane do Elasticsearch.
> logstash -f logstash_countries.conf
Powyższy ekran przedstawia ładowanie danych z pliku CSV do Elasticsearch. Aby wiedzieć, czy mamy indeks utworzony w Elasticsearch, możemy sprawdzić to samo w następujący sposób -
Widzimy utworzony indeks countrydata-28.12.2018, jak pokazano powyżej.
Szczegóły indeksu - kraje-28.12.2018 przedstawiają się następująco -
Należy pamiętać, że szczegóły mapowania z właściwościami są tworzone, gdy dane są przesyłane z logstash do Elasticsearch.
Użyj danych z Elasticsearch w Kibanie
Obecnie mamy Kibana działającą na hoście lokalnym, port 5601 - http://localhost:5601. Tutaj pokazano interfejs użytkownika Kibany -
Zauważ, że mamy już Kibanę połączoną z Elasticsearch i powinniśmy być w stanie to zobaczyć index :countries-28.12.2018 wewnątrz Kibana.
W interfejsie użytkownika Kibana kliknij opcję Menu zarządzania po lewej stronie -
Teraz kliknij Zarządzanie indeksem -
Indeksy obecne w Elasticsearch są wyświetlane w zarządzaniu indeksami. Indeks, którego będziemy używać w Kibanie, to kraje dane-28.12.2018.
Tak więc, ponieważ mamy już indeks elastyczne wyszukiwanie w Kibanie, następnie zrozumiemy, jak używać indeksu w Kibanie do wizualizacji danych w postaci wykresu kołowego, wykresu słupkowego, wykresu liniowego itp.