Kibana duomenų vizualizacija

Kas ta Kibana ir kodėl ji tapo tokia populiari

Jei kada nors bandėte susidoroti su milžiniškais duomenų kiekiais ir bandėte juos kaip nors prasmingai pavaizduoti, tikriausiai suprasite, kodėl Kibana tapo vienu iš populiariausių duomenų vizualizacijos įrankių. Ši platforma, kuri yra neatskiriama Elastic Stack dalimi (anksčiau žinoma kaip ELK Stack), leidžia ne tik matyti duomenis, bet ir juos suprasti.

Kibana atsirado kaip atsakas į labai konkrečią problemą – kaip efektyviai dirbti su Elasticsearch duomenimis. Elasticsearch puikiai tvarko duomenų saugojimą ir paiešką, bet žiūrėti į JSON atsakymus terminale nėra nei patogu, nei produktyvu. Čia ir įsiterpia Kibana, paversdama neapdorotus duomenis į interaktyvias diagramas, grafikus ir informacines skydus.

Kas įdomiausia – Kibana nėra tik dar vienas grafų braižymo įrankis. Ji sukurta specialiai darbui su laiko eilučių duomenimis, logais, metrikomis ir kitais dažniausiai naudojamais duomenų tipais IT infrastruktūroje. Todėl ji taip gerai tinka DevOps komandoms, saugumo analitikams ir visiems, kas turi analizuoti sisteminę informaciją realiuoju laiku.

Pirmieji žingsniai su Kibana

Pradėti naudoti Kibana gali atrodyti bauginantis uždavinys, ypač jei niekada nesate dirbę su Elasticsearch. Tačiau iš tikrųjų pradžia nėra tokia sudėtinga, kaip gali pasirodyti.

Pirmiausia jums reikės veikiančios Elasticsearch instancijos. Kibana be jos – kaip automobilis be variklio. Galite naudoti Elastic Cloud, kuris viską suvaldys už jus, arba įsidiegti viską lokaliai. Jei tik mokaisi, rekomenduoju pradėti nuo Docker konteinerių – tai greičiausias būdas viską paleisti ir išbandyti.

Kai Kibana jau veikia (paprastai adresu localhost:5000), pirmasis dalykas, kurį pamatysite – tai Home puslapis su daugybe galimybių. Nepulkite iš karto kurti sudėtingų vizualizacijų. Vietoj to, pirmiausia sukurkite Index Pattern – tai būdas pasakyti Kibana, kokius duomenis norite analizuoti. Pavyzdžiui, jei turite logus su indeksu „logs-2024-*”, sukurkite atitinkamą pattern’ą.

Discover skyrius yra jūsų geriausias draugas pradžioje. Čia galite tiesiog naršyti duomenis, filtruoti juos, ieškoti konkrečių įrašų. Tai tarsi Google paieška jūsų duomenims. Praleiskite čia laiko, supraskite, kokios struktūros jūsų duomenys, kokie laukai egzistuoja, kokios reikšmės pasitaiko.

Vizualizacijų tipai ir kada juos naudoti

Kibana siūlo daugybę vizualizacijų tipų, ir pasirinkti tinkamą kartais gali būti sudėtinga. Štai keletas praktinių patarimų, kada naudoti kiekvieną tipą.

Line charts puikiai tinka laiko eilučių duomenims. Jei norite matyti, kaip keitėsi serverio apkrova per paskutinę savaitę arba kaip augo klaidų skaičius – tai jūsų pasirinkimas. Kibana automatiškai sugrupuos duomenis pagal laiko intervalus, o jūs galite pridėti kelias linijas, kad palygintumėte skirtingas metrikos.

Bar charts naudokite, kai reikia palyginti kategorijas. Pavyzdžiui, kokių HTTP statuso kodų gaunate daugiausiai, arba kurie mikroservisai generuoja daugiausiai logų. Horizontalios juostos geriau tinka, kai turite daug kategorijų su ilgais pavadinimais.

Pie charts – kontroversiškas pasirinkimas duomenų vizualizacijos bendruomenėje, bet kartais jie tikrai praverčia. Naudokite juos, kai turite 3-5 kategorijas ir norite parodyti proporcijas. Daugiau nei 7 skiltys? Geriau pasirinkite bar chart.

