Vytvorenie informačného panela v Kibana na monitorovanie protokolov

Vytvorenie informačného panela v Kibana na monitorovanie protokolov

Dobrý deň, volám sa Evgeniy, som vedúcim B2B tímu v Citymobile. Jednou z úloh nášho tímu je podporovať integrácie pre objednávanie taxíkov od partnerov a na zabezpečenie stabilnej služby musíme vždy rozumieť tomu, čo sa deje v našich mikroslužbách. A na to musíte neustále sledovať protokoly.

V Citymobile používame na prácu s protokolmi ELK stack (ElasticSearch, Logstash, Kibana) a objem tam prijatých dát je enormný. V tejto mase požiadaviek je pomerne ťažké nájsť problémy, ktoré sa môžu objaviť po nasadení nového kódu. A na ich jasnú identifikáciu má Kibana sekciu Dashboard.

Existuje pomerne veľa článkov o Habré s príkladmi, ako nastaviť zásobník ELK na príjem a ukladanie údajov, ale neexistujú žiadne relevantné materiály o vytváraní informačného panela. Preto chcem ukázať, ako vytvoriť vizuálnu reprezentáciu údajov na základe prichádzajúcich protokolov v Kibana.

nastavenie

Aby to bolo jasnejšie, vytvoril som obrázok Docker pomocou ELK a Filebeat. A umiestnil malý do nádoby program v Go, ktorý pre náš príklad vygeneruje testovacie protokoly. Konfiguráciu ELK nebudem podrobne popisovať, o tom je na Habrém popísané dosť.

Klonovanie úložiska s konfiguráciou docker-compose a ELK nastavenia a spustite ho pomocou príkazu docker-compose up. Zámerne nepridávam kľúč. -daby ste videli proces zásobníka ELK.

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

Ak je všetko správne nakonfigurované, v protokoloch sa zobrazí záznam (možno nie okamžite, proces spustenia kontajnera s celým zásobníkom môže trvať niekoľko minút):

{"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 sa mala otvoriť.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Jediná vec, ktorú musíme nakonfigurovať, je vytvoriť vzor indexu pre Kibana s informáciami o tom, aké údaje sa majú zobraziť. Ak to chcete urobiť, spustite požiadavku na curl alebo vykonajte sériu akcií v grafickom 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"}}'

Vytvorenie vzoru indexu cez GUI
Ak chcete konfigurovať, vyberte časť Objaviť v ľavej ponuke a prejdite na stránku vytvorenia vzoru indexu.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Kliknutím na tlačidlo „Vytvoriť vzor indexu“ sa dostaneme na stránku vytvorenia indexu. Do poľa „Názov vzoru indexu“ zadajte „logstash-*“. Ak je všetko správne nakonfigurované, nižšie Kibana zobrazí indexy, ktoré spadajú pod pravidlo.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Na ďalšej stránke vyberte kľúčové pole s časovou pečiatkou, v našom prípade je to tak @timestamp.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
V dôsledku toho sa zobrazí stránka s nastaveniami indexu, ale teraz sa od nás nevyžadujú žiadne ďalšie akcie.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov

Teraz sa môžeme vrátiť do sekcie Discover, kde uvidíme záznamy denníka.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov

Informačný panel

V ľavom menu kliknite na sekciu vytvorenia Dashboardu a prejdite na príslušnú stránku.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Kliknite na „Vytvoriť nový informačný panel“ a dostanete sa na stránku na pridávanie objektov na informačný panel.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Kliknite na tlačidlo „Vytvoriť nový“ a systém vás vyzve na výber typu zobrazenia údajov. V Kibane je ich veľké množstvo, ale my sa pozrieme na vytvorenie grafickej reprezentácie „Vertical Bar“ a tabuľkovej „Data Table“. Ostatné typy prezentácie sú konfigurované podobným spôsobom. 
Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Niektoré dostupné položky sú označené B a E, čo znamená, že formát je experimentálny alebo vo verzii beta. Postupom času sa formát môže zmeniť alebo úplne zmiznúť z Kibana.

Vertikálny pruh

Pre príklad „Vertikálny pruh“ vytvorte histogram pomeru úspešných a neúspešných stavov odpovedí našej služby. Po dokončení nastavení dostaneme nasledujúci graf:

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Ako úspešné budeme klasifikovať všetky požiadavky so stavom odpovede < 400 a ako problematické - >= 400.

