Vytvorenie Dashboardu v Kibana na monitorovanie logov

Vytvorenie Dashboardu v Kibana na monitorovanie logov

Ahoj, volám sa Evgenij, som tímový líder B2B divízie v Sitimobile. Jednou z úloh nášho tímu je podpora integrácií pre objednávanie taxíkov od partnerov, a pre zabezpečenie stabilného servisu musíme neustále rozumieť tomu, čo sa deje v našich mikroslužbách. A na to musíme neustále sledovať logy.

V Sitimobile na prácu s logmi používame ELK stack (ElasticSearch, Logstash, Kibana), a objem údajov prichádzajúcich tam je obrovský. Nájdenie problémov, ktoré sa môžu objaviť po nasadení nového kódu, je dosť ťažké v tejto masívnej dani. A na ich prehľadné zobrazenie má Kibana sekciu Dashboard.

Na Habre je pomerne veľa článkov s príkladmi, ako nastaviť ELK stack na získavanie a uchovávanie údajov, ale o vytváraní Dashboardu nie je dostatok aktuálnych materiálov. Preto chcem ukázať, ako v Kibane vytvárať vizuálne zobrazenie údajov na základe prichádzajúcich logov.

Nastavenie

Aby to bolo prehľadnejšie, vytvoril som Docker obraz s ELK a Filebeat. A umiestnil som do kontajnera malý podporné programy pre podnikateľov. program v Go, ktorý pre náš prípad bude generovať testovacie logy. Podrobne popisovať konfiguráciu ELK nebudem, na Habre je o tom dosť napísané.

Klonujeme repozitár s konfiguráciou docker-compose a nastaveniami ELK a spúšťame ho príkazom docker-compose up. Úmyselne nepridávam kľúč -d, aby som videl proces fungovania ELK stacku.

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

