Vytváření Dashboardu v Kibana pro monitorování logů

Vytváření Dashboardu v Kibana pro monitorování logů

Ahoj, jmenuji se Jevgenij, jsem týmový vedoucí B2B sekce v Sitimobil. Jedním z úkolů našeho týmu je podpora integrací pro objednávky taxi od partnerů a pro zajištění stabilního servisu musíme vždy chápat, co se děje v našich mikroslužbách. A k tomu je potřeba neustále sledovat logy.

V Sitimobilu pro práci s logy používáme ELK stack (ElasticSearch, Logstash, Kibana), a objem přicházejících dat je obrovský. Najít v tomto množství požadavky na problémy, které se mohou objevit po nasazení nového kódu, je docela složité. A pro jejich názorné zjištění má Kibana sekci Dashboard.

Na Habru je poměrně hodně článků s příklady, jak nastavit ELK stack pro získávání a uchovávání dat, ale ohledně vytváření Dashboardu aktuální materiály chybí. Proto chci ukázat, jak v Kibana vytvářet vizuální znázornění dat na základě přicházejících logů.

Nastavení

Aby to bylo názornější, vytvořil jsem Docker obraz s ELK a Filebeat. A umístil jsem do kontejneru malou programu v Go, která pro náš příklad bude generovat testovací logy. Podrobně popisovat konfiguraci ELK nebudu, na Habru je o tom dost napsáno.

Odkloňte repozitář s konfigurací docker-compose a nastaveními ELK a spouštíme ho příkazem docker-compose up. Záměrně nepřidávám klíč -d, abych viděl proces práce ELK stacku.

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

Pokud je vše nastaveno správně, v logách uvidíme záznam (možná ne hned, proces spuštění kontejneru s celým stackem může trvat několik minut):

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

Na adrese localhost:5061 by se měla otevřít Kibana.

Vytváření Dashboardu v Kibana pro monitorování logů
Vytváření Dashboardu v Kibana pro monitorování logů
Jediné, co potřebujeme nastavit, je vytvořit Index Pattern pro Kibana s informacemi o tom, která data je potřeba zobrazit. K tomu provedeme curl požadavek nebo uděláme řadu akcí v grafickém rozhraní.

$ 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"}}'

Vytvoření Index Pattern prostřednictvím grafického rozhraní
Pro nastavení vybíráme v levém menu sekci Discover a dostáváme se na stránku vytváření Index pattern.

Vytváření Dashboardu v Kibana pro monitorování logů
Kliknutím na tlačítko „Create index pattern“ se dostáváme na stránku pro vytvoření indexu. Do pole „Index pattern name“ zadáváme „logstash-*“. Pokud je vše nastaveno správně, níže Kibana ukáže indexy, které spadají pod pravidlo.

Vytváření Dashboardu v Kibana pro monitorování logů
Na další stránce vybíráme klíčové pole s časovým označením, v našem případě je to @timestamp.

Vytváření Dashboardu v Kibana pro monitorování logů
Výsledkem bude stránka s nastavením indexu, ale nyní od nás nejsou vyžadovány žádné další akce.

Vytváření Dashboardu v Kibana pro monitorování logů

Nyní se můžeme znovu vrátit do sekce Discover, kde uvidíme záznamy protokolů.

Vytváření Dashboardu v Kibana pro monitorování logů

Dashboard

V levém menu klikněte na sekci pro vytvoření Dashboardu a dostanete se na odpovídající stránku.

Vytváření Dashboardu v Kibana pro monitorování logů
Klikněte na "Create new dashboard" a dostanete se na stránku pro přidání objektů do Dashboardu.

Vytváření Dashboardu v Kibana pro monitorování logů
Klikněte na tlačítko "Create new" a systém vám nabídne vybrat způsob zobrazení dat. V Kibana jich je velké množství, ale my se podíváme na vytvoření grafického zobrazení "Vertical Bar" a tabulkového "Data Table". Ostatní typy zobrazení se nastavují podobným způsobem. 
Vytváření Dashboardu v Kibana pro monitorování logů
Některé dostupné objekty mají štítky B a E — to znamená, že formát je experimentální nebo v beta testování. V průběhu času se formát může změnit nebo úplně zmizet z Kibany.

Vertikální sloupec

Pro příklad "Vertical Bar" vytvoříme histogram poměru úspěšných a neúspěšných stavů odpovědi našeho servisu. Po dokončení nastavení získáme následující graf:

Vytváření Dashboardu v Kibana pro monitorování logů
K úspěšným budeme počítat všechny požadavky se stavem odpovědi = 400.

Pro vytvoření grafu "Vertical Bar" je nutné vybrat zdroj dat. Vyberte Index Pattern, který jsme vytvořili dříve.

Vytváření Dashboardu v Kibana pro monitorování logů
Ve výchozím nastavení, po výběru zdroje dat, se zobrazí jeden souvislý graf. Nastavíme ho.