Na vytvorenie „vertikálneho pruhového“ grafu musíme vybrať zdroj údajov. Vyberte vzor indexu, ktorý sme vytvorili predtým.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
V predvolenom nastavení sa po výbere zdroja údajov zobrazí jeden súvislý graf. Poďme to nastaviť.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
V bloku „Buckets“ kliknite na tlačidlo „Add“, vyberte „X-asis“ a nakonfigurujte os X. Nakreslite pozdĺž nej časové pečiatky záznamov vstupujúcich do protokolu. V poli „Agregácia“ vyberte „Histogram dátumu“ a v poli „Pole“ vyberte „@časová pečiatka“, čo označuje dočasné pole. Ponechajme „Minimálny interval“ v stave „Auto“ a automaticky sa prispôsobí nášmu displeju. 

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Kliknutím na tlačidlo „Aktualizovať“ sa nám každých 30 sekúnd zobrazí graf s počtom žiadostí.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Teraz nastavíme stĺpce na osi Y. Teraz zobrazíme celkový počet požiadaviek vo zvolenom časovom intervale.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Zmeňme hodnotu „Aggregation“ na „Sum Bucket“, čo nám umožní kombinovať dáta z úspešných a neúspešných požiadaviek. V bloku Bucket -> Agregation vyberte agregáciu podľa “Filters” a nastavte filtrovanie podľa “statusCode >= 400”. A v poli „Vlastný štítok“ uvádzame názov nášho indikátora pre prehľadnejšie zobrazenie v legende na grafe a vo všeobecnom zozname.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Kliknutím na tlačidlo „Aktualizovať“ pod blokom nastavení získame graf s problematickými dopytmi.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Ak kliknete na krúžok vedľa legendy, zobrazí sa okno, v ktorom môžete zmeniť farbu stĺpcov.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Teraz do grafu pridáme údaje o úspešných požiadavkách. V časti „Metriky“ kliknite na tlačidlo „Pridať“ a vyberte „os Y“.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Vo vytvorenej metrike vykonáme rovnaké nastavenia ako pri chybných požiadavkách. Iba vo filtri uvádzame „statusCode < 400“.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Zmenou farby nového stĺpca získame zobrazenie pomeru problematických a úspešných požiadaviek.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Kliknutím na tlačidlo „Uložiť“ v hornej časti obrazovky a zadaním názvu sa zobrazí prvý graf na paneli Dashboard.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov

Tabuľka dát

Teraz sa pozrime na zobrazenie tabuľky „Tabuľka údajov“. Vytvorme si tabuľku so zoznamom všetkých URL, na ktoré boli požiadavky a počtom týchto žiadostí. Rovnako ako v príklade Vertical Bar, najprv vyberieme zdroj údajov.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Potom sa na obrazovke zobrazí tabuľka s jedným stĺpcom, ktorá zobrazuje celkový počet požiadaviek za zvolený časový interval.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Zmeníme len blok "Vedre". Kliknite na tlačidlo „Pridať“ a vyberte „Rozdeliť riadky“.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
V poli „Agregácia“ vyberte „Podmienky“. A v poli „Pole“, ktoré sa zobrazí, vyberte „url.keyword“.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Zadaním hodnoty „Url“ do poľa „Vlastný štítok“ a kliknutím na „Aktualizovať“ dostaneme požadovanú tabuľku s počtom žiadostí pre každú adresu URL za zvolené časové obdobie.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
V hornej časti obrazovky znova kliknite na tlačidlo „Uložiť“ a zadajte názov tabuľky, napríklad adresy URL. Vráťme sa na Dashboard a pozrime si vytvorené obidva zobrazenia.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov

Práca s Dashboardom

Pri vytváraní Dashboardu nastavujeme v nastaveniach objektu zobrazenia len základné parametre zobrazenia. Nemá zmysel špecifikovať údaje pre filtre v objektoch, napríklad „rozsah dátumov“, „filtrovanie podľa používateľského agenta“, „filtrovanie podľa krajiny žiadosti“ atď. Oveľa pohodlnejšie je zadať požadované časové obdobie alebo nastaviť potrebné filtrovanie v paneli dotazov, ktorý sa nachádza nad objektmi.

Vytvorenie informačného panela v Kibana na monitorovanie protokolov
Filtre pridané v tomto paneli sa použijú na celý informačný panel a všetky objekty zobrazenia sa preusporiadajú podľa aktuálnych filtrovaných údajov.

Záver

Kibana je výkonný nástroj, ktorý vám umožňuje pohodlne vizualizovať akékoľvek údaje. Pokúsil som sa ukázať nastavenie dvoch hlavných typov displeja. Ostatné typy sú však konfigurované podobným spôsobom. A množstvo nastavení, ktoré som nechal v zákulisí, vám umožní veľmi flexibilne prispôsobiť grafy tak, aby vyhovovali vašim potrebám.

Zdroj: hab.com

Pridať komentár