Hallo, my naam is Evgeniy, ek is die B2B-spanleier by Citymobil. Een van ons span se take is om integrasies vir taxibestellings by vennote te ondersteun, en om 'n stabiele diens te verseker moet ons altyd verstaan wat in ons mikrodienste gebeur. En hiervoor moet u die logs voortdurend monitor.
By Citymobil gebruik ons die ELK-stapel (ElasticSearch, Logstash, Kibana) om met logs te werk, en die volume data wat daar ontvang word, is enorm. In hierdie massa versoeke is dit nogal moeilik om probleme te vind wat kan voorkom na die ontplooiing van nuwe kode. En om hulle duidelik te identifiseer, het Kibana 'n Dashboard-afdeling.
Daar is 'n hele paar artikels oor Habré met voorbeelde van hoe om 'n ELK-stapel op te stel vir die ontvangs en berging van data, maar daar is geen relevante materiaal oor die skep van 'n Dashboard nie. Daarom wil ek wys hoe om 'n visuele voorstelling van data te skep gebaseer op inkomende logs in Kibana.
aanpassing
Om dit duideliker te maak, het ek 'n Docker-beeld met ELK en Filebeat geskep. En 'n klein een in 'n houer geplaas
Kloon die bewaarplek met die konfigurasie docker-compose
en ELK-instellings, en begin dit met die opdrag docker-compose up
. Ek voeg nie doelbewus 'n sleutel by nie. -d
om die proses van die ELK-stapel te sien.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
As alles korrek opgestel is, sal ons 'n inskrywing in die logboeke sien (miskien nie dadelik nie, die proses om 'n houer met die hele stapel te begin kan 'n paar minute neem):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Deur die adres localhost:5061
Kibana moet oopmaak.
Die enigste ding wat ons moet konfigureer, is om 'n indekspatroon vir Kibana te skep met inligting oor watter data vertoon moet word. Om dit te doen, kom ons voer 'n krulversoek uit of doen 'n reeks aksies in die grafiese koppelvlak.
$ 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"}}'
Skep indekspatroon via GUI
Om te konfigureer, kies die Ontdek-afdeling in die linkerkieslys en gaan na die indekspatroonskeppingbladsy.
Deur op die "Skep indekspatroon"-knoppie te klik, word ons na die indeksskeppingsbladsy geneem. In die "Indekspatroonnaam"-veld, voer "logstash-*" in. As alles korrek opgestel is, sal Kibana hieronder die indekse wys wat onder die reël val.
Kies op die volgende bladsy die sleutelveld met 'n tydstempel, in ons geval is dit @timestamp
.
Gevolglik sal die indeksinstellingsbladsy verskyn, maar geen bykomende handelinge word nou van ons vereis nie.
Nou kan ons teruggaan na die Ontdek-afdeling, waar ons die loginskrywings sal sien.
Dashboard
Klik in die linkerkieslys op die Dashboard-skepping-afdeling en gaan na die ooreenstemmende bladsy.
Klik op "Skep nuwe dashboard" en gaan na die bladsy om voorwerpe by die Dashboard te voeg.
Klik op die "Skep nuwe" knoppie, en die stelsel sal jou vra om die tipe data vertoon te kies. Daar is 'n groot aantal van hulle in Kibana, maar ons sal kyk na die skep van 'n grafiese voorstelling "Vertikale staaf" en 'n tabelvormige "Datatabel". Ander tipes aanbieding word op 'n soortgelyke manier gekonfigureer.
Sommige beskikbare items is gemerk B en E, wat aandui dat die formaat eksperimenteel of in beta is. Met verloop van tyd kan die formaat van Kibana verander of heeltemal verdwyn.
Vertikale staaf
Vir die "Vertikale staaf"-voorbeeld, kom ons skep 'n histogram van die verhouding van suksesvolle en onsuksesvolle reaksiestatusse van ons diens. Nadat u die instellings voltooi het, sal ons die volgende grafiek kry:
Ons sal alle versoeke met 'n antwoordstatus < 400 as suksesvol klassifiseer, en as problematies - >= 400.
Om 'n "Vertikale staaf"-grafiek te skep, moet ons 'n databron kies. Kies die indekspatroon wat ons vroeër geskep het.
By verstek, sodra jy 'n databron gekies het, sal een deurlopende grafiek verskyn. Kom ons stel dit op.
Klik in die "Buckets"-blok op die "Add"-knoppie, kies "X-asis" en stel die X-as op. Kom ons teken die tydstempels van rekords wat die log ingaan daarlangs. In die "Aggregasie" veld, kies "Datum Histogram", en in die "Veld" kies "@timestamp", wat 'n tydelike veld aandui. Kom ons laat "Minimum interval" in die "Outo"-toestand, en dit sal outomaties aanpas by ons skerm.
Deur op die "Update"-knoppie te klik, sal ons elke 30 sekondes 'n grafiek sien met die aantal versoeke.
Kom ons stel nou die kolomme op die Y-as op. Nou vertoon ons die totale aantal versoeke in die geselekteerde tydinterval.
Kom ons verander die "Aggregasie" waarde na "Som Emmer", wat ons in staat sal stel om data van suksesvolle en onsuksesvolle versoeke te kombineer. In die Emmer -> Aggregasie-blok, kies samevoeging deur “Filters” en stel filtering volgens “statusKode >= 400”. En in die "Custom label"-veld dui ons ons aanwysernaam aan vir 'n duideliker vertoning in die legende op die grafiek en in die algemene lys.
Deur op die "Update"-knoppie onder die instellingsblok te klik, kry ons 'n grafiek met problematiese navrae.
As jy op die sirkel langs die legende klik, sal 'n venster verskyn waarin jy die kleur van die kolomme kan verander.
Kom ons voeg nou data oor suksesvolle versoeke by die grafiek. Klik in die "Metrieks"-afdeling op die "Voeg by"-knoppie en kies "Y-as".
In die geskep metrieke maak ons dieselfde instellings as vir foutiewe versoeke. Slegs in die filter dui ons "statuskode < 400" aan.
Deur die kleur van die nuwe kolom te verander, kry ons 'n vertoning van die verhouding van problematiese en suksesvolle versoeke.
Deur op die "Stoor"-knoppie bo-aan die skerm te klik en 'n naam te spesifiseer, sal ons die eerste grafiek op die Dashboard sien.
Datatabel
Kom ons kyk nou na die "Datatabel"-tabelaansig. Kom ons skep 'n tabel met 'n lys van alle URL's waarheen daar versoeke was en die aantal van hierdie versoeke. Soos in die Vertical Bar-voorbeeld, kies ons eers 'n databron.
Hierna sal 'n tabel met een kolom op die skerm vertoon word, wat die totale aantal versoeke vir die geselekteerde tydinterval wys.
Ons sal net die "Buckets" blok verander. Klik op die knoppie "Voeg by" en kies "Verdeel rye".
In die "Aggregasie"-veld, kies "Terme". En in die "Veld"-veld wat verskyn, kies "url.keyword".
Deur die waarde "Url" in die "Custom label"-veld te spesifiseer en "Update" te klik, sal ons die verlangde tabel ontvang met die aantal versoeke vir elke URL vir die geselekteerde tydperk.
Klik weer boaan die skerm op die "Stoor"-knoppie en spesifiseer die naam van die tabel, byvoorbeeld URL's. Kom ons gaan terug na die Dashboard en sien beide aansigte geskep.
Werk met Dashboard
Wanneer ons die Dashboard skep, stel ons slegs die basiese aansigparameters in die vertoonobjekinstellings. Dit is geen sin om data vir filters in voorwerpe te spesifiseer nie, byvoorbeeld "datumreeks", "filtrering deur gebruikeragent", "filtrering volgens land van versoek", ens. Dit is baie geriefliker om die verlangde tydperk te spesifiseer of die nodige filtering in die navraagpaneel in te stel, wat bo die voorwerpe geleë is.
Filters wat in hierdie paneel bygevoeg word, sal op die hele Dashboard toegepas word, en alle vertoonvoorwerpe sal herrangskik word volgens die huidige gefiltreerde data.
Gevolgtrekking
Kibana is 'n kragtige instrument waarmee u enige data op 'n gerieflike manier kan visualiseer. Ek het probeer om die opstelling van twee hooftipes skerms te wys. Maar ander tipes is op 'n soortgelyke manier gekonfigureer. En die oorvloed instellings wat ek agter die skerms gelaat het, sal jou toelaat om die kaarte baie buigsaam aan te pas om by jou behoeftes te pas.
Bron: will.com