Saluton, mia nomo estas Evgeniy, mi estas la B2B-teamestro ĉe Citymobil. Unu el la taskoj de nia teamo estas subteni integriĝojn por taksiomendado de partneroj, kaj por certigi stabilan servon ni devas ĉiam kompreni kio okazas en niaj mikroservoj. Kaj por tio vi devas konstante kontroli la ŝtipojn.
Ĉe Citymobil, ni uzas la ELK-stakon (ElasticSearch, Logstash, Kibana) por labori kun protokoloj, kaj la volumo de datumoj ricevitaj tie estas grandega. En ĉi tiu amaso da petoj, estas sufiĉe malfacile trovi problemojn, kiuj povas aperi post la disvastigo de nova kodo. Kaj por klare identigi ilin, Kibana havas sekcion Dashboard.
Estas sufiĉe multaj artikoloj pri Habré kun ekzemploj pri kiel agordi ELK-stakon por ricevi kaj stoki datumojn, sed ne ekzistas koncernaj materialoj pri kreado de Panelo. Sekve, mi volas montri kiel krei vidan reprezenton de datumoj bazita sur envenantaj protokoloj en Kibana.
alĝustigo
Por pliklarigi ĝin, mi kreis Docker-bildon kun ELK kaj Filebeat. Kaj metis malgrandan en ujon
Klonante la deponejon kun la agordo docker-compose
kaj ELK-agordojn, kaj lanĉu ĝin per la komando docker-compose up
. Mi ne intence aldonas ŝlosilon. -d
por vidi la procezon de la ELK-stako.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Se ĉio estas agordita ĝuste, tiam ni vidos eniron en la protokoloj (eble ne tuj, la procezo de lanĉo de ujo kun la tuta stako povas daŭri plurajn minutojn):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Per la adreso localhost:5061
Kibana devus malfermiĝi.
La nura afero, kiun ni devas agordi, estas krei Indeksan Ŝablonon por Kibana kun informoj pri kiaj datumoj montriĝas. Por fari tion, ni faru buklan peton aŭ faru serion da agoj en la grafika interfaco.
$ 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"}}'
Kreante Indeksan ŝablonon per GUI
Por agordi, elektu la sekcion Malkovru en la maldekstra menuo kaj aliru al la paĝo pri kreado de Indeksa ŝablono.
Alklakante la butonon "Krei indeksan ŝablonon", ni estas kondukitaj al la paĝo pri indeksa kreado. En la kampo "Indeksa ŝablono nomo", enigu "logstash-*". Se ĉio estas agordita ĝuste, sube Kibana montros la indeksojn kiuj falas sub la regulo.
Sur la sekva paĝo, elektu la ŝlosilan kampon kun tempomarko, en nia kazo ĝi estas @timestamp
.
Kiel rezulto, la indeksa agorda paĝo aperos, sed neniuj aldonaj agoj estas postulataj de ni nun.
Nun ni povas reiri al la sekcio Malkovri, kie ni vidos la protokolojn.
Dashboard
En la maldekstra menuo, alklaku la sekcion de Kreado de Dashboard kaj aliru al la responda paĝo.
Alklaku "Krei novan panelon" kaj iru al la paĝo por aldoni objektojn al la panelo.
Alklaku la butonon "Krei novan", kaj la sistemo petos vin elekti la tipon de datummontrado. Estas granda nombro da ili en Kibana, sed ni rigardos krei grafikan reprezenton "Vertikala Trinkejo" kaj tabelan "Datuman Tabelon". Aliaj specoj de prezento estas agordita en simila maniero.
Kelkaj disponeblaj eroj estas etikeditaj B kaj E, indikante ke la formato estas eksperimenta aŭ en betao. Kun la tempo, la formato povas ŝanĝi aŭ tute malaperi de Kibana.
Vertikala Trinkejo
Por la ekzemplo de "Vertikala Trinkejo", ni kreu histogramon de la proporcio de sukcesaj kaj malsukcesaj respondaj statoj de nia servo. Fininte la agordojn, ni ricevos la sekvan grafikon:
Ni klasifikos kiel sukcesajn ĉiujn petojn kun responda stato < 400, kaj kiel problemajn - >= 400.
Por krei diagramon de "Vertikala Trinkejo", ni devas elekti datumfonton. Elektu la Indeksan Ŝablonon, kiun ni kreis pli frue.
Defaŭlte, post kiam vi elektas datumfonton, unu kontinua grafeo aperos. Ni starigu ĝin.
En la bloko "Siteloj", alklaku la butonon "Aldoni", elektu "X-asis" kaj agordu la X-akson. Ni grafiku la tempomarkojn de registroj enirantaj la protokolon laŭ ĝi. En la kampo "Agregado", elektu "Data Histogramo", kaj en la "Kampo" elektu "@timestamp", indikante provizoran kampon. Ni lasu "Minimuma intervalo" en la stato "Aŭtomata", kaj ĝi aŭtomate ĝustigos al nia ekrano.
Alklakante la butonon "Ĝisdatigi", ni vidos grafikon kun la nombro da petoj ĉiujn 30 sekundojn.
Nun ni agordu la kolumnojn sur la Y-akso. Nun ni montras la totalan nombron da petoj en la elektita tempointervalo.
Ni ŝanĝu la valoron "Agregado" al "Suma Sitelo", kio permesos al ni kombini datumojn de sukcesaj kaj malsukcesaj petoj. En la Sitelo -> Agregado-bloko, elektu agregadon per "Filtriloj" kaj agordu filtradon per "statusCode >= 400". Kaj en la kampo "Persona etikedo" ni indikas nian indikilan nomon por pli klara montrado en la legendo sur la diagramo kaj en la ĝenerala listo.
Alklakante la butonon "Ĝisdatigi" sub la agorda bloko, ni ricevas grafikon kun problemaj demandoj.
Se vi alklakas la rondon apud la legendo, aperos fenestro, en kiu vi povas ŝanĝi la koloron de la kolumnoj.
Nun ni aldonu datumojn pri sukcesaj petoj al la diagramo. En la sekcio "Metrikoj", alklaku la butonon "Aldoni" kaj elektu "Y-akso".
En la kreita metriko ni faras la samajn agordojn kiel por eraraj petoj. Nur en la filtrilo ni indikas "statusCode < 400".
Ŝanĝante la koloron de la nova kolumno, ni ricevas montradon de la proporcio de problemaj kaj sukcesaj petoj.
Alklakante la butonon "Konservi" ĉe la supro de la ekrano kaj specifante nomon, ni vidos la unuan grafikaĵon sur la Panelo.
Datumoj Tabelo
Nun ni rigardu la tabelan vidon "Datuman Tabelo". Ni kreu tabelon kun listo de ĉiuj URL-oj al kiuj estis petoj kaj la nombro de ĉi tiuj petoj. Kiel en la ekzemplo de Vertikala Trinkejo, ni unue elektas datumfonton.
Post tio, tablo kun unu kolumno estos montrata sur la ekrano, kiu montras la totalan nombron de petoj por la elektita tempointervalo.
Ni ŝanĝos nur la blokon "Siteloj". Alklaku la butonon "Aldoni" kaj elektu "Disigi vicojn".
En la kampo "Agrego", elektu "Kondiĉojn". Kaj en la kampo "Kampo" kiu aperas, elektu "url.keyword".
Specifante la valoron "Url" en la kampo "Persona etikedo" kaj klakante "Ĝisdatigi", ni ricevos la deziratan tabelon kun la nombro da petoj por ĉiu URL por la elektita tempodaŭro.
Ĉe la supro de la ekrano, alklaku la butonon "Konservi" denove kaj specifu la nomon de la tabelo, ekzemple Urls. Ni reiru al la Panelo kaj vidu ambaŭ vidojn kreitajn.
Laborante kun Dashboard
Kreante la Dashboard, ni fiksas nur la bazajn vidparametrojn en la ekranobjektaj agordoj. Ne utilas specifi datumojn por filtriloj en objektoj, ekzemple "datintervalo", "filtri per uzantagento", "filtri laŭ lando de peto", ktp. Estas multe pli oportune specifi la deziratan tempoperiodon aŭ agordi la necesan filtradon en la demanda panelo, kiu situas super la objektoj.
Filtriloj aldonitaj en ĉi tiu panelo estos aplikitaj al la tuta Panelo, kaj ĉiuj ekranobjektoj estos rearanĝitaj laŭ la nunaj filtritaj datumoj.
konkludo
Kibana estas potenca ilo, kiu ebligas al vi bildigi ajnajn datumojn en oportuna maniero. Mi provis montri la aranĝon de du ĉefaj specoj de ekrano. Sed aliaj tipoj estas agorditaj en simila maniero. Kaj la abundo da agordoj, kiujn mi lasis malantaŭ la scenoj, permesos al vi tre flekseble personecigi la leterojn laŭ viaj bezonoj.
fonto: www.habr.com