Silav, navê min Eugene ye, ez serokê tîmê B2B li Citymobil im. Yek ji peywirên tîmê me piştgirîkirina entegrasyonên ji bo fermankirina taksiyek ji hevalbendan e, û ji bo ku em karûbarek aram peyda bikin, divê em her gav fam bikin ka di mîkroxizmetên me de çi diqewime. Û ji bo vê yekê hûn hewce ne ku bi berdewamî têketin çavdêriya xwe bikin.
Li Citymobil, em stacka ELK-ê (ElasticSearch, Logstash, Kibana) bikar tînin da ku bi têketin re bixebitin, û qebareya daneyên ku li wir hatine wergirtin pir e. Di vê girseya daxwazan de, dîtina pirsgirêkên ku dibe ku piştî danîna koda nû xuya bibin pir dijwar e. Û ji bo ku wan bi zelalî nas bikin, Kibana xwedan beşek Dashboard e.
Li ser Habré gelek gotar hene bi mînakên ku meriv çawa stekek ELK-ê saz dike da ku daneyan werbigire û hilîne, lê ji bo afirandina Dashboardek materyalên têkildar tune. Ji ber vê yekê, ez dixwazim nîşan bidim ka meriv çawa li ser bingeha têketinên hatinê li Kibana nûneriyek dîtbar a daneyan biafirîne.
ligorî
Ji bo ku ew zelaltir bikim, min bi ELK û Filebeat re wêneyek Docker çêkir. Û di konteynirek piçûk de danîn
Depoya mîhengê klon bikin docker-compose
û mîhengên ELK, û wê bi fermanê dest pê bikin docker-compose up
. Bi qestî mifteyek lê zêde nakin -d
ji bo dîtina pêvajoya ELK stack.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Ger her tişt rast were mîheng kirin, wê hingê em ê têketinek di tomaran de bibînin (dibe ku ne tavilê, pêvajoya destpêkirina konteynirek bi tevahî stêrk dikare çend hûrdem bigire):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Bi navnîşan localhost:5061
Divê Kibana vebe.
Tişta ku divê em mîheng bikin ev e ku em ji bo Kibana Nimûneyek Indeksê bi agahdariya li ser kîjan daneyan nîşan bidin biafirînin. Ji bo vê yekê, em ê daxwazek curl bicîh bikin an jî di navgîniya grafîkî de rêzek çalakiyan pêk bînin.
$ 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"}}'
Afirandina Nimûneyek Indeksê bi GUI-yê
Ji bo veavakirinê, di pêşeka çepê de beşa Vedîtin hilbijêrin, û biçin rûpela çêkirina nimûneya Indeksê.
Bi tikandina bişkoka "Create pattern index" em digihîjin rûpela çêkirina îndeksê. Di qada "Navê nimûneya Indeksê" de, "logstash-*" binivîse. Ger her tişt rast were mîheng kirin, li jêr Kibana dê navnîşên ku di bin qaîdeyê de ne nîşan bide.
Di rûpela paşîn de, qada mifteyê ya bi demjimêrek hilbijêrin, di doza me de ew e @timestamp
.
Ev ê rûpela mîhengên pêvekê derxe, lê di vê demê de ji me re çalakiyek din ne hewce ye.
Naha em dikarin vegerin beşa Discover, ku em ê têketinên têketinê bibînin.
Rojhan
Di menuya çepê de, li beşa çêkirina Dashboard-ê bikirtînin û biçin rûpela têkildar.
Li ser "Daşboarda Nû Biafirîne" bikirtînin û biçin rûpelê ji bo zêdekirina tiştan li Dashboardê.
Bişkojka "Nû biafirîne" bikirtînin, û pergal dê ji we bipirse ku hûn celebê nîşana daneyê hilbijêrin. Kibana hejmareke mezin ji wan heye, lê em ê li afirandina nûnertiyek grafîkî ya "Bara Vertîk" û tabloyek "Tabloya Daneyê" binêrin. Cûreyên din ên pêşkêşkirinê bi heman rengî têne mîheng kirin.
Hin tiştên berdest bi B û E têne nîşankirin, ku tê vê wateyê ku format ceribandin an di ceribandina beta de ye. Bi demê re, dibe ku format ji Kibana biguhezîne an bi tevahî winda bibe.
Barê Vertical
Ji bo mînaka "Bara Vertîkal", bila em histogramek rêjeya statûyên bersivê yên serketî û neserkeftî yên karûbarê xwe biafirînin. Di dawiya mîhengan de, em grafika jêrîn digirin:
Em ê hemî daxwazên bi statûya bersivê < 400, û wekî pirsgirêk - >= 400 wekî serketî dabeş bikin.
Ji bo afirandina nexşeyek "Barika Vertîkal", divê em çavkaniyek daneyê hilbijêrin. Modela Indeksê ya ku me berê çêkiriye hilbijêrin.
Bi xwerû, gava ku hûn çavkaniyek daneyê hilbijêrin, dê grafiyek domdar xuya bibe. Ka em wê saz bikin.
Di bloka "Buckets" de, bişkoja "Lê zêde bike" bikirtînin, "X-asis" hilbijêrin û eksê X saz bikin. Werin em ji bo wergirtina têketinên di têketinê de mohra demjimêran bidin aliyekî. Di qada "Aggregation" de, "Date Histogram" hilbijêrin, û di "Field" de "@timestamp" hilbijêrin, ku qada demê destnîşan dike. Ka em "navbera hindiktirîn" di rewşa "Auto" de bihêlin, û ew ê bixweber li dîmendera me rast bike.
Bi tikandina bişkoka "Nûvekirin"ê, em ê her 30 saniyeyan carekê grafiyek bi hejmara daxwazan bibînin.
Naha em stûnên li ser eksê Y saz bikin. Niha em di navbera dema hilbijartî de hejmara giştî ya daxwazan nîşan didin.
Werin em nirxa "Aggregation" biguhezînin "Sum Bucket", ku dê rê bide me ku em daneyan ji bo daxwazên serketî û neserkeftî berhev bikin. Di bloka Bucket -> Aggregation de, berhevokê bi "Pelter" hilbijêrin û fîlterkirin bi "statusCode >= 400" saz bikin. Û di qada "Etîketa Xweser" de em navê nîşana xwe destnîşan dikin ku di efsaneya li ser nexşeyê û di navnîşa gelemperî de xuyangek zelaltir nîşan bidin.
Bi tikandina bişkoja "Nûvekirin"ê ya li binê bloka mîhengan, em grafiyek bi pirsên bi pirsgirêk distînin.
Ger hûn li xeleka li kêleka efsaneyê bikirtînin, dê pencereyek xuya bibe ku tê de hûn dikarin rengê stûnan biguhezînin.
Naha em daneyên li ser daxwazên serketî li nexşeyê zêde bikin. Di beşa "Metrics" de, bişkojka "Add" bikirtînin û "Y-axis" hilbijêrin.
Di metrîka çêkirî de, em heman mîhengan dikin ku ji bo daxwazên xelet. Tenê di parzûnê de em "statusCode < 400" diyar dikin.
Bi guheztina rengê stûna nû, em nîşanek rêjeya daxwazên pirsgirêk û serketî digirin.
Bi tikandina bişkoja "Save" ya li jora ekranê û destnîşankirina navek, em ê grafika yekem li ser Dashboardê bibînin.
Table Table
Naha dîtina tabloya "Tabloya Daneyên" binihêrin. Werin em tabloyek bi navnîşek hemî URL-yên ku daxwaz jê re hebûn û hejmara van daxwazan biafirînin. Wekî mînaka Barê Vertîkal, em pêşî çavkaniyek daneyê hilbijêrin.
Piştî vê yekê, tabloyek bi yek stûnê dê li ser ekranê were xuyang kirin, ku jimara giştî ya daxwaznameyên ji bo navbera dema hilbijartî nîşan dide.
Em ê tenê bloka "Buckets" biguherînin. Bişkojka "lê zêde bike" bikirtînin û "Rêzan dabeş bikin" hilbijêrin.
Di qada "Aggregation" de, "Terms" hilbijêre. Û di qada xuyakirî de "Field" "url.keyword" hilbijêre.
Bi diyarkirina nirxa "Url" di qada "Etîketa Xweser" de û klîkkirina "Nûvekirin"ê, em ê tabloya xwestî ya bi hejmara daxwaznameyên her URL-ê ji bo heyama hilbijartî bistînin.
Li serê ekranê, dîsa bişkojka "Save" bikirtînin û navê tabloyê diyar bikin, mînakî Urls. Ka em vegerin ser Dashboard û her du dîtinên hatine afirandin bibînin.
Bi Dashboard re dixebitin
Dema ku Dashboard-ê diafirînin, em tenê pîvanên dîtina bingehîn di mîhengên objekta nîşandanê de destnîşan dikin. Ti xala diyarkirina daneyan ji bo parzûnên di tiştan de tune ye, mînakî, "rangeya tarîxê", "fîlterkirina ji hêla bikarhêneran ve", "fîlterkirina li gorî welatê daxwaznameyê" û hwd. Di panela pirsê de, ku li jorê hêmanan e, meriv wextê xwestinê diyar bike an fîlterkirina pêwîst destnîşan bike pir hêsantir e.
Parzûnên ku li ser vê panelê hatine zêdekirin dê li seranserê Dashboardê werin sepandin, û hemî tiştên pêşandanê dê li gorî daneyên fîlterkirî yên rastîn ji nû ve werin çêkirin.
encamê
Kibana amûrek hêzdar e ku dihêle hûn her daneyê bi rengek hêsan xuyang bikin. Min hewl da ku sazkirina du celebên sereke yên pêşandanê nîşan bidim. Lê celebên din bi heman rengî têne mîheng kirin. Û pirbûna mîhengên ku min "li pişt perdeyê" hiştin dê bihêle ku hûn bi rengek pir maqûl nexşeyan li gorî hewcedariyên xwe xweş bikin.
Source: www.habr.com