Data tables atrodo nuobodžiai, bet būna neįtikėtinai naudingi. Kai jums reikia tikslių skaičių, ne tik bendro vaizdo, lentelė yra geriausias pasirinkimas. Ypač naudinga, kai kuriate ataskaitas vadovybei.

Heat maps puikiai rodo intensyvumą dviejų dimensijų kontekste. Pavyzdžiui, kokiomis savaitės dienomis ir valandomis jūsų sistema labiausiai apkrauta. Spalvų gradientas leidžia akimirksniu pamatyti šablonus, kurie lentelėje būtų neįžvelgiami.

Dashboardų kūrimas: nuo chaoso iki aiškumo

Sukurti gerą dashboard’ą – tai menas. Galite sulipdyti dešimt grafikų į vieną ekraną ir vadinti tai dashboard’u, bet ar tai bus naudinga? Greičiausiai ne.

Geras dashboard’as turi pasakoti istoriją. Pradėkite nuo klausimo: kam šis dashboard’as skirtas ir kokius sprendimus jis turėtų padėti priimti? DevOps inžinieriui, kuris stebi sistemos sveikatą, reikės visai kitokio dashboard’o nei verslo analitikui, kuris skaičiuoja konversijas.

Praktinis patarimas: naudokite hierarchinę struktūrą. Viršuje dėkite svarbiausias metrikos – tas, kurios iš karto turėtų atkreipti dėmesį, jei kažkas ne taip. Tai gali būti dideli skaičiai (metric visualizations) arba būsenos indikatoriai. Žemiau dėkite detalesnius grafikus, kurie padeda suprasti kontekstą.

Spalvų naudojimas – kritiškai svarbus. Raudona turėtų reikšti problemą, žalia – kad viskas gerai, geltona – įspėjimą. Nekurkite vaivorykštės – per daug spalvų tik atitrauks dėmesį nuo svarbios informacijos.

Filtrai ir laiko intervalų pasirinkimas turi būti lengvai pasiekiami. Kibana leidžia pridėti filtrus tiesiog dashboard’o viršuje, ir jie veiks visoms vizualizacijoms vienu metu. Tai neįtikėtinai patogu, kai reikia greitai perjungti tarp skirtingų serverių, aplinkų ar kitų dimensijų.

Lucene užklausų sintaksė: jūsų nauja super galia

Jei norite išnaudoti Kibana pilną potencialą, turite bent minimaliai suprasti Lucene užklausų sintaksę. Taip, galite naudoti paprastą teksto paiešką, bet tikroji galia slypi sudėtingesnėse užklausose.

Pagrindai paprasti. Norite rasti visus logus, kuriuose yra žodis „error”? Tiesiog įrašykite error. Norite rasti tikslią frazę? Naudokite kabutes: "connection timeout". Tai veikia intuityviai.

Bet štai kur tampa įdomu. Galite ieškoti konkrečiuose laukuose: status:500 ras visus įrašus, kur status laukas lygus 500. Galite naudoti wildcard’us: user.name:john* ras John, Johnny, Johnson ir t.t.

Loginiai operatoriai leidžia kurti sudėtingas užklausas. status:500 AND service:api ras tik tuos 500 klaidas, kurios atėjo iš API serviso. level:(error OR critical) ras abu severity lygius. NOT status:200 parodys viską, išskyrus sėkmingus atsakymus.

Range užklausos labai naudingos skaičiams ir datoms: response_time:>1000 ras visus atsakymus, kurie užtruko ilgiau nei sekundė. timestamp:[now-1h TO now] – paskutinė valanda.

Praktinis patarimas: išsaugokite dažnai naudojamas užklausas. Kibana leidžia išsaugoti ne tik vizualizacijas, bet ir pačias paieškas. Tai sutaupo daug laiko, kai kasdien ieškote tų pačių dalykų.

Lens: vizualizacijos be galvos skausmo

Lens – tai gana naujas Kibana funkcionalumas, kuris iš esmės pakeitė žaidimo taisykles. Jei tradicinis vizualizacijų kūrimas kartais atrodė kaip kovoti su sąsaja, Lens paverčia tai intuityviu procesu.

Pagrindinė Lens idėja – drag and drop. Jūs tiesiog tempiате laukus iš kairės pusės į centrą, ir Kibana automatiškai pasiūlo tinkamiausią vizualizacijos tipą. Norite matyti užklausų skaičių per laiką? Nutempkite timestamp lauką į X ašį ir count metriką į Y ašį. Kibana automatiškai sukurs line chart’ą.

