Tere, minu nimi on Evgeniy, olen Citymobili B2B meeskonna juht. Meie meeskonna üks ülesandeid on toetada partneritelt takso tellimise integratsioone ning stabiilse teenuse tagamiseks peame alati aru saama, mis meie mikroteenustes toimub. Ja selleks peate logisid pidevalt jälgima.
Citymobilis kasutame logidega töötamiseks ELK pinu (ElasticSearch, Logstash, Kibana) ja sinna laekuvate andmete maht on tohutu. Selles taotluste massis on üsna raske leida probleeme, mis võivad ilmneda pärast uue koodi juurutamist. Nende selgeks tuvastamiseks on Kibanal armatuurlaua jaotis.
Habré kohta on üsna palju artikleid koos näidetega ELK virna seadistamise kohta andmete vastuvõtmiseks ja salvestamiseks, kuid armatuurlaua loomise kohta puuduvad asjakohased materjalid. Seetõttu tahan näidata, kuidas luua Kibanas sissetulevate logide põhjal andmete visuaalne esitus.
reguleerimine
Et asi selgem oleks, lõin ELK ja Filebeatiga Dockeri pildi. Ja asetas väikese konteinerisse
Hoidla kloonimine koos konfiguratsiooniga docker-compose
ja ELK seaded ning käivitage see käsuga docker-compose up
. Ma ei lisa võtit meelega. -d
näha ELK virna protsessi.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Kui kõik on õigesti konfigureeritud, näeme logides kirjet (võib-olla mitte kohe, kogu virnaga konteineri käivitamine 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"}
Aadressi järgi localhost:5061
Kibana peaks avanema.
Ainus asi, mida peame konfigureerima, on luua Kibana jaoks indeksimuster, mis sisaldab teavet selle kohta, milliseid andmeid tuleks kuvada. Selleks käivitame curl taotluse või teeme graafilises liideses mitmeid toiminguid.
$ 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"}}'
Indeksi mustri loomine GUI kaudu
Seadistamiseks valige vasakpoolsest menüüst jaotis Discover ja minge indeksi mustri loomise lehele.
Klõpsates nupul "Loo indeksi muster", suunatakse meid indeksi loomise lehele. Sisestage väljale "Indeksi mustri nimi" "logstash-*". Kui kõik on õigesti seadistatud, kuvatakse Kibana all reegli alla kuuluvad indeksid.
Järgmisel lehel valige ajatempliga võtmeväli, meie puhul see nii on @timestamp
.
Selle tulemusel kuvatakse registri sätete leht, kuid meilt pole nüüd vaja täiendavaid toiminguid teha.
Nüüd saame minna tagasi jaotisse Discover, kus näeme logikirjeid.
armatuurlaud
Klõpsake vasakpoolses menüüs armatuurlaua loomise jaotisel ja minge vastavale lehele.
Klõpsake "Loo uus armatuurlaud" ja minge lehele, kus saate armatuurlauale objekte lisada.
Klõpsake nuppu "Loo uus" ja süsteem palub teil valida andmete kuvamise tüübi. Kibanas on neid palju, kuid me vaatame graafilise esituse "Vertikaalne riba" ja tabeli "Andmetabel" loomist. Muud tüüpi esitlused on konfigureeritud sarnaselt.
Mõned saadaolevad üksused on tähistatud tähistega B ja E, mis näitavad, et vorming on katseline või beetaversioonis. Aja jooksul võib formaat muutuda või Kibanast täielikult kaduda.
Vertikaalne riba
„Vertikaalse riba” näite jaoks loome histogrammi meie teenuse edukate ja ebaõnnestunud vastuste olekute suhte kohta. Pärast seadistuste lõpetamist saame järgmise graafiku:
Klassifitseerime edukaks kõik päringud, mille vastuse olek on < 400, ja probleemseteks - >= 400.
Vertikaalse ribadiagrammi loomiseks peame valima andmeallika. Valige varem loodud indeksi muster.
Vaikimisi kuvatakse pärast andmeallika valimist üks pidev graafik. Paneme selle paika.
Plokis "Ämbrid" klõpsake nuppu "Lisa", valige "X-asis" ja konfigureerige X-telg. Joonistame sellele logisse sisenevate kirjete ajatemplid. Valige väljal "Koond" "Kuupäeva histogramm" ja "Väljas" valige "@timestamp", mis näitab ajutist välja. Jätame "Minimaalne intervall" olekusse "Automaatne" ja see kohandub automaatselt meie kuvaga.
Klõpsates nupul “Uuenda”, näeme iga 30 sekundi järel graafikut päringute arvuga.
Nüüd seadistame veerud Y-teljel Nüüd kuvame taotluste koguarvu valitud ajavahemikus.
Muutkem "Agregation" väärtuseks "Sum Bucket", mis võimaldab meil ühendada edukate ja ebaõnnestunud päringute andmeid. Plokis Bucket -> Aggregation valige liitmine “Filtrite” järgi ja määrake filtreerimine “statusCode >= 400” järgi. Ja väljale „Kohandatud silt” märgime oma indikaatori nime, et kuvada diagrammi legendis ja üldises loendis selgemalt.
Vajutades seadete ploki all nuppu "Uuenda", saame graafiku probleemsete päringutega.
Kui klõpsate legendi kõrval oleval ringil, avaneb aken, kus saate muuta veergude värvi.
Nüüd lisame diagrammi andmed edukate päringute kohta. Jaotises "Mõõdikud" klõpsake nuppu "Lisa" ja valige "Y-telg".
Loodud mõõdikus teeme samad seadistused, mis vigaste päringute puhul. Ainult filtris märgime “statusCode < 400”.
Uue veeru värvi muutmisega saame kuva probleemsete ja edukate päringute suhte kohta.
Kui klõpsate ekraani ülaosas nuppu "Salvesta" ja määrate nime, näeme armatuurlaual esimest graafikut.
andmed tabelis
Nüüd vaatame tabelivaadet "Andmetabel". Loome tabeli kõigi URL-ide loendiga, millele päringuid tehti, ja nende päringute arvu. Nagu vertikaalse riba näites, valime esmalt andmeallika.
Pärast seda kuvatakse ekraanile ühe veeruga tabel, mis näitab valitud ajaintervalli päringute koguarvu.
Muudame ainult plokki "Ämbrid". Klõpsake nuppu "Lisa" ja valige "Jaga read".
Valige väljal „Koond” „Tingimused”. Ja kuvataval väljal „Välja” valige „url.keyword”.
Määrates väljale "Kohandatud silt" väärtuse "Url" ja klõpsates nuppu "Uuenda", saame soovitud tabeli iga URL-i päringute arvuga valitud ajavahemikul.
Klõpsake ekraani ülaosas uuesti nuppu "Salvesta" ja määrake tabeli nimi, näiteks URL-id. Läheme tagasi armatuurlauale ja vaatame mõlemat loodud vaadet.
Armatuurlauaga töötamine
Armatuurlaua loomisel määrame kuvaobjekti seadetes ainult põhivaate parameetrid. Pole mõtet määrata andmeid objektide filtrite jaoks, näiteks "kuupäevavahemik", "filtreerimine kasutajaagendi järgi", "filtreerimine päringu riigi järgi" jne. Palju mugavam on määrata soovitud ajaperiood või määrata vajalik filtreerimine päringupaneelil, mis asub objektide kohal.
Sellele paneelile lisatud filtrid rakendatakse kogu armatuurlauale ja kõik kuvatavad objektid järjestatakse ümber vastavalt praegustele filtreeritud andmetele.
Järeldus
Kibana on võimas tööriist, mis võimaldab teil mis tahes andmeid mugavalt visualiseerida. Proovisin näidata kahte peamist tüüpi kuvari seadistust. Kuid muud tüübid on konfigureeritud sarnaselt. Ja seadete rohkus, mille ma kulisside taha jätsin, võimaldab teil graafikuid väga paindlikult oma vajadustele vastavaks kohandada.
Allikas: www.habr.com