Vytvoření řídicího panelu v Kibaně pro sledování protokolů

Vytvoření řídicího panelu v Kibaně pro sledování protokolů

Dobrý den, jmenuji se Evgeniy a jsem vedoucím B2B týmu v Citymobilu. Jedním z úkolů našeho týmu je podporovat integrace pro objednávání taxi od partnerů a pro zajištění stabilní služby musíme vždy rozumět tomu, co se děje v našich mikroslužbách. A k tomu musíte neustále sledovat protokoly.

V Citymobilu pro práci s logy používáme ELK stack (ElasticSearch, Logstash, Kibana) a objem tam přijímaných dat je enormní. V této mase požadavků je poměrně obtížné najít problémy, které se mohou objevit po nasazení nového kódu. A aby je bylo možné jasně identifikovat, má Kibana sekci Dashboard.

Na Habré je poměrně dost článků s příklady, jak nastavit zásobník ELK pro příjem a ukládání dat, ale neexistují žádné relevantní materiály o vytváření řídicího panelu. Proto chci ukázat, jak vytvořit vizuální reprezentaci dat na základě příchozích protokolů v Kibana.

Nastavení

Aby to bylo jasnější, vytvořil jsem obrázek Docker pomocí ELK a Filebeat. A umístěn v nádobě malý program v Go, který pro náš příklad vygeneruje testovací protokoly. Nebudu podrobně popisovat konfiguraci ELK, o tom je na Habrém napsáno dost.

Naklonujte úložiště konfigurace docker-compose a ELK a spusťte jej pomocí příkazu docker-compose up. Záměrně nepřidat klíč -dabyste viděli postup zásobníku ELK.

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