Vytváření Dashboardu v Kibana pro monitorování logů
V bloku "Buckets" klikneme na tlačítko "Add", vybereme "X-axis" a nastavíme osu X. Na tuto osu umístíme časové značky příchozích záznamů do protokolu. V poli "Aggregation" vybereme "Date Histogram" a v poli "Field" zvolíme "@timestamp", což označuje časové pole. "Minimum interval" ponecháme v nastavení "Auto", aby se automaticky přizpůsoboval našemu zobrazení. 

Vytváření Dashboardu v Kibana pro monitorování logů
Po kliknutí na tlačítko "Update" uvidíme graf s počtem požadavků každých 30 sekund.

Vytváření Dashboardu v Kibana pro monitorování logů
Nyní nastavíme sloupce po ose Y. Momentálně se zobrazuje celkový počet požadavků ve vybraném časovém intervalu.

Vytváření Dashboardu v Kibana pro monitorování logů
Změníme hodnotu "Aggregation" na "Sum Bucket", což nám umožní sloučení dat o úspěšných a neúspěšných požadavcích. V bloku Bucket -> Aggregation vybíráme agregaci podle "Filters" a nastavíme filtraci podle "statusCode >= 400". A do pole "Custom label" zadáme naše názvy ukazatelů pro přehlednější zobrazení v legendě na grafu a v celém seznamu.

Vytváření Dashboardu v Kibana pro monitorování logů
Po kliknutí na tlačítko "Update" pod blokem nastavení získáme graf s problematickými požadavky.

Vytváření Dashboardu v Kibana pro monitorování logů
Pokud kliknete na kruh vedle legendy, otevře se okno, ve kterém můžete změnit barvu sloupců.

Vytváření Dashboardu v Kibana pro monitorování logů
Nyní přidáme do grafu data o úspěšných dotazech. V sekci „Metrics“ klikněte na tlačítko „Přidat“ a vyberte „Y-axis“.

Vytváření Dashboardu v Kibana pro monitorování logů
V nově vytvořené metrice nastavte stejné parametry jako pro chybnou dotazy. Pouze ve filtru uveďte „statusCode < 400“.

Vytváření Dashboardu v Kibana pro monitorování logů
Změnou barvy nového sloupce získáme zobrazení poměru problematických a úspěšných dotazů.

Vytváření Dashboardu v Kibana pro monitorování logů
Kliknutím na tlačítko „Uložit“ v horní části obrazovky a zadáním názvu uvidíme na Dashboardu první graf.

Vytváření Dashboardu v Kibana pro monitorování logů

Data Table

Nyní se podívejme na tabulkové zobrazení „Data Table“. Vytvoříme tabulku se seznamem všech URL, ke kterým byly požadavky, a počtem těchto požadavků. Stejně jako v případě s Vertikálním sloupem, nejprve vybereme zdroj dat.

Vytváření Dashboardu v Kibana pro monitorování logů
Poté se na obrazovce zobrazí tabulka s jedním sloupcem, který ukazuje celkový počet požadavků za zvolený časový interval.

Vytváření Dashboardu v Kibana pro monitorování logů
Budeme měnit pouze blok „Buckets“. Klikněte na tlačítko „Přidat“ a vyberte „Rozdělit řádky“.

Vytváření Dashboardu v Kibana pro monitorování logů
V poli „Agregace“ vyberte „Terms“. A v zobrazeném poli „Field“ vyberte „url.keyword“.

Vytváření Dashboardu v Kibana pro monitorování logů
Zadáním hodnoty „Url“ do pole „Vlastní popis“ a kliknutím na „Aktualizovat“ získáme požadovanou tabulku s počtem požadavků pro každou z URL za zvolený časový interval.

Vytváření Dashboardu v Kibana pro monitorování logů
V horní části obrazovky znova klikneme na tlačítko „Uložit“ a uvedeme název tabulky, například Urls. Vrátíme se zpět na Dashboard a uvidíme obě vytvořená zobrazení.

Vytváření Dashboardu v Kibana pro monitorování logů

Práce s Dashboardem

Při vytvoření Dashboardu jsme v nastavení objektů zobrazení nastavili pouze základní vizuální parametry. Není smysluplné uvádět v objektech údaje pro filtry, jako jsou „časový rozsah“, „filtrování podle useragentu“, „filtrování podle země požadavku“ atd. Je mnohem pohodlnější zadat požadovaný časový interval nebo stanovit nezbytné filtrování na panelu dotazů, který se nachází nad objekty.

Vytváření Dashboardu v Kibana pro monitorování logů
Filtry přidané na tomto panelu se aplikují na celý Dashboard a všechny objekty zobrazení se přestaví podle aktuálních filtrovaných dat.

Závěr

Kibana je mocný nástroj, který umožňuje vizualizovat jakákoliv data pohodlným způsobem. Snažil jsem se ukázat nastavení dvou základních typů zobrazení. Ale i další typy se nastavují podobným způsobem. A množství nastavení, které jsem nechal „za scénou“, vám umožní velmi flexibilně upravit grafy podle vašich potřeb.

Zdroj: habr.com

Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Koupit spolehlivý hosting pro webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster