Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników

Cześć, mam na imię Eugene, jestem liderem zespołu B2B w Citymobil. Jednym z zadań naszego zespołu jest wspieranie integracji do zamawiania taksówek u partnerów, a aby zapewnić stabilną obsługę, musimy zawsze rozumieć, co dzieje się w naszych mikroserwisach. I do tego musisz stale monitorować dzienniki.

W Citymobil do pracy z logami używamy stosu ELK (ElasticSearch, Logstash, Kibana), a ilość danych tam napływających jest ogromna. Znalezienie problemów w tej masie zgłoszeń, które mogą pojawić się po wdrożeniu nowego kodu jest dość trudne. A dla ich identyfikacji wizualnej Kibana ma sekcję Dashboard.

Istnieje sporo artykułów na temat Habré z przykładami konfigurowania stosu ELK do odbierania i przechowywania danych, ale nie ma odpowiednich materiałów na temat tworzenia pulpitu nawigacyjnego. Dlatego chcę pokazać, jak stworzyć wizualną reprezentację danych na podstawie przychodzących logów w Kibanie.

regulacja

Aby było jaśniej, stworzyłem obraz Dockera za pomocą ELK i Filebeat. I umieszczone w pojemniku mały program w Go, który w naszym przykładzie wygeneruje dzienniki testów. Konfiguracji ELK-a nie będę szczegółowo opisywał, dość jest o tym napisane na Habré.

Sklonuj repozytorium konfiguracji docker-compose i ustawienia ELK i uruchom je za pomocą polecenia docker-compose up. Celowo nie dodaje klucza -daby zobaczyć postęp stosu ELK.

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