Pokud je vše správně nakonfigurováno, uvidíme záznam v protokolech (možná ne okamžitě, proces spuštění kontejneru s celým zásobníkem 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"}

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

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Jediné, co musíme nakonfigurovat, je vytvořit vzor indexu pro Kibana s informacemi o tom, jaká data se mají zobrazovat. Chcete-li to provést, spusťte požadavek curl nebo proveďte ř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"}}'

Vytváření vzoru indexu pomocí GUI
Chcete-li konfigurovat, vyberte sekci Objevit v levé nabídce a přejděte na stránku vytvoření vzoru indexu.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Kliknutím na tlačítko „Vytvořit vzor indexu“ se dostanete na stránku vytváření indexu. Do pole „Název vzoru indexu“ zadejte „logstash-*“. Pokud je vše správně nakonfigurováno, Kibana níže zobrazí indexy, které spadají pod pravidlo.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Na další stránce vyberte klíčové pole s časovým razítkem, v našem případě tomu tak je @timestamp.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
V důsledku toho se zobrazí stránka nastavení indexu, ale nyní od nás nejsou vyžadovány žádné další akce.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů

Nyní můžeme znovu přejít do sekce Discover, kde uvidíme záznamy protokolu.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů

Hlavní obrazovka

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

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Klikněte na „Vytvořit nový řídicí panel“ a dostanete se na stránku pro přidávání objektů do řídicího panelu.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Klikněte na tlačítko „Vytvořit nový“ a systém vás vyzve k výběru typu zobrazení dat. V Kibaně je jich velké množství, ale my se podíváme na vytvoření grafického znázornění „Vertikální pruh“ a tabulkovou „Tabulku dat“. Ostatní typy prezentace jsou konfigurovány podobným způsobem. 
Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Některé dostupné položky jsou označeny B a E, což znamená, že formát je experimentální nebo ve verzi beta. Časem se může formát změnit nebo z Kibany úplně zmizet.

Vertikální pruh

Pro příklad „Svislý pruh“ vytvořte histogram poměru úspěšných a neúspěšných stavů odpovědí naší služby. Na konci nastavení získáme následující graf:

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Všechny požadavky se stavem odpovědi < 400 klasifikujeme jako úspěšné a jako problematické - >= 400.

Chcete-li vytvořit graf "Svislý pruh", musíme vybrat zdroj dat. Vyberte vzor indexu, který jsme vytvořili dříve.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Ve výchozím nastavení se po výběru zdroje dat zobrazí jeden plný graf. Pojďme to nastavit.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
V bloku „Buckets“ klikněte na tlačítko „Add“, vyberte „X-asis“ a nakonfigurujte osu X. Nakreslete podél ní časová razítka záznamů vstupujících do protokolu. V poli „Agregace“ vyberte „Histogram data“ a v poli „Pole“ vyberte „@časové razítko“, což značí dočasné pole. Necháme „Minimální interval“ ve stavu „Auto“ a automaticky se přizpůsobí našemu zobrazení. 

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Kliknutím na tlačítko „Aktualizovat“ se nám každých 30 sekund zobrazí graf s počtem požadavků.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Nyní nastavíme sloupce na ose Y. Nyní zobrazíme celkový počet požadavků ve zvoleném časovém intervalu.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Změňme hodnotu "Aggregation" na "Sum Bucket", což nám umožní kombinovat data pro úspěšné a neúspěšné požadavky. V bloku Bucket -> Agregation vyberte agregaci podle "Filters" a nastavte filtrování "statusCode >= 400". A v poli "Vlastní štítek" uvádíme náš název indikátoru pro srozumitelnější zobrazení v legendě v grafu a v obecném seznamu.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Kliknutím na tlačítko „Aktualizovat“ pod blokem nastavení získáme graf s problematickými dotazy.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Pokud kliknete na kroužek vedle legendy, zobrazí se okno, ve kterém můžete změnit barvu sloupců.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Nyní do grafu přidáme data o úspěšných požadavcích. V části „Metriky“ klikněte na tlačítko „Přidat“ a vyberte „osa Y“.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Ve vytvořené metrice provedeme stejná nastavení jako u chybných požadavků. Pouze ve filtru uvádíme „statusCode < 400“.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Změnou barvy nového sloupce získáme zobrazení poměru problematických a úspěšných požadavků.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Kliknutím na tlačítko „Uložit“ v horní části obrazovky a zadáním názvu se na hlavním panelu zobrazí první graf.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů

Tabulka dat

Nyní se podívejme na zobrazení tabulky „Tabulka dat“. Vytvořme tabulku se seznamem všech URL, na které byly požadavky a počtem těchto požadavků. Stejně jako v příkladu Vertical Bar, nejprve vybereme zdroj dat.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Poté se na obrazovce zobrazí tabulka s jedním sloupcem, která zobrazuje celkový počet požadavků za zvolený časový interval.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Změníme pouze blok "Buckets". Klikněte na tlačítko „Přidat“ a vyberte „Rozdělit řádky“.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
V poli „Agregace“ vyberte „Podmínky“. A v poli „Pole“, které se zobrazí, vyberte „url.keyword“.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Zadáním hodnoty „Url“ do pole „Vlastní štítek“ a kliknutím na „Aktualizovat“ obdržíme požadovanou tabulku s počtem požadavků pro každou adresu URL za zvolené časové období.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
V horní části obrazovky znovu klikněte na tlačítko „Uložit“ a zadejte název tabulky, například adresy URL. Vraťme se na Dashboard a podívejme se na vytvořená obě zobrazení.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů

Práce s Dashboardem

Při vytváření Dashboardu nastavujeme v nastavení objektu zobrazení pouze základní parametry pohledu. Nemá smysl specifikovat data pro filtry v objektech, například „rozsah dat“, „filtrování podle uživatelského agenta“, „filtrování podle země požadavku“ atd. Mnohem pohodlnější je zadat požadované časové období nebo nastavit potřebné filtrování v panelu dotazů, který je umístěn nad objekty.

Vytvoření řídicího panelu v Kibaně pro sledování protokolů
Filtry přidané do tohoto panelu se použijí na celý řídicí panel a všechny objekty zobrazení se přeuspořádají podle aktuálních filtrovaných dat.

Závěr

Kibana je výkonný nástroj, který vám umožní pohodlným způsobem vizualizovat jakákoli data. Pokusil jsem se ukázat nastavení dvou hlavních typů zobrazení. Ale ostatní typy jsou konfigurovány podobným způsobem. A množství nastavení, které jsem nechal v zákulisí, vám umožní velmi flexibilně přizpůsobit grafy tak, aby vyhovovaly vašim potřebám.

Zdroj: www.habr.com

Přidat komentář