
Tere, minu nimi on Evgeni, olen SitiMobili B2B suuna tiimijuht. Meie meeskonna ĂŒheks ĂŒlesandeks on toetada partnerite takso tellimise integraatioone ning teenuse stabiilsuse tagamiseks peame alati teadma, mis meie mikroteenustes toimub. SeetĂ”ttu peame pidevalt jĂ€lgima logisid.
SitiMobilis kasutame logide töötlemiseks ELK-stekki (ElasticSearch, Logstash, Kibana) ja andmevoog, mis sinna tuleb, on tohutu. Sel hulgal pĂ€ringutes probleemide leidmine, mis vĂ”ivad ilmuda pĂ€rast uue koodi juurutamist, on ĂŒsna keeruline. SeetĂ”ttu on Kibanas olemas Dashboardi sektsioon, mis aitab neid probleeme visualiseerida.
Habr on palju artikleid, kus on nÀidatud, kuidas seadistada ELK-stekki andmete saamiseks ja hoidmiseks, kuid Dashboardi loomise kohta pole asjakohaseid materjale. SeetÔttu soovin nÀidata, kuidas Kibanas luua andmete visuaalset esitlemist saabuvate logide pÔhjal.
Seadistamine
Kuna see oleks visuaalsem, lĂ”in ELK ja Filebeati jaoks Docker-pildi. Ja panin konteinerisse vĂ€ikese Go-s kirjutatud rakenduse, mis meie nĂ€ite jaoks genereerib testlogisid. ELK seadistamise ĂŒksikasju ma ei kirjelda, Habril on piisavalt selle kohta kirjutatud.
Kloonime konfiguratsiooni version: '1' services: simplesample-sonar: image: sonarqube:lts ports: - 9001:9000 - 9092:9092 network_mode: bridge ja ELK seadistuste reposti ning kÀivitame selle kÀsuga docker-compose up. Tahtlikult ei lisa ma vÔtit -d, et nÀha ELK-steki tööprotsessi.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Kui kÔik on Ôigesti seadistatud, siis logides nÀeme kirjet (vÔib-olla mitte kohe, konteineri kÀivitamise protsess kogu steki jaoks vÔib vÔtta mitu minutit):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Aadressil localhost:5061 peaks avama Kibana.


Ainus asi, mida peame seadistama, on luua Kibana jaoks indeksimuster, mis sisaldab teavet selle kohta, milliseid andmeid tuleb kuvada. Selleks teeme curl-pÀringu vÔi teeme rida toiminguid graafilises liideses.
$ 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"}}'
Indeksimustri loomine graafilise liidese kaudu
Seadistamiseks valime vasakpoolses menĂŒĂŒs jaotise Discover ja jĂ”uame indeksimustri loomise lehele.

KlĂ”psates nuppu âLoo indeksimusterâ, jĂ”uame indeksi loomise lehele. VĂ€lja âIndeksimustri nimiâ kirjutame âlogstash-*â. Kui kĂ”ik on Ă”igesti seadistatud, nĂ€itab Kibana allpool sobivaid indekseid.

JÀrgmisel lehel valime ajatempli vÔtme, meie puhul on see @timestamp.

Tulemusena ilmub seadistuste indeksileht, kuid praegu ei ole meil vaja tÀiendavaid toiminguid.

NĂŒĂŒd saame taas minna jaossa Discover, kus nĂ€eme logikirjeid.

Armatuurlaud
Vasakul menĂŒĂŒs klĂ”psame armatuurlauda loomise jaotisel ja jĂ”uame vastavale lehele.

KlĂ”psame nuppu âLoo uus armatuurlaudâ ja jĂ”uame objektide lisamise lehele armatuurlauda.

KlĂ”psame nuppu âLoo uusâ, ja sĂŒsteem pakub valida andmete kuvamise viisi. Kibanas on neid palju, aga vaatame graafilise vaate âVertikaalne diagrammâ ja tabeli âAndmeedastustâ loomist. ĂlejÀÀnud kuvamisviise saab seadistada sarnaselt.Â

MÔned saadaval olevad objektid on tÀhistatud B ja E - see tÀhendab, et formaat on katse- vÔi beetaversioonis. Aja jooksul vÔib formaat muutuda vÔi tÀielikult kaduda Kibana-st.
Vertikaalne diagramm
NĂ€iteks loome âVertikaalse diagrammiâ histogrammi, mis nĂ€itab meie teenuse eduka ja ebaĂ”nnestunud vastuse staatuste suhet. Seadistuste lĂ”puks saame jĂ€rgmise graafiku:

Edusammude hulka loeme kÔik pÀringud, mille vastuse staatus on = 400.
âVertikaalse diagrammiâ loomiseks peame valima andmeallika. Valime Indeksi mustri, mille loome varem.

