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
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ľúč. -d
aby 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ť.
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.
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.
Na ďalšej stránke vyberte kľúčové pole s časovou pečiatkou, v našom prípade je to tak @timestamp
.
V dôsledku toho sa zobrazí stránka s nastaveniami indexu, ale teraz sa od nás nevyžadujú žiadne ďalšie akcie.
Teraz sa môžeme vrátiť do sekcie Discover, kde uvidíme záznamy denníka.
Informačný panel
V ľavom menu kliknite na sekciu vytvorenia Dashboardu a prejdite na príslušnú stránku.
Kliknite na „Vytvoriť nový informačný panel“ a dostanete sa na stránku na pridávanie objektov na informačný panel.
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.
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:
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.
V predvolenom nastavení sa po výbere zdroja údajov zobrazí jeden súvislý graf. Poďme to nastaviť.
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.
Kliknutím na tlačidlo „Aktualizovať“ sa nám každých 30 sekúnd zobrazí graf s počtom žiadostí.
Teraz nastavíme stĺpce na osi Y. Teraz zobrazíme celkový počet požiadaviek vo zvolenom časovom intervale.
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.
Kliknutím na tlačidlo „Aktualizovať“ pod blokom nastavení získame graf s problematickými dopytmi.
Ak kliknete na krúžok vedľa legendy, zobrazí sa okno, v ktorom môžete zmeniť farbu stĺpcov.
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“.
Vo vytvorenej metrike vykonáme rovnaké nastavenia ako pri chybných požiadavkách. Iba vo filtri uvádzame „statusCode < 400“.
Zmenou farby nového stĺpca získame zobrazenie pomeru problematických a úspešných požiadaviek.
Kliknutím na tlačidlo „Uložiť“ v hornej časti obrazovky a zadaním názvu sa zobrazí prvý graf na paneli Dashboard.
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.
Potom sa na obrazovke zobrazí tabuľka s jedným stĺpcom, ktorá zobrazuje celkový počet požiadaviek za zvolený časový interval.
Zmeníme len blok "Vedre". Kliknite na tlačidlo „Pridať“ a vyberte „Rozdeliť riadky“.
V poli „Agregácia“ vyberte „Podmienky“. A v poli „Pole“, ktoré sa zobrazí, vyberte „url.keyword“.
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.
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.
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.
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