Krijimi i Dashboard në Kibana për monitorimin e logëve

Krijimi i Dashboard në Kibana për monitorimin e logëve

Përshëndetje, unë jam Evgeni, lideri i ekipit B2B në Sitimobil. Një nga detyrat e ekipit tonë është përkrahja e integrimeve për kërkesat e taksive nga partnerët, dhe për të siguruar një shërbim të qëndrueshëm, ne gjithmonë duhet të kuptojmë çfarë ndodh në mikroservisët tanë. Dhe për këtë, duhet të ndjekim vazhdimisht logët.

Në Sitimobil për punën me logët përdorim ELK-stack (ElasticSearch, Logstash, Kibana), dhe volumi i të dhënave që arrijnë atje është i madh. Të gjesh në këtë masë kërkesash problemet që mund të shfaqen pas përhapjes së kodit të ri është mjaft e vështirë. Dhe për identifikimin e tyre të qartë, në Kibana ekziston seksioni i Dashboard.

NĂ« Habr ka shumĂ« artikuj me shembuj se si tĂ« konfigurohet ELK-stack pĂ«r marrjen dhe ruajtjen e tĂ« dhĂ«nave, por pĂ«r krijimin e Dashboard nuk ka materiale tĂ« аĐșтуale. Prandaj, dĂ«shiroj tĂ« tregoj se si tĂ« krijohet njĂ« pĂ«rfaqĂ«sim vizual i tĂ« dhĂ«nave nĂ« Kibana bazuar nĂ« logĂ«t qĂ« arrijnĂ«.

Configuration

Për ta bërë më të qartë, kam krijuar një imazh Docker me ELK dhe Filebeat. Dhe kam vendosur në kontejner një program në Go, që për shembullin tonë do të gjenerojë logë provë. Nuk do të përshkruaj detajueshëm konfigurimin e ELK, është shkruar mjaft në Habr për këtë.

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

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

Nëse gjithçka është konfiguruar siç duhet, në logë do të shohim një regjistrim (ndoshta jo menjëherë, procesi i ndezjes së kontejnerit me të gjithë stack-un 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 në Kibana për monitorimin e logëve
Krijimi i Dashboard në Kibana për monitorimin e logëve
E vetmja gjë që duhet të konfigurojmë është të krijojmë një Index Pattern për Kibana me informacionin se cilat të dhëna duhet të shfaqen. Për këtë, do të kryejmë një kërkesë curl ose do të bëjmë 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 arrijmë në faqen e krijimit të Index pattern.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Duke klikuar në butonin "Krijo index pattern", arrijmë në faqen e krijimit të indeksit. Në fushën "Emri i index pattern" shkruajmë "logstash-*". Nëse gjithçka është konfiguruar siç duhet, më poshtë Kibana do të tregojë indeksat që bien nën rregullin.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Në faqen tjetër, zgjedhim fushën kyçe me shenjë temporale, në rastin tonë është @timestamp.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Si rezultat do të shfaqet faqja e konfigurimit të indeksit, por tani nuk kërkohet veprim nga ne.

Krijimi i Dashboard në Kibana për monitorimin e logëve

Tani mund të kthehemi në seksionin Discover, ku do të shohim shënimet e logjeve.

Krijimi i Dashboard në Kibana për monitorimin e logëve

Panair

Në menunë e majtë, klikoni në seksionin për krijimin e Dashboard-it dhe kaloni në faqen përkatëse.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Klikoni 'Create new dashboard' dhe kaloni në faqen e shtimit të objekteve në Dashboard.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Klikoni në butonin 'Create new', dhe sistemi do t'ju propozojë të zgjidhni mënyrën e shfaqjes së të dhënave. Në Kibana ka shumë mundësi, por ne do të shqyrtojmë krijimin e një paraqitjeje grafike 'Vertical Bar' dhe të dhënave 'Data Table'. Mënyrat e tjera të paraqitjes konfigurohen në mënyrë të ngjashme. 
Krijimi i Dashboard në Kibana për monitorimin e logëve
Disa objekte të disponueshme kanë etiketat 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 krejtësisht nga Kibana.

Vertical Bar

Për shembull, për 'Vertical Bar' do të krijojmë një histogram të proporcioneve të statusit të suksesshëm dhe jo të suksesshëm të përgjigjeve të shërbimit tonë. Pas përfundimit të konfigurimeve, do të kemi grafikun e mëposhtëm:

Krijimi i Dashboard në Kibana për monitorimin e logëve
Të suksesshmit do t'i japim përkufizimin të gjitha kërkesave me status përgjigjeje = 400.

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

Krijimi i Dashboard në Kibana për monitorimin e logëve
Për default, 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 në Kibana për monitorimin e logëve
Në bllokun 'Buckets', klikoni në butonin 'Add', zgjedhim 'X-axis' dhe konfigurojmë aksin X. Do të vendosim sipas tij shenjat temporale të mbërritjes së shënimeve në log. Në fushën 'Aggregation' zgjedhim 'Date Histogram', dhe në 'Field' zgjedhim '@timestamp', që tregon për fushën temporale. 'Minimum interval' do ta lëmë në gjendje 'Auto', dhe ai do të përshtatet automatikisht sipas shfaqjes sonë. 

Krijimi i Dashboard në Kibana për monitorimin e logëve
Duke klikuar në butonin 'Update', do të shohim grafikun me numrin e kërkesave çdo 30 sekonda.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Tani le të konfigurojmë kolonat në aksin Y. Tani për tani po shfaqet shuma totale e kërkesave në intervalin e zgjedhur të kohës.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Do ta ndryshojmë vlerën 'Aggregation' në 'Sum Bucket', që do të na lejojë të kombinojmë të dhënat për kërkesat e suksesshme dhe ato me probleme. Në bllokun Bucket -> Aggregation zgjedhim aglomerimin për 'Filters' dhe vendosim filtrimin për 'statusCode >= 400'. Dhe në fushën 'Custom label' do të vendosim emrin tonë të indikatorit për një shfaqje më të kuptueshme në legjendë në grafik dhe në listën e përgjithshme.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Duke klikuar butonin «Update» nën bllokun e cilësimeve, do të marrim një grafik me kërkesat problematike.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Nëse klikoni mbi rrethin pranë legjendës, do të shfaqet një dritare ku mund të ndryshoni ngjyrën e kolonave.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Tani do të shtojmë në grafik të dhëna për kërkesat e sukcesshme. Në seksionin «Metrics» klikojmë butonin «Add» dhe zgjedhim «Y-axis».

Krijimi i Dashboard në Kibana për monitorimin e logëve
Në metrikën e krijuar bëjmë të njëjtat cilësime si për kërkesat me gabime. Vetëm në filtrin tregojmë «statusCode < 400».

Krijimi i Dashboard në Kibana për monitorimin e logëve
Duke ndryshuar ngjyrën e kolonës së re, do të kemi një paraqitje të raportit midis kërkesave problematike dhe atyre të suksesit.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Duke klikuar në pjesën e sipërme të ekranit butonin «Save» dhe duke treguar emrin, do të shohim grafikun tonë të parë në Dashboard.

Krijimi i Dashboard në Kibana për monitorimin e logëve

Tabela e Dhënave

Tani të shqyrtojmë paraqitjen tabelare «Data Table». Do të krijojmë një tabelë me listën e të gjithë URL-ve për të cilat janë bërë kërkesa dhe numrin e këtyre kërkesave. Ashtu si në shembullin me Vertical Bar, së pari zgjedhim burimin e të dhënave.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Pas kësaj, në ekran do të shfaqet një tabelë me një kolonë, e cila tregon numrin total të kërkesave për intervalin e zgjedhur të kohës.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Ne do të ndryshojmë vetëm bllokun «Buckets». Klikojmë butonin «Add» dhe zgjedhim «Split rows».

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

Krijimi i Dashboard në Kibana për monitorimin e logëve
Duke shënuar në fushën «Custom label» vlerën «Url» dhe duke klikuar «Update», 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 në Kibana për monitorimin e logëve
Në pjesën e sipërme të ekranit sërish do të klikojmë butonin «Save» dhe do të tregojmë emrin e tabelës, për shembull Urls. Të kthehemi prapa në Dashboard dhe do të shohim të dyja paraqitjet e krijuara.

Krijimi i Dashboard në Kibana për monitorimin e logëve

Puna me Dashboard

Kur krijojmĂ« Dashboard, nĂ« cilĂ«simet e objekteve tĂ« paraqitjes kemi vendosur vetĂ«m parametrat e zakonshĂ«m tĂ« pamjes. Nuk ka kuptim tĂ« specifikojmĂ« tĂ« dhĂ«nat pĂ«r filtĂ«r nĂ« objekte, pĂ«r shembull, «intervalin e datave», «filtrimin sipas useragent», «filtrimin sipas vendit tĂ« kĂ«rkesĂ«s» etj. ËshtĂ« shumĂ« mĂ« e pĂ«rshtatshme tĂ« tregojmĂ« intervalin e dĂ«shiruar tĂ« kohĂ«s ose tĂ« vendosim filtrimin e nevojshĂ«m nĂ« panelin e kĂ«rkesave, i cili ndodhet mbi objektet.

Krijimi i Dashboard në Kibana për monitorimin e logëve
Filtrat e shtuar në këtë panel do të zbatohen në të gjithë Dashboard-in, dhe të gjitha objektet e paraqitjes do të ristrukturohen në përputhje me të dhënat e filtruar aktuale.

Përfundim

Kibana – njĂ« mjet i fuqishĂ«m qĂ« lejon vizualizimin e çdo tĂ« dhĂ«ne nĂ« njĂ« format tĂ« pĂ«rshtatshĂ«m. Kam pĂ«rgatitur njĂ« udhĂ«zues pĂ«r konfigurimin e dy llojeve kryesore tĂ« shfaqjes. Por, edhe lloje tĂ« tjera janĂ« tĂ« konfiguruara nĂ« mĂ«nyrĂ« tĂ« ngjashme. Dhe numri i madh i konfigurimeve qĂ« kam lĂ«nĂ« "jashtĂ« skenĂ«s" do t’ju lejojĂ« tĂ« pĂ«rshtatni grafikat nĂ« pĂ«rputhje me nevojat tuaja.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster