Helo, fy enw i yw Eugene, rwy'n arweinydd tîm B2B yn Citymobil. Un o dasgau ein tîm yw cefnogi integreiddiadau ar gyfer archebu tacsi gan bartneriaid, ac er mwyn sicrhau gwasanaeth sefydlog, rhaid inni bob amser ddeall beth sy'n digwydd yn ein microwasanaethau. Ac ar gyfer hyn mae angen i chi fonitro'r logiau yn gyson.
Yn Citymobil, rydym yn defnyddio'r pentwr ELK (ElasticSearch, Logstash, Kibana) i weithio gyda logiau, ac mae swm y data sy'n dod yno yn enfawr. Mae dod o hyd i broblemau yn y llu hwn o geisiadau a all ymddangos ar ôl defnyddio cod newydd yn eithaf anodd. Ac ar gyfer eu hadnabod gweledol, mae gan Kibana adran Dangosfwrdd.
Mae yna dipyn o erthyglau ar Habré gydag enghreifftiau o sut i sefydlu pentwr ELK i dderbyn a storio data, ond nid oes unrhyw ddeunyddiau perthnasol ar greu Dangosfwrdd. Felly, rwyf am ddangos sut i greu cynrychiolaeth weledol o ddata yn seiliedig ar logiau sy'n dod i mewn yn Kibana.
addasiad
Er mwyn ei gwneud yn gliriach, creais ddelwedd Docker gydag ELK a Filebeat. A'i roi mewn cynhwysydd bach
Clonio'r ystorfa ffurfweddu docker-compose
a gosodiadau ELK, a'i lansio gyda'r gorchymyn docker-compose up
. Peidio ag ychwanegu allwedd yn fwriadol -d
i weld cynnydd y pentwr ELK.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Os yw popeth wedi'i ffurfweddu'n gywir, yna fe welwn gofnod yn y logiau (efallai ddim ar unwaith, efallai y bydd y broses o lansio cynhwysydd gyda'r pentwr cyfan yn cymryd sawl munud):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Gan y cyfeiriad localhost:5061
Dylai Kibana agor.
Yr unig beth sydd angen i ni ei ffurfweddu yw creu Patrwm Mynegai ar gyfer Kibana gyda gwybodaeth am ba ddata i'w arddangos. I wneud hyn, byddwn yn gweithredu cais cyrl neu'n perfformio cyfres o gamau gweithredu yn y rhyngwyneb graffigol.
$ 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"}}'
Creu Patrwm Mynegai trwy'r GUI
I ffurfweddu, dewiswch yr adran Darganfod yn y ddewislen chwith, a chyrraedd y dudalen creu patrwm Mynegai.
Trwy glicio ar y botwm "Creu patrwm mynegai", rydym yn cyrraedd y dudalen creu mynegai. Yn y maes "Enw patrwm mynegai", rhowch "logstash-*". Os yw popeth wedi'i ffurfweddu'n gywir, bydd isod Kibana yn dangos y mynegeion sy'n dod o dan y rheol.
Ar y dudalen nesaf, dewiswch y maes allweddol gyda stamp amser, yn ein hachos ni ydyw @timestamp
.
Bydd hyn yn dod â'r dudalen gosodiadau mynegai i fyny, ond nid oes angen unrhyw gamau pellach gennym ni ar hyn o bryd.
Nawr gallwn fynd i'r adran Darganfod eto, lle byddwn yn gweld y cofnodion log.
dangosfwrdd
Yn y ddewislen chwith, cliciwch ar yr adran creu Dangosfwrdd a chyrraedd y dudalen gyfatebol.
Cliciwch ar "Creu dangosfwrdd newydd" a chyrraedd y dudalen ar gyfer ychwanegu gwrthrychau i'r Dangosfwrdd.
Cliciwch ar y botwm "Creu newydd", a bydd y system yn eich annog i ddewis y math o arddangosiad data. Mae gan Kibana nifer fawr ohonynt, ond byddwn yn edrych ar greu cynrychiolaeth graffigol o'r "Bar Fertigol" a thabl "Tabl Data". Mae mathau eraill o gyflwyniad wedi'u ffurfweddu mewn ffordd debyg.
Mae rhai gwrthrychau sydd ar gael wedi'u labelu B ac E, sy'n golygu bod y fformat yn arbrofol neu mewn profion beta. Dros amser, gall y fformat newid neu ddiflannu'n llwyr o Kibana.
Bar fertigol
Ar gyfer yr enghraifft “Vertical Bar”, gadewch i ni greu histogram o gymhareb statws ymateb llwyddiannus ac aflwyddiannus ein gwasanaeth. Ar ddiwedd y gosodiadau, rydym yn cael y graff canlynol:
Byddwn yn dosbarthu pob cais gyda statws ymateb < 400 yn llwyddiannus, a >= 400 yn broblemus.
I greu siart "Bar Fertigol", mae angen i ni ddewis ffynhonnell ddata. Dewiswch y Patrwm Mynegai a grëwyd gennym yn gynharach.
Yn ddiofyn, bydd un graff solet yn ymddangos ar ôl dewis ffynhonnell ddata. Gadewch i ni ei sefydlu.
Yn y bloc "Bwcedi", pwyswch y botwm "Ychwanegu", dewiswch "X-asis" a gosodwch yr echel X. Gadewch i ni neilltuo'r stampiau amser ar gyfer derbyn cofnodion yn y log. Yn y maes "Aggregation", dewiswch "Date Histogram", ac yn y "Field" dewiswch "@timestamp", gan nodi'r maes amser. Gadewch i ni adael "Ysbaid Isafswm" yn y cyflwr "Auto", a bydd yn addasu'n awtomatig i'n harddangosfa.
Drwy glicio ar y botwm "Diweddaru", byddwn yn gweld graff gyda nifer y ceisiadau bob 30 eiliad.
Nawr, gadewch i ni osod y colofnau ar hyd yr echel Y. Nawr rydym yn dangos cyfanswm nifer y ceisiadau yn y cyfnod amser a ddewiswyd.
Gadewch i ni newid y gwerth "Agregu" i "Sum Bucket", a fydd yn caniatáu inni gyfuno data ar gyfer ceisiadau llwyddiannus ac aflwyddiannus. Yn y bloc Bwced -> Agregu, dewiswch agregu yn ôl "Hidlau" a gosodwch hidlo yn ôl "statusCode>= 400". Ac yn y maes "Custom label", rydym yn nodi ein henw y dangosydd ar gyfer arddangosfa fwy dealladwy yn y chwedl ar y siart ac yn y rhestr gyffredinol.
Trwy glicio ar y botwm “Diweddaru” o dan y bloc gosodiadau, byddwn yn cael graff gyda cheisiadau problemus.
Os cliciwch ar y cylch nesaf at y chwedl, bydd ffenestr yn ymddangos lle gallwch chi newid lliw'r colofnau.
Nawr, gadewch i ni ychwanegu data ar geisiadau llwyddiannus at y siart. Yn yr adran "Metrigau", cliciwch ar y botwm "Ychwanegu" a dewis "Y-echel".
Yn y metrig a grëwyd, rydym yn gwneud yr un gosodiadau ag ar gyfer ceisiadau gwallus. Dim ond yn yr hidlydd rydym yn nodi "Cod statws < 400".
Trwy newid lliw y golofn newydd, rydym yn cael arddangosfa o'r gymhareb o geisiadau problemus a llwyddiannus.
Trwy glicio ar y botwm “Cadw” ar frig y sgrin a nodi'r enw, fe welwn y siart cyntaf ar y Dangosfwrdd.
Tabl Data
Nawr ystyriwch y tabl "Tabl Data". Gadewch i ni greu tabl gyda rhestr o'r holl URLau y gofynnwyd amdanynt a nifer y ceisiadau hynny. Yn yr un modd â'r enghraifft Bar Fertigol, rydym yn dewis ffynhonnell ddata yn gyntaf.
Ar ôl hynny, bydd tabl gydag un golofn yn cael ei arddangos ar y sgrin, sy'n dangos cyfanswm nifer y ceisiadau am yr egwyl amser a ddewiswyd.
Byddwn ond yn newid y bloc "Bwcedi". Cliciwch ar y botwm "Ychwanegu" a dewis "Rhannu rhesi".
Yn y maes "Aggregation", dewiswch "Terms". Ac yn y maes a ymddangosodd "Field" dewiswch "url.keyword".
Trwy nodi'r gwerth "Url" yn y maes "Label Custom" a chlicio "Diweddariad", byddwn yn cael y tabl a ddymunir gyda nifer y ceisiadau am bob un o'r URLau am y cyfnod amser a ddewiswyd.
Ar frig y sgrin, cliciwch ar y botwm "Cadw" eto a nodwch enw'r tabl, er enghraifft Urls. Gadewch i ni fynd yn ôl i'r Dangosfwrdd a gweld y ddwy olwg yn cael eu creu.
Gweithio gyda Dangosfwrdd
Wrth greu'r Dangosfwrdd, rydym yn gosod y prif baramedrau golygfa yn unig yn y gosodiadau gwrthrych arddangos. Nid yw'n gwneud unrhyw synnwyr i nodi data ar gyfer hidlwyr mewn gwrthrychau, er enghraifft, “ystod dyddiad”, “hidlo yn ôl asiant defnyddiwr”, “hidlo yn ôl gwlad cais”, ac ati. Mae'n llawer mwy cyfleus nodi'r cyfnod amser a ddymunir neu osod y hidlo angenrheidiol yn y panel ymholiad, sydd wedi'i leoli uwchben y gwrthrychau.
Bydd yr hidlwyr a ychwanegir ar y panel hwn yn cael eu cymhwyso i'r Dangosfwrdd cyfan, a bydd yr holl wrthrychau arddangos yn cael eu hailadeiladu yn unol â'r data hidlo gwirioneddol.
Casgliad
Mae Kibana yn offeryn pwerus sy'n eich galluogi i ddelweddu unrhyw ddata mewn ffordd gyfleus. Ceisiais ddangos gosodiad y ddau brif fath o arddangosiad. Ond mae mathau eraill wedi'u ffurfweddu mewn ffordd debyg. A bydd y doreth o osodiadau a adewais “y tu ôl i'r llenni” yn caniatáu ichi addasu siartiau yn hyblyg iawn i weddu i'ch anghenion.
Ffynhonnell: hab.com