Jeśli wszystko jest poprawnie skonfigurowane, to zobaczymy wpis w logach (być może nie od razu, proces uruchamiania kontenera z całym stosem 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"}

W localhost:5061 Kibana powinna się otworzyć.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Jedyne co musimy skonfigurować to stworzyć Index Pattern dla Kibany z informacją jakie dane wyświetlić. W tym celu wykonamy żądanie curl lub wykonamy szereg czynności 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 wzorca indeksu za pomocą GUI
Aby skonfigurować, wybierz sekcję Discover w lewym menu i przejdź do strony tworzenia wzorca indeksu.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Klikając w przycisk „Create index pattern” przechodzimy do strony tworzenia indeksu. W polu „Nazwa wzorca indeksu” wpisz „logstash-*”. Jeśli wszystko jest skonfigurowane poprawnie, poniżej Kibana pokaże indeksy, które podlegają regule.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Na następnej stronie wybierz pole klucza ze znacznikiem czasu, w naszym przypadku tak jest @timestamp.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Spowoduje to wyświetlenie strony ustawień indeksu, ale w tej chwili nie są wymagane żadne dodatkowe działania.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników

Teraz możemy ponownie przejść do sekcji Discover, gdzie zobaczymy wpisy dziennika.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników

Panel Użytkownika

W lewym menu kliknij sekcję Tworzenie pulpitu nawigacyjnego i przejdź do odpowiedniej strony.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Kliknij „Utwórz nowy pulpit nawigacyjny” i przejdź do strony dodawania obiektów do pulpitu nawigacyjnego.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Kliknij przycisk „Utwórz nowy”, a system poprosi o wybranie typu wyświetlania danych. Kibana ma ich dużą liczbę, ale przyjrzymy się stworzeniu graficznej reprezentacji „Pionowego paska” i tabelarycznej „Tabeli danych”. Inne typy prezentacji są konfigurowane w podobny sposób. 
Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Niektóre dostępne obiekty są oznaczone jako B i E, co oznacza, że ​​format jest eksperymentalny lub w fazie testów beta. Z biegiem czasu format może się zmienić lub całkowicie zniknąć z Kibany.

Pionowy pasek

Dla przykładu „Pionowy słupek” utwórzmy histogram stosunku pomyślnych i nieudanych statusów odpowiedzi naszego serwisu. Na koniec ustawień otrzymujemy następujący wykres:

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Wszystkie zgłoszenia ze statusem odpowiedzi < 400 będziemy klasyfikować jako pomyślne, a >= 400 jako problematyczne.

Aby utworzyć wykres „Pionowy słupek”, musimy wybrać źródło danych. Wybierz wzorzec indeksu, który stworzyliśmy wcześniej.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Domyślnie po wybraniu źródła danych pojawi się pojedynczy pełny wykres. Ustawmy to.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
W bloku „Buckets” wciskamy przycisk „Add”, wybieramy „X-asis” i ustawiamy oś X. Odłóżmy na bok znaczniki czasu odbioru wpisów w logu. W polu „Agregacja” wybierz „Histogram daty”, aw polu „Pole” wybierz „@znacznik czasu”, wskazując pole czasu. Pozostawmy „Minimalny interwał” w stanie „Auto”, a automatycznie dostosuje się do naszego wyświetlacza. 

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Klikając w przycisk „Aktualizuj” zobaczymy wykres z liczbą żądań co 30 sekund.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Teraz ustawmy kolumny wzdłuż osi Y. Teraz wyświetlamy całkowitą liczbę żądań w wybranym przedziale czasu.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Zmieńmy wartość „Aggregation” na „Sum Bucket”, co pozwoli nam łączyć dane dla udanych i nieudanych żądań. W bloku Bucket -> Agregation wybierz agregację według "Filters" i ustaw filtrowanie według "statusCode >= 400". A w polu „Etykieta niestandardowa” podajemy naszą nazwę wskaźnika, aby był bardziej zrozumiały w legendzie na wykresie i na liście ogólnej.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Klikając przycisk „Aktualizuj” pod blokiem ustawień, otrzymamy wykres z żądaniami problemów.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Jeśli klikniesz na kółko obok legendy, pojawi się okno, w którym możesz zmienić kolor kolumn.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Teraz dodajmy do wykresu dane dotyczące pomyślnych żądań. W sekcji „Metryki” kliknij przycisk „Dodaj” i wybierz „Oś Y”.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
W tworzonej metryce dokonujemy takich samych ustawień jak dla błędnych żądań. Dopiero w filtrze określamy "statusCode < 400".

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Zmieniając kolor nowej kolumny, otrzymujemy wyświetlenie stosunku zgłoszeń problematycznych do udanych.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Klikając przycisk „Zapisz” u góry ekranu i określając nazwę, zobaczymy pierwszy wykres na Dashboardzie.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników

Tabela danych

Rozważmy teraz widok tabelaryczny „Tabela danych”. Utwórzmy tabelę z listą wszystkich żądanych adresów URL i liczbą tych żądań. Podobnie jak w przypadku paska pionowego, najpierw wybieramy źródło danych.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Następnie na ekranie zostanie wyświetlona tabela z jedną kolumną, która pokazuje całkowitą liczbę zapytań dla wybranego przedziału czasu.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Zmienimy tylko blok „Wiadra”. Kliknij przycisk „Dodaj” i wybierz „Podziel wiersze”.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
W polu „Agregacja” wybierz „Warunki”. A w wyświetlonym polu „Pole” wybierz „url.keyword”.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Określając wartość „Url” w polu „Custom label” i klikając „Aktualizuj”, otrzymamy żądaną tabelę z liczbą zapytań dla każdego z adresów URL w wybranym okresie czasu.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
U góry ekranu kliknij ponownie przycisk „Zapisz” i podaj nazwę tabeli, na przykład Urls. Wróćmy do pulpitu nawigacyjnego i zobaczmy, jak zostały utworzone oba widoki.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników

Praca z pulpitem nawigacyjnym

Podczas tworzenia pulpitu nawigacyjnego w ustawieniach obiektu wyświetlanego ustawiamy tylko główne parametry widoku. Nie ma sensu określać danych dla filtrów w obiektach, na przykład „zakres dat”, „filtrowanie według agenta użytkownika”, „filtrowanie według kraju żądania” itp. O wiele wygodniej jest określić żądany okres czasu lub ustawić niezbędne filtrowanie w panelu zapytań, który znajduje się nad obiektami.

Tworzenie pulpitu nawigacyjnego w Kibanie do monitorowania dzienników
Filtry dodane w tym panelu zostaną zastosowane do całego pulpitu nawigacyjnego, a wszystkie wyświetlane obiekty zostaną przebudowane zgodnie z faktycznie przefiltrowanymi danymi.

wniosek

Kibana to potężne narzędzie, które pozwala w wygodny sposób wizualizować dowolne dane. Starałem się pokazać ustawienie dwóch głównych typów wyświetlaczy. Ale inne typy są konfigurowane w podobny sposób. A bogactwo ustawień, które zostawiłem „za kulisami”, pozwoli bardzo elastycznie dostosować wykresy do własnych potrzeb.

Źródło: www.habr.com

Dodaj komentarz