Përshëndetje, emri im është Eugene, unë jam një drejtues ekipi B2B në Citymobil. Një nga detyrat e ekipit tonë është të mbështesë integrimet për porositjen e një taksi nga partnerët, dhe për të siguruar një shërbim të qëndrueshëm, duhet të kuptojmë gjithmonë se çfarë po ndodh në mikroshërbimet tona. Dhe për këtë ju duhet të monitoroni vazhdimisht regjistrat.
Në Citymobil, ne përdorim grupin ELK (ElasticSearch, Logstash, Kibana) për të punuar me regjistrat dhe sasia e të dhënave që vijnë atje është e madhe. Gjetja e problemeve në këtë masë kërkesash që mund të shfaqen pas vendosjes së kodit të ri është mjaft e vështirë. Dhe për identifikimin e tyre vizual, Kibana ka një seksion Dashboard.
Ka mjaft artikuj në Habré me shembuj se si të konfiguroni një pirg ELK për të marrë dhe ruajtur të dhëna, por nuk ka materiale përkatëse për krijimin e një Paneli. Prandaj, unë dua të tregoj se si të krijoj një paraqitje vizuale të të dhënave bazuar në regjistrat hyrës në Kibana.
rregullim
Për ta bërë më të qartë, krijova një imazh Docker me ELK dhe Filebeat. Dhe vendosim një të vogël në një enë
Klononi depon e konfigurimit docker-compose
dhe cilësimet ELK dhe niseni me komandën docker-compose up
. Mos shtimi i qëllimshëm i një çelësi -d
për të parë ecurinë e pirgut ELK.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Nëse gjithçka është konfiguruar saktë, atëherë do të shohim një hyrje në regjistrat (ndoshta jo menjëherë, procesi i nisjes së një kontejneri me të gjithë pirgun mund të zgjasë 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"}
Nga adresa localhost:5061
Kibana duhet të hapet.
E vetmja gjë që duhet të konfigurojmë është të krijojmë një model indeksi për Kibana me informacion se cilat të dhëna duhet të shfaqen. Për ta bërë këtë, ne 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 një modeli indeksi përmes GUI
Për të konfiguruar, zgjidhni seksionin Zbuloni në menynë e majtë dhe shkoni te faqja e krijimit të modelit të Indeksit.
Duke klikuar në butonin "Krijo modelin e indeksit", arrijmë në faqen e krijimit të indeksit. Në fushën "Emri i modelit të indeksit", shkruani "logstash-*". Nëse gjithçka është konfiguruar saktë, më poshtë Kibana do të tregojë indekset që bien nën rregull.
Në faqen tjetër, zgjidhni fushën kryesore me një vulë kohore, në rastin tonë është @timestamp
.
Kjo do të shfaqë faqen e cilësimeve të indeksit, por nuk kërkohet asnjë veprim i mëtejshëm nga ne në këtë moment.
Tani mund të shkojmë sërish te seksioni "Zbulo", ku do të shohim hyrjet e regjistrit.
Profili
Në menunë e majtë, klikoni në seksionin e krijimit të panelit dhe shkoni në faqen përkatëse.
Klikoni në "Krijo pult të ri" dhe shkoni në faqen për shtimin e objekteve në panel.
Klikoni në butonin "Krijo të re" dhe sistemi do t'ju kërkojë të zgjidhni llojin e shfaqjes së të dhënave. Kibana ka një numër të madh të tyre, por ne do të shikojmë krijimin e një paraqitje grafike të "Shirit vertikal" dhe një "Tabela të të dhënave" në formë tabele. Llojet e tjera të prezantimit janë konfiguruar në mënyrë të ngjashme.
Disa objekte të disponueshme emërtohen B dhe E, që do të thotë se formati është eksperimental ose në testim beta. Me kalimin e kohës, formati mund të ndryshojë ose të zhduket plotësisht nga Kibana.
Shirit vertikal
Për shembullin e "Shirit vertikal", le të krijojmë një histogram të raportit të statuseve të përgjigjeve të suksesshme dhe të pasuksesshme të shërbimit tonë. Në fund të cilësimeve, marrim grafikun e mëposhtëm:
Ne do t'i klasifikojmë të gjitha kërkesat me status përgjigjeje < 400 si të suksesshme dhe >= 400 si problematike.
Për të krijuar një grafik "Shirit vertikal", duhet të zgjedhim një burim të dhënash. Zgjidhni modelin e indeksit që kemi krijuar më parë.
Si parazgjedhje, një grafik i vetëm solid do të shfaqet pas zgjedhjes së një burimi të dhënash. Le ta vendosim.
Në bllokun "Buckets", shtypni butonin "Shto", zgjidhni "X-asis" dhe vendosni boshtin X. Le të lëmë mënjanë vulat kohore të hyrjeve në regjistrin përgjatë tij. Në fushën "Aggregation", zgjidhni "Date Histogram", dhe në "Field" zgjidhni "@timestamp", duke treguar fushën e kohës. Le ta lëmë "Intervalin minimal" në gjendjen "Auto" dhe ai automatikisht do të përshtatet me ekranin tonë.
Duke klikuar në butonin "Përditëso", do të shohim një grafik me numrin e kërkesave çdo 30 sekonda.
Tani le të vendosim kolonat përgjatë boshtit Y. Tani po shfaqim numrin total të kërkesave në intervalin kohor të zgjedhur.
Le të ndryshojmë vlerën "Aggregation" në "Sum Bucket", e cila do të na lejojë të kombinojmë të dhënat për kërkesat e suksesshme dhe të pasuksesshme. Në bllokun Bucket -> Agregation, zgjidhni grumbullimin sipas "Filters" dhe vendosni filtrimin sipas "statusCode >= 400". Dhe në fushën "Etiketa me porosi", ne tregojmë emrin tonë të treguesit për një shfaqje më të kuptueshme në legjendë në grafik dhe në listën e përgjithshme.
Duke klikuar butonin "Përditëso" nën bllokun e cilësimeve, do të marrim një grafik me kërkesat e problemeve.
Nëse klikoni në rrethin pranë legjendës, do të shfaqet një dritare në të cilën mund të ndryshoni ngjyrën e kolonave.
Tani le të shtojmë të dhëna për kërkesat e suksesshme në grafik. Në seksionin "Metrics", klikoni butonin "Shto" dhe zgjidhni "Y-axis".
Në metrikën e krijuar, ne bëjmë të njëjtat cilësime si për kërkesat e gabuara. Vetëm në filtër specifikojmë "statusCode < 400".
Duke ndryshuar ngjyrën e kolonës së re, marrim një shfaqje të raportit të kërkesave problematike dhe të suksesshme.
Duke klikuar butonin "Ruaj" në krye të ekranit dhe duke specifikuar emrin, do të shohim grafikun e parë në Panel.
Tabela e të Dhënave
Tani merrni parasysh pamjen tabelare "Tabela e të dhënave". Le të krijojmë një tabelë me një listë të të gjitha URL-ve që janë kërkuar dhe numrin e atyre kërkesave. Ashtu si me shembullin e shiritit vertikal, ne fillimisht zgjedhim një burim të dhënash.
Pas kësaj, në ekran do të shfaqet një tabelë me një kolonë, e cila tregon numrin total të kërkesave për intervalin kohor të zgjedhur.
Ne do të ndryshojmë vetëm bllokun "Buckets". Klikoni butonin "Shto" dhe zgjidhni "Ndarja e rreshtave".
Në fushën "Aggregation", zgjidhni "Terms". Dhe në fushën e shfaqur "Fusha" zgjidhni "url.keyword".
Duke specifikuar vlerën "Url" në fushën "Etiketa e personalizuar" dhe duke klikuar "Përditëso", do të marrim tabelën e dëshiruar me numrin e kërkesave për secilën prej URL-ve për periudhën e zgjedhur kohore.
Në krye të ekranit, klikoni përsëri butonin "Ruaj" dhe specifikoni emrin e tabelës, për shembull Url. Le të kthehemi te Paneli dhe të shohim të dyja pamjet e krijuara.
Puna me panelin e kontrollit
Kur krijojmë panelin e kontrollit, ne vendosim vetëm parametrat kryesorë të pamjes në cilësimet e objektit të ekranit. Nuk ka kuptim të specifikoni të dhënat për filtrat në objekte, për shembull, "gama e datave", "filtrimi sipas agjentit të përdoruesit", "filtrimi sipas vendit të kërkesës", etj. Është shumë më i përshtatshëm të specifikoni periudhën kohore të dëshiruar ose të vendosni filtrimin e nevojshëm në panelin e pyetjeve, i cili ndodhet sipër objekteve.
Filtrat e shtuar në këtë panel do të aplikohen në të gjithë panelin e kontrollit dhe të gjitha objektet e ekranit do të rindërtohen në përputhje me të dhënat aktuale të filtruara.
Përfundim
Kibana është një mjet i fuqishëm që ju lejon të vizualizoni çdo të dhënë në një mënyrë të përshtatshme. Unë u përpoqa të tregoja cilësimin e dy llojeve kryesore të ekranit. Por llojet e tjera janë konfiguruar në një mënyrë të ngjashme. Dhe bollëku i cilësimeve që lashë "prapa skenave" do t'ju lejojë të personalizoni në mënyrë shumë fleksibël grafikët për t'iu përshtatur nevojave tuaja.
Burimi: www.habr.com