Krijimi i Dashboard-it në Kibana për monitorimin e logjeve

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve

Përshëndetje, emri im është Evgeni, unë jam lideri i ekipit për drejtimin B2B në Sitimobil. Një nga detyrat e ekipit tonë është të mbështesim integrimet për porositë e taksive nga partnerët, dhe për të siguruar një shërbim të qëndrueshëm, gjithmonë duhet të kuptojmë se çfarë ndodh në mikroshërbimet tona. Prandaj, duhet të ndjekim vazhdimisht logjet.

Në Sitimobil, për punën me logjet ne përdorim ELK-stack (ElasticSearch, Logstash, Kibana), dhe sasia e të dhënave që arrin atje është masive. Të gjejmë probleme në këtë masë kërkesash që mund të shfaqen pas implementimit të kodit të ri është mjaft e vështirë. Dhe për identifikimin vizual të tyre, në Kibana ka seksionin Dashboard.

Në Habr ka shumë artikuj me shembuj se si të konfigurohet ELK-stack për marrjen dhe ruajtjen e të dhënave, por nuk ka materiale të aktualizuara për krijimin e Dashboard-it. Prandaj, dua të tregoj se si të krijojmë një paraqitje vizuale të të dhënave në Kibana bazuar në logjet që vijnë.

Konfigurimi

Për ta bërë më të dukshme, krijova një imazh Docker me ELK dhe Filebeat. Dhe vendosa në konteiner një të vogël programin në Go, e cila për shembullin ton do të gjenerojë logjet testuese. Nuk do të përshkruaj në detaje konfigurimin e ELK, sepse është shkruar mjaft për këtë në Habr.

Klonojmë depozitën me konfigurimin docker-compose dhe cilësimet e ELK, dhe e nisim atë me komandën docker-compose up. Qëllimisht nuk po shtoj çelësin -d, për të parë procesin e funksionimit të ELK-stack.

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

Nëse gjithçka është konfiguruar në mënyrë korrekte, do të shohim një regjistrim në log (ndoshta jo menjëherë, procesi i nisjes së kontejnerit me të gjithë stekun mund të marrë disa minuta):

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

Në adresën localhost:5061 duhet të hapet Kibana.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
E vetmja gjë që na duhen të konfigurojmë është të krijojmë një Index Pattern për Kibana me informacione se cilat të dhëna duhet të shfaqen. Për këtë, do të ekzekutojmë një kërkesë curl ose do të kryejmë një sërë veprimesh në ndërfaqen grafike.

$ 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"}}'

Krijimi i Index Pattern përmes ndërfaqes grafike
Për konfigurimin zgjedhim në menunë e majtë seksionin Discover, dhe hyjmë në faqen e krijimit të Index pattern.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Duke kliku mbi butonin «Krijo model indeksi», ne shkojmë në faqen e krijimit të indeksit. Në fushën «Emri i modelit të indeksi», shkruajmë «logstash-*». Nëse gjithçka është e vendosur siç duhet, poshtë Kibana do të tregojë indeksat që i përgjigjen rregullit.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Në faqen tjetër, zgjedhim fushën kyçe me vulën e kohës, në rastin tonë kjo është @timestamp.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Si rezultat, do të shfaqet faqja e konfigurimit të indeksit, por tani nuk nevojiten veprime të tjera nga ana jonë.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve

Tani mund të kthehemi përsëri në seksionin Discover, ku do të shohim të dhënat e log-ve.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve

Tabela e informacionit

Në menunë e majtë klikojmë mbi seksionin e krijimit të Tabelave dhe shkojmë në faqen përkatëse.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Klikojmë mbi «Krijo tabelë të re» dhe shkojmë në faqen e shtimit të objekteve në tabelën.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Klikojmë mbi butonin «Krijo të re», dhe sistemi do të sugjerojë të zgjedhim mënyrën e paraqitjes së të dhënave. Në Kibana ka një numër të madh, por do të shqyrtojmë krijimin e paraqitjes grafike «Vertical Bar» dhe tabelar «Data Table». Llojet e tjera të paraqitjes konfigurohen në mënyrë të ngjashme. 
Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Disa objekte tĂ« disponueshme kanĂ« etiketa B dhe E — kjo do tĂ« thotĂ« se formati Ă«shtĂ« eksperimental ose nĂ« fazĂ«n e beta-testimit. Me kalimin e kohĂ«s formati mund tĂ« ndryshojĂ« ose tĂ« zhduket plotĂ«sisht nga Kibana.

Vertical Bar

Si e mori për shembull «Vertical Bar», do të krijojmë një histrogram për raportin e statusit të suksesshëm dhe të pasuksesshëm të përgjigjes nga shërbimi ynë. Pas përfundimit të konfigurimeve, do të marrim grafikën e mëposhtme:

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Statuset e suksesshme do të përfshijnë të gjitha kërkesat me status përgjigjeje = 400.

Për të krijuar grafikën «Vertical Bar», na nevojitet të zgjedhim burimin e të dhënave. Zgjidhni Index Pattern, që e kemi krijuar më parë.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Në mënyrë të paracaktuar, pas zgjedhjes së burimit të të dhënave do të shfaqet një grafik i vetëm i vazhdueshëm. Le ta konfigurojmë atë.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Në bllokun «Buckets», klikoni butonin «Add», zgjidhni «X-axis» dhe konfiguroni boshtin X. Ne do të shfaqim filtrat e kohës së regjistrimit të të dhënave në log. Në fushën «Aggregation» zgjidhni «Date Histogram» dhe në «Field» zgjidhni «@timestamp», që tregon fushën e kohës. «Minimum interval» do ta lëmë në gjendjen «Auto», dhe ai do të rregullohet automatikisht sipas shfaqjes tonë. 

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Duke klikuar në butonin «Update», ne do të shohim grafikën me numrin e kërkesave çdo 30 sekonda.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Tani le të konfigurojmë kolonat në boshtin Y. Tani për tani, ne po shfaqim numrin total të kërkesave në intervalin e zgjedhur.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Do ta ndërroni vlerën «Aggregation» në «Sum Bucket», e cila do të na lejojë të bashkojmë të dhënat për kërkesat e suksesshme dhe ato të dështuara. Në bllokun Bucket -> Aggregation, zgjidhni agregimin sipas «Filters» dhe vendosni filtrimin për «statusCode >= 400». Në fushën «Custom label» shënoni emrin tonë për një shfaqje më të qartë në legjendë në grafik dhe në listën e përgjithshme.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Duke klikuar butonin «Update» nën bllokun e cilësimeve, do të marrim grafikun me kërkesat problematike.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Nëse klikoni në rrethin afër legjendës, do të shfaqet një dritare ku mund të ndryshoni ngjyrën e kolonave.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Tani do të shtojmë në grafik të dhënat për kërkesat e suksesshme. Në seksionin «Metrics» klikoni butonin «Add» dhe zgjidhni «Y-axis».

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Në metrikën e krijuar bëni të njëjtat cilësime si për kërkesat me gabime. Vetëm në filtrin tregoni «statusCode < 400».

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Duke ndryshuar ngjyrën e kolonës së re, do të marrim një shfaqje të raportit midis kërkesave problematike dhe atyre të suksesshme.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Duke klikuar në pjesën e sipërme të ekranit butonin «Save» dhe duke shënuar emrin, ne do të shohim grafikën e parë në Dashboard.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve

Tabelë të Dhënash

Tani do të shqyrtojmë paraqitjen tabelare të «Data Table». Do të krijojmë një tabelë me një listë të të gjithë URL-ve që kanë pasur kërkesa dhe numrin e këtyre kërkesave. Si në shembullin me Vertical Bar, fillimisht zgjidhim burimin e të dhënave.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Pas kësaj, do të shfaqet një tabelë në ekran me një kolonë që tregon numrin total të kërkesave për intervalin e përzgjedhur të kohës.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Ne do të ndryshojmë vetëm bllokun «Buckets». Klikojmë butonin «Add» dhe përzgjedhim «Split rows».

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Në fushën «Aggregation» zgjedhim «Terms». Ndërsa në fushën që shfaqet «Field» zgjedhim «url.keyword».

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Duke vendosur në fushën «Custom label» vlerën «Url» dhe duke klikuar «Update», ne do të marrim tabelën e dëshiruar me numrin e kërkesave për çdo URL për intervalin e zgjedhur të kohës.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Në pjesën e sipërme të ekranit, përsëri do të klikojmë butonin «Save» dhe do të vendosim emrin e tabelës, për shembull Urls. Do të kthehemi prapa në Dashboard dhe do të shohim të dyja pamjet e krijuara.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve

Puna me Dashboard

Duke krijoni Dashboard, nĂ« cilĂ«simet e objekteve tĂ« shfaqjes kemi vendosur vetĂ«m parametrat kryesorĂ« tĂ« pamjes. Nuk ka kuptim tĂ« specifikoni tĂ« dhĂ«nat pĂ«r filtrat nĂ« objekte, siç janĂ« "intervali i datave", "filtrimi sipas useragent", "filtrimi sipas vendit tĂ« kĂ«rkesĂ«s" etj. ËshtĂ« shumĂ« mĂ« e pĂ«rshtatshme tĂ« specifikoni intervalin e dĂ«shiruar tĂ« kohĂ«s ose tĂ« vendosni filtrimin e nevojshĂ«m nĂ« panelin e kĂ«rkesave, i cili ndodhet mbi objektet.

Krijimi i Dashboard-it në Kibana për monitorimin e logjeve
Filtrat e shtuar në këtë panel do të aplikohen në të gjithë Dashboard-in, dhe të gjitha objektet e shfaqjes do të riformatizohen sipas të dhënave të eflektuara aktuale.

Përfundimi

Kibana është një mjet i fuqishëm që lejon vizualizimin e çdo të dhëne në një përfaqësim të përshtatshëm. Kam përpjekur të tregoj konfigurimin e dy llojeve kryesore të shfaqjes. Por edhe lloje të tjera konfigurohen në mënyrë të ngjashme. Dhe shumica e cilësimeve që kam lënë "jashtë kamerës" do t'ju lejojnë të konfiguroni grafiket shumë fleksibël sipas nevojave tuaja.

Burimi: habr.com

Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« đŸ”„ Bli njĂ« hosting tĂ« besueshĂ«m pĂ«r faqet me mbrojtje DDoS, VPS VDS serverĂ« | ProHoster