Vaikimisi ilmub andmeallika valimisel ĂŒks pidev graafik. Seadistame selle.

Blokis âBucketsâ klĂ”psame nuppu âLisaâ, valime âX-asisâ ja seadistame X-telje. Asetame sellele logikirjete ajamĂ€rgid. âAgregatsiooniâ vĂ€ljas valime âKuupĂ€eva histogrammiâ ja âVĂ€ljaâ valime â@timestampâ, mis nĂ€itab ajavĂ€lja. âMinimaalne intervallâ jĂ€tame olekusse âAutomaatneâ, ning see kohandub automaatselt meie kuvamise jĂ€rgi.Â

KlĂ”psates nuppu âUuendaâ, nĂ€eme graafikut, mis nĂ€itab pĂ€ringute arvu iga 30 sekundi jĂ€rel.

NĂŒĂŒd seadistame Y-telje veerud. Praegu kuvatakse meil valitud ajavahemikus ĂŒldine pĂ€ringute arv.

Muudame âAgregatsiooniâ vÀÀrtuse âSum Bucketâ, mis vĂ”imaldab meil ĂŒhendada edukaid ja ebaĂ”nnestunud pĂ€ringute andmeid. Blokis Buckets -> Agregatsioon valime agregatsiooni âFiltriteâ jĂ€rgi ja mÀÀrame filtreerimise âstatusCode >= 400â jĂ€rgi. Ja vĂ€ljale âKohandatud siltâ mĂ€rgime meie indikaatori nime, et see oleks graafiku legendis ja ĂŒldnimekirjas arusaadavam.

KlĂ”psates nuppu âUuendaâ seadistuste ploki all, saame graafiku probleemsete pĂ€ringute arvust.

Kui klÔpsate legenda lÀhedal olevale ringile, kuvatakse aken, kus saate muuta veergude vÀrvi.

NĂŒĂŒd lisame diagrammile andmed edukaid pĂ€ringute kohta. Jaotises "Metrics" klĂ”psame nupule "Add" ja valime "Y-axis".

Loo mÔÔtmisel teeme sarnased seaded nagu vea pÀringute puhul. Ainult filtris mÀrgime "statusCode < 400".

Uue veeru vÀrvi muutes saame kuvada probleemsete ja eduka pÀringute suhet.

KlĂ”psates ekraani ĂŒlaosas nupule "Save" ja sisestades nime, nĂ€eme esimest diagrammi Dashboardil.

Data Table
NĂŒĂŒd vaatame "Data Table" tabelivaatet. Loome tabeli, kus on loetletud kĂ”ik URL-id, millele on pĂ€ringud tehtud, ja nende pĂ€ringute arv. Nagu vertikaalse baari nĂ€ites, valime kĂ”igepealt andmeallika.

PĂ€rast seda kuvatakse ekraanil tabel, millel on ĂŒks veerg, mis nĂ€itab valitud ajavahemiku jooksul tehtud pĂ€ringute koguarvu.

Muudame ainult "Buckets" plokki. KlÔpsame nupule "Add" ja valime "Split rows".

VÀljas "Aggregation" valime "Terms". Ja avanemas vÀlja "Field" valime "url.keyword".

Sisestades vÀljal "Custom label" vÀÀrtuse "Url" ja klÔpsates "Update", saame soovitud tabeli, kus on pÀringute arv iga URL-i kohta valitud ajavahemiku jooksul.

Ekraani ĂŒlaosas klĂ”psame taas nupule "Save" ja anname tabelile nime, nĂ€iteks Urls. Naaseme tagasi Dashboardile ja nĂ€eme kahte loodud kuvandit.

Töötamine Dashboardiga
Dashboardi loomisel mÀÀrasime objekti kuvade seadetes ainult peamised vÀlimuse parameetrid. Pole mÔtet objektides mÀÀrata andmeid filtrite jaoks, nÀiteks "kuupÀevavahemik", "useragent'i filtreerimine", "pÀringu riigi filtreerimine" jne. Oluliselt mugavam on mÀÀrata soovitud ajavahemik vÔi seada vajalik filtreerimine pÀringu paneelis, mis asub objektide kohal.
![]()
Sellel paneelil lisatud filtrid rakenduvad kogu Dashboardile ja kÔik kuvandite objektid kohandatakse vastavalt kehtivatele filtreeritud andmetele.
KokkuvÔte
Kibana on vĂ”imas tööriist, mis vĂ”imaldab visualiseerida mis tahes andmeid mugaval viisil. Olen pĂŒĂŒdnud nĂ€idata kahe peamise kuvandi seadistust. Kuid ka teisi kuvandeid saab seadistada sarnaselt. Ja hulk seadeid, mille ma "kaadrilt vĂ€lja" jĂ€tsin, vĂ”imaldavad teil graafikud vĂ€ga paindlikult enda vajadustele kohandada.
Allikas: habr.com