Ak je všetko nastavené správne, v logoch uvidíme záznam (možno nie hneď, proces spustenia kontajnera so všetkým stackom 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"}

Na adrese localhost:5061 by sa mala otvoriť Kibana.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Vytvorenie Dashboardu v Kibana na monitorovanie logov
Jednou z vecí, ktoré potrebujeme nastaviť, je vytvorenie indexového vzoru pre Kibanu, s informáciami o tom, aké údaje treba zobrazovať. Na to vykonáme curl požiadavku alebo vykonáme 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 indexového vzoru cez grafické rozhranie
Na nastavenie vyberáme v ľavom menu sekciu Discover a dostávame sa na stránku na vytvorenie indexového vzoru.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Kliknutím na tlačidlo "Create index pattern" sa dostaneme na stránku pre vytvorenie indexu. Do poľa "Index pattern name" zadáme "logstash-*". Ak je všetko správne nastavené, nižšie Kibana zobrazí indexy, ktoré vyhovujú pravidlám.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Na nasledujúcej stránke vyberieme kľúčové pole s časovou pečiatkou, v našom prípade je to @timestamp.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Výsledkom bude stránka s nastaveniami indexu, ale v súčasnosti od nás nie sú potrebné žiadne ďalšie akcie.

Vytvorenie Dashboardu v Kibana na monitorovanie logov

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

Vytvorenie Dashboardu v Kibana na monitorovanie logov

Dashboard

V ľavom menu klikneme na sekciu vytvorenia Dashboard a dostaneme sa na zodpovedajúcu stránku.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Klikneme na „Create new dashboard“ a dostaneme sa na stránku pridávania objektov do Dashboard.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Klikneme na tlačidlo „Create new“ a systém nám navrhne vybrať spôsob zobrazenia údajov. V Kibane ich je veľmi veľa, ale budeme sa zaoberať vytvorením grafického zobrazenia „Vertical Bar“ a tabuľkového „Data Table“. Ostatné typy zobrazenia sa nastavujú podobným spôsobom. 
Vytvorenie Dashboardu v Kibana na monitorovanie logov
Niektoré dostupné objekty majú štítky B a E — to znamená, že formát je experimentálny alebo v beta teste. Postupom času sa formát môže zmeniť alebo úplne zmiznúť z Kibany.

Vertikálny stĺpec

Pre príklad „Vertical Bar“ vytvoríme histogram pomeru úspešných a neúspešných stavov odpovede našej služby. Po skončení nastavení dostaneme nasledujúci graf:

Vytvorenie Dashboardu v Kibana na monitorovanie logov
K úspešným budeme počítať všetky požiadavky so stavom odpovede = 400.

Na vytvorenie grafu „Vertical Bar“ je potrebné vybrať zdroj údajov. Vyberieme Index Pattern, ktorý sme vytvorili skôr.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Predvolene, po výbere zdroja údajov, sa zobrazí jeden súvislý graf. Nastavíme ho.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
V bloku „Buckets“ klikneme na tlačidlo „Add“, vyberieme „X-axis“ a nastavíme os X. Na os X odložíme časové pečiatky príchodu záznamov do logu. V poli „Aggregation“ vyberieme „Date Histogram“, a v poli „Field“ vyberieme „@timestamp“, ktoré označuje časové pole. „Minimum interval“ necháme v stave „Auto“, ktorý sa automaticky prispôsobí nášmu zobrazeniu. 

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Po kliknutí na tlačidlo „Update“ uvidíme graf s počtom požiadaviek každých 30 sekúnd.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Teraz nastavíme stĺpce po osi Y. Momentálne sa zobrazuje celkový počet požiadaviek v zvolených časových intervaloch.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Zmeníme hodnotu „Aggregation“ na „Sum Bucket“, ktorá nám umožní skombinovať údaje o úspešných a neúspešných požiadavkách. V bloku Bucket -> Aggregation vyberáme agregáciu podľa „Filters“ a nastavujeme filtrovanie podľa „statusCode >= 400“. A v poli „Custom label“ uvedieme našu označenie pre lepšie zrozumiteľné zobrazenie v legendách na grafe a v celkovom zozname.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Po kliknutí na tlačidlo „Update“ pod blokom nastavení dostaneme graf s problémovými požiadavkami.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Ak kliknete na kruh vedľa legendy, otvorí sa okno, v ktorom môžete zmeniť farbu stĺpcov.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Teraz pridáme na graf údaje o úspešných požiadavkách. V sekcii „Metrics“ stlačte tlačidlo „Add“ a vyberte „Y-axis“.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
V vytvorenej metrike nastavíme rovnaké parametre ako pre neúspešné požiadavky. Len vo filtri uvedieme „statusCode < 400“.

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

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Stlačením tlačidla „Save“ v hornej časti obrazovky a uvedením názvu uvidíme na Dashboarde prvý graf.

Vytvorenie Dashboardu v Kibana na monitorovanie logov

Tabuľka údajov

Teraz zvážime tabuľkové zobrazenie „Data Table“. Vytvoríme tabuľku so zoznamom všetkých URL, na ktoré boli požiadavky, a počtom týchto požiadaviek. Rovnako ako v príklade s Vertical Bar, najprv vyberieme zdroj dát.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Potom sa na obrazovke zobrazí tabuľka s jedným stĺpcom, ktorý ukazuje celkový počet požiadaviek za zvolený časový interval.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Budeme meniť iba blok „Buckets“. Stlačte tlačidlo „Add“ a vyberte „Split rows“.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
V poli „Aggregation“ vyberte „Terms“. A v objavenej položke „Field“ vyberte „url.keyword“.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Uvedením hodnoty „Url“ do poľa „Custom label“ a stlačením „Update“ získame požadovanú tabuľku s počtom požiadaviek pre každé URL za zvolený časový interval.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
V hornej časti obrazovky znova stlačte tlačidlo „Save“ a uveďte názov tabuľky, napríklad Urls. Vrátime sa späť na Dashboard a uvidíme oba vytvorené výstupy.

Vytvorenie Dashboardu v Kibana na monitorovanie logov

Práca s Dashboardom

Pri vytváraní Dashboardu sme v nastaveniach objektov zobrazenia nastavili iba základné parametre zobrazenia. Nemá zmysel uvádzať v objektoch dáta pre filtre, napríklad „rozsah dát“, „filtrovanie podľa useragent“, „filtrovanie podľa krajiny požiadavky“ atď. oveľa pohodlnejšie je uviesť požadovaný časový úsek alebo nastaviť potrebné filtrovanie na paneli požiadaviek, ktorá sa nachádza nad objektmi.

Vytvorenie Dashboardu v Kibana na monitorovanie logov
Pridané filtre na tomto paneli sa uplatnia na celý Dashboard, a všetky objekty zobrazenia sa prestavajú podľa aktuálnych vyfiltrovaných dát.

Záver

Kibana je mocný nástroj, ktorý umožňuje vizualizovať akékoľvek dáta pohodlným spôsobom. Snažil som sa predviesť nastavenie dvoch základných typov zobrazenia. Ale aj iné typy sa nastavujú podobným spôsobom. A množstvo nastavení, ktoré som nechal „za oponou“, vám umožní veľmi flexibilne prispôsobovať grafy podľa vašich potrieb.

Zdroj: habr.com

Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery 🔥 Kúpte si spoľahlivý hosting pre webové stránky s ochranou proti DDoS, VPS VDS servery | ProHoster