Kas dar geriau – Lens supranta jūsų duomenų tipus. Jei tempiate IP adresų lauką, ji pasiūlys geografinę vizualizaciją. Jei tempiate tekstinį lauką su keliais unikaliais reikšmėmis, pasiūlys bar chart’ą arba pie chart’ą.

Lens taip pat leidžia greitai eksperimentuoti. Galite vienu paspaudimu pakeisti vizualizacijos tipą ir pamatyti, kaip tie patys duomenys atrodo skirtingais būdais. Kartais tai padeda atrasti įžvalgų, kurių kitaip nebūtumėte pastebėję.

Tačiau Lens nėra visagalis. Sudėtingesnėms vizualizacijoms kartais vis tiek reikia naudoti tradicinius metodus. Bet 80% atvejų Lens bus greičiausias ir paprasčiausias būdas gauti tai, ko jums reikia.

Canvas: kai reikia daugiau nei standartinio dashboard’o

Canvas – tai Kibana funkcija, apie kurią daugelis žmonių net nežino, bet ji gali būti neįtikėtinai galinga tinkamose rankose. Jei įprasti dashboard’ai yra kaip Excel lentelės, tai Canvas yra kaip PowerPoint prezentacija – laisva forma, pilna kūrybinė laisvė.

Canvas leidžia kurti pixel-perfect prezentacijas ir ataskaitas. Galite tiksliai pozicionuoti elementus, naudoti custom spalvas, šriftus, fonus, net įterpti nuotraukas ir logotipus. Tai puikiai tinka, kai reikia sukurti kažką, ką rodysit vadovybei ar klientams.

Bet Canvas nėra tik gražus fasadas. Po gražia išvaizda slypi ta pati Elasticsearch duomenų galia. Galite naudoti Elasticsearch SQL, Lucene užklausas, net custom funkcijas. Tai reiškia, kad jūsų graži prezentacija bus visada atnaujinta su naujausiais duomenimis.

Praktinis naudojimo atvejis: sukurkite savaitinę ataskaitos šabloną. Įdėkite įmonės logotipą, gražų foną, aiškią struktūrą su sekcijomis. Tada pridėkite vizualizacijas, kurios automatiškai atsinaujins. Kiekvieną pirmadienį tiesiog atsidarykite Canvas workpad’ą, eksportuokite į PDF ir išsiųskite stakeholder’iams.

Canvas taip pat puikiai tinka NOC (Network Operations Center) ekranams. Galite sukurti pilno ekrano vaizdą su didelėmis, lengvai skaitomomis metrikomis, kurios bus matomos iš toli. Pridėkite auto-refresh, ir turite profesionaliai atrodantį monitoring ekraną.

Kai vizualizacijos tampa strategija

Duomenų vizualizacija nėra tik grafikų braižymas. Tai būdas paversti neapdorotus duomenis į įžvalgas, įžvalgas į sprendimus, o sprendimus į veiksmus. Kibana čia veikia kaip tiltas tarp jūsų duomenų ir jūsų supratimo.

Svarbu suprasti, kad tobulas dashboard’as niekada nėra baigtas. Jūsų poreikiai keičiasi, sistema evoliucionuoja, nauji klausimai iškyla. Geras požiūris – reguliariai peržiūrėti savo vizualizacijas ir klausti: ar jos vis dar atsaką į teisingus klausimus? Ar yra naujų metrikų, kurias turėtume stebėti?

Nebijokit eksperimentuoti. Kibana turi sandbox režimą – galite kurti ir testuoti vizualizacijas nerizikuodami sugadinti veikiančių dashboard’ų. Išbandykite skirtingus vizualizacijų tipus, skirtingas agregacijas, skirtingus laiko intervalus. Kartais netikėčiausias grafikas atskleidžia įdomiausias įžvalgas.

Ir paskutinis patarimas – dokumentuokite savo dashboard’us. Pridėkite markdown paneles su paaiškinimais, ką rodo kiekviena metrika, kodėl ji svarbi, kokių veiksmų reikia imtis, kai ji nukrypsta nuo normos. Ateityje, kai kitas žmogus žiūrės į jūsų dashboard’ą (arba jūs patys po trijų mėnesių), jis bus dėkingas už šiuos paaiškinimus.

Daugiau

Python property dekoratorius: getteriai ir setteriai