Sveiki, mani sauc Eugene, es esmu B2B komandas vadÄ«tÄjs uzÅÄmumÄ Citymobil. Viens no mÅ«su komandas uzdevumiem ir atbalstÄ«t integrÄcijas taksometra pasÅ«tÄ«Å”anai no partneriem, un, lai nodroÅ”inÄtu stabilu servisu, mums vienmÄr ir jÄsaprot, kas notiek mÅ«su mikropakalpojumos. Un Å”im nolÅ«kam jums pastÄvÄ«gi jÄuzrauga žurnÄli.
Citymobil mÄs izmantojam ELK steku (ElasticSearch, Logstash, Kibana), lai strÄdÄtu ar žurnÄliem, un tur ienÄkoÅ”o datu apjoms ir milzÄ«gs. Ir diezgan grÅ«ti atrast problÄmas Å”ajÄ pieprasÄ«jumu masÄ, kas var parÄdÄ«ties pÄc jauna koda izvietoÅ”anas. ViÅu vizuÄlai identificÄÅ”anai KibanÄ ir informÄcijas paneļa sadaļa.
Par HabrĆ© ir diezgan daudz rakstu ar piemÄriem, kÄ iestatÄ«t ELK steku datu saÅemÅ”anai un glabÄÅ”anai, taÄu nav atbilstoÅ”u materiÄlu par informÄcijas paneļa izveidi. TÄpÄc es vÄlos parÄdÄ«t, kÄ izveidot vizuÄlu datu attÄlojumu, pamatojoties uz ienÄkoÅ”ajiem žurnÄliem KibanÄ.
koriÄ£ÄÅ”ana
Lai padarÄ«tu to skaidrÄku, es izveidoju Docker attÄlu ar ELK un Filebeat. Un ievieto traukÄ nelielu
KlonÄjiet konfigurÄcijas repozitoriju docker-compose
un ELK iestatījumus, un palaidiet to ar komandu docker-compose up
. TÄ«Å”i nepievienojot atslÄgu -d
lai redzÄtu ELK steka gaitu.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Ja viss ir pareizi konfigurÄts, mÄs redzÄsim ierakstu žurnÄlos (varbÅ«t ne uzreiz, konteinera palaiÅ”anas process ar visu kaudzi var aizÅemt vairÄkas minÅ«tes):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
PÄc adreses localhost:5061
Kibanai vajadzÄtu atvÄrties.
VienÄ«gais, kas mums jÄkonfigurÄ, ir izveidot Kibana indeksa modeli ar informÄciju par to, kÄdus datus parÄdÄ«t. Lai to izdarÄ«tu, mÄs izpildÄ«sim ÄokuroÅ”anÄs pieprasÄ«jumu vai veiksim virkni darbÄ«bu grafiskajÄ saskarnÄ.
$ 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"}}'
Indeksa modeļa izveide, izmantojot GUI
Lai konfigurÄtu, kreisajÄ izvÄlnÄ atlasiet sadaļu AtklÄjiet un atveriet indeksa modeļa izveides lapu.
NoklikŔķinot uz pogas "Izveidot indeksa modeli", mÄs nonÄkam rÄdÄ«tÄja izveides lapÄ. LaukÄ "Indeksa modeļa nosaukums" ievadiet "logstash-*". Ja viss ir pareizi konfigurÄts, zem Kibana tiks parÄdÄ«ti indeksi, uz kuriem attiecas noteikums.
NÄkamajÄ lapÄ atlasiet atslÄgas lauku ar laikspiedolu, mÅ«su gadÄ«jumÄ tas ir @timestamp
.
Tiks atvÄrta rÄdÄ«tÄja iestatÄ«jumu lapa, taÄu Å”obrÄ«d mums nav jÄveic nekÄdas darbÄ«bas.
Tagad atkal varam doties uz sadaļu Discover, kur redzÄsim žurnÄla ierakstus.
Mans Profils
KreisajÄ izvÄlnÄ noklikŔķiniet uz informÄcijas paneļa izveides sadaļas un atveriet attiecÄ«go lapu.
NoklikŔķiniet uz "Izveidot jaunu informÄcijas paneli" un atveriet lapu, lai informÄcijas panelim pievienotu objektus.
NoklikŔķiniet uz pogas "Izveidot jaunu", un sistÄma liks jums izvÄlÄties datu parÄdÄ«Å”anas veidu. KibanÄ to ir liels skaits, taÄu mÄs aplÅ«kosim "VertikÄlÄs joslas" grafiskÄ attÄlojuma un tabulas "Datu tabulas" izveidi. Citi prezentÄcijas veidi tiek konfigurÄti lÄ«dzÄ«gi.
Daži pieejamie objekti ir apzÄ«mÄti ar B un E, kas nozÄ«mÄ, ka formÄts ir eksperimentÄls vai tiek testÄts beta versijÄ. Laika gaitÄ formÄts var mainÄ«ties vai pilnÄ«bÄ izzust no Kibana.
VertikÄlÄ josla
āVertikÄlÄs joslasā piemÄram izveidosim histogrammu mÅ«su pakalpojuma veiksmÄ«go un neveiksmÄ«go atbilžu statusu attiecÄ«bai. IestatÄ«jumu beigÄs mÄs iegÅ«stam Å”Ädu grafiku:
MÄs klasificÄsim visus pieprasÄ«jumus, kuru atbildes statuss ir < 400, kÄ veiksmÄ«gi un >= 400 kÄ problemÄtiskus.
Lai izveidotu "VertikÄlÄs joslas" diagrammu, mums ir jÄizvÄlas datu avots. Atlasiet iepriekÅ” izveidoto indeksa modeli.
PÄc noklusÄjuma pÄc datu avota atlasÄ«Å”anas tiks parÄdÄ«ta viena viengabalaina diagramma. UzstÄdÄm to.
BlokÄ "Buckets" nospiediet pogu "Pievienot", atlasiet "X-asis" un iestatiet X asi. Pa to noliksim malÄ ierakstu laikspiedolus žurnÄlÄ. LaukÄ "ApkopoÅ”ana" atlasiet "Datuma histogramma", bet laukÄ "Lauks" atlasiet "@timestamp", norÄdot laika lauku. AtstÄsim āMinimÄlais intervÄlsā stÄvoklÄ« āAutoā, un tas automÄtiski pielÄgosies mÅ«su displejam.
NoklikŔķinot uz pogas "AtjauninÄt", mÄs redzÄsim grafiku ar pieprasÄ«jumu skaitu ik pÄc 30 sekundÄm.
Tagad iestatÄ«sim kolonnas gar Y asi, tagad tiek parÄdÄ«ts kopÄjais pieprasÄ«jumu skaits atlasÄ«tajÄ laika intervÄlÄ.
MainÄ«sim vÄrtÄ«bu "ApkopoÅ”ana" uz "Summa kopa", kas ļaus apvienot datus veiksmÄ«giem un neveiksmÄ«giem pieprasÄ«jumiem. BlokÄ Segums -> ApkopoÅ”ana atlasiet apkopojumu pÄc "Filtri" un iestatiet filtrÄÅ”anu pÄc "statusCode >= 400". Un laukÄ "PielÄgota etiÄ·ete" mÄs norÄdÄm mÅ«su indikatora nosaukumu, lai diagrammas leÄ£endÄ un vispÄrÄjÄ sarakstÄ bÅ«tu saprotamÄks attÄlojums.
NoklikŔķinot uz pogas āAtjauninÄtā zem iestatÄ«jumu bloka, mÄs iegÅ«sim grafiku ar problÄmu pieprasÄ«jumiem.
NoklikŔķinot uz apļa blakus leÄ£endai, parÄdÄ«sies logs, kurÄ varÄsiet mainÄ«t kolonnu krÄsu.
Tagad pievienosim diagrammai datus par veiksmÄ«giem pieprasÄ«jumiem. SadaÄ¼Ä "Metrika" noklikŔķiniet uz pogas "Pievienot" un atlasiet "Y ass".
IzveidotajÄ metrikÄ mÄs veicam tÄdus paÅ”us iestatÄ«jumus kÄ kļūdainiem pieprasÄ«jumiem. Tikai filtrÄ norÄdÄm "statusCode < 400".
Mainot jaunÄs kolonnas krÄsu, tiek parÄdÄ«ta problemÄtisko un veiksmÄ«go pieprasÄ«jumu attiecÄ«ba.
NoklikŔķinot uz pogas āSaglabÄtā ekrÄna augÅ”daÄ¼Ä un norÄdot nosaukumu, mÄs redzÄsim pirmo diagrammu informÄcijas panelÄ«.
Datu tabula
Tagad apsveriet tabulas skatu "Datu tabula". Izveidosim tabulu ar visu pieprasÄ«to URL sarakstu un Å”o pieprasÄ«jumu skaitu. TÄpat kÄ vertikÄlÄs joslas piemÄrÄ, vispirms mÄs atlasÄm datu avotu.
PÄc tam ekrÄnÄ tiks parÄdÄ«ta tabula ar vienu kolonnu, kas parÄda kopÄjo pieprasÄ«jumu skaitu atlasÄ«tajÄ laika intervÄlÄ.
MÄs mainÄ«sim tikai bloku "SpaiÅi". NoklikŔķiniet uz pogas "Pievienot" un atlasiet "SadalÄ«t rindas".
LaukÄ "ApkopoÅ”ana" atlasiet "Noteikumi". ParÄdÄ«tajÄ laukÄ "Lauks" atlasiet "url.keyword".
LaukÄ "PielÄgota etiÄ·ete" norÄdot vÄrtÄ«bu "Url" un noklikŔķinot uz "AtjauninÄt", mÄs iegÅ«sim vajadzÄ«go tabulu ar pieprasÄ«jumu skaitu katram no URL atlasÄ«tajÄ laika periodÄ.
EkrÄna augÅ”daÄ¼Ä vÄlreiz noklikŔķiniet uz pogas SaglabÄt un norÄdiet tabulas nosaukumu, piemÄram, URL. AtgriezÄ«simies informÄcijas panelÄ« un apskatÄ«sim abus izveidotos skatus.
Darbs ar informÄcijas paneli
Veidojot Dashboard, displeja objekta iestatÄ«jumos iestatÄm tikai galvenos skata parametrus. Nav jÄgas norÄdÄ«t datus filtriem objektos, piemÄram, ādatumu diapazonsā, āfiltrÄÅ”ana pÄc lietotÄja aÄ£entaā, āfiltrÄÅ”ana pÄc pieprasÄ«juma valstsā utt. Daudz ÄrtÄk ir norÄdÄ«t vÄlamo laika periodu vai iestatÄ«t nepiecieÅ”amo filtrÄÅ”anu vaicÄjumu panelÄ«, kas atrodas virs objektiem.
Å ajÄ panelÄ« pievienotie filtri tiks lietoti visam informÄcijas panelim, un visi displeja objekti tiks pÄrbÅ«vÄti atbilstoÅ”i faktiskajiem filtrÄtajiem datiem.
SecinÄjums
Kibana ir spÄcÄ«gs rÄ«ks, kas ļauj ÄrtÄ veidÄ vizualizÄt jebkurus datus. Es mÄÄ£inÄju parÄdÄ«t divu galveno displeja veidu iestatÄ«jumus. Bet citi veidi ir konfigurÄti lÄ«dzÄ«gi. Un iestatÄ«jumu pÄrpilnÄ«ba, ko atstÄju āaiz ainasā, ļaus jums ļoti elastÄ«gi pielÄgot diagrammas atbilstoÅ”i jÅ«su vajadzÄ«bÄm.
Avots: www.habr.com