
Moien, mÀin Numm ass Eugene, ech sinn e B2B Teamleader bei Citymobil. Eng vun den Aufgaben vun eisem Team ass d'Integratioun z'ënnerstëtzen fir en Taxi vu Partner ze bestellen, a fir e stabile Service ze garantéieren, musse mir ëmmer verstoen wat an eise Mikroservicer geschitt. A fir dëst musst Dir d'Logbicher konstant iwwerwaachen.
Am Citymobil benotze mir den ELK Stack (ElasticSearch, Logstash, Kibana) fir mat Logbicher ze schaffen, an d'Quantitéit un Daten déi dohinner kommen ass enorm. Problemer an dëser Mass vun Ufroen ze fannen, déi no der Installatioun vum neie Code optrieden, ass zimmlech schwéier. A fir hir visuell Identifikatioun huet Kibana eng Dashboard Sektioun.
Et gi zimmlech e puer Artikelen iwwer Habré mat Beispiller wéi een en ELK Stack opstellt fir Daten ze kréien an ze spÀicheren, awer et gi keng relevant Materialien fir en Dashboard ze kreéieren. Dofir wëll ech weisen wéi eng visuell Representatioun vun Daten baséiert op erakommende Logbicher an Kibana erstellen.
Upassung
Fir et méi kloer ze maachen, hunn ech en Docker-Bild mat ELK a Filebeat erstallt. A plazéiert an engem Container eng kleng am Go, wat fir eist Beispill Testprotokoller generéiert. Ech wÀert net am Detail d'Konfiguratioun vun ELK beschreiwen, et gëtt genuch geschriwwen doriwwer op Habré.
Klon de Configuratiounsrepository docker-compose an ELK Astellungen, a starten et mam Kommando docker-compose up. Absicht net e Schlëssel derbÀi -dfir de Fortschrëtt vum ELK Stack ze gesinn.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Wann alles richteg konfiguréiert ass, da gesi mir eng Entrée an de Logbicher (vlÀicht net direkt, de Prozess fir e Container mam ganze Stack ze starten kann e puer Minutten daueren):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Vun der Adress localhost:5061 Kibana soll opmaachen.


Dat eenzegt wat mir musse konfiguréieren ass en Indexmuster fir Kibana ze kreéieren mat Informatioun iwwer wéi eng Donnéeën ze weisen. Fir dëst ze maachen, wÀerte mir eng Curl Ufro ausféieren oder eng Serie vun Aktiounen an der grafescher Interface ausféieren.
$ 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"}}'
En Indexmuster erstellen iwwer de GUI
Fir ze konfigurĂ©ieren, wielt d'Entdeckungssektioun am lĂ©nksen MenĂŒ, a gitt op d'SĂ€it fir Indexmuster ze kreĂ©ieren.

Andeems Dir op de KnÀppchen "Indexmuster erstellen" klickt, komme mir op d'SÀit fir den Index ze kreéieren. Am Feld "Indexmusternumm" gitt "logstash-*". Wann alles richteg konfiguréiert ass, ënner Kibana weist d'Indexen déi ënner der Regel falen.

Op der nÀchster SÀit, wielt de Schlësselfeld mat engem ZÀitstempel, an eisem Fall ass et @timestamp.

Dëst bréngt d'Index AstellungssÀit op, awer keng weider Handlung ass vun eis am Moment erfuerderlech.

Elo kënne mir erëm an d'Entdeckungssektioun goen, wou mir d'Logbicher gesinn.

bÀi
Am lĂ©nksen MenĂŒ, klickt op d'Dashboard Kreatioun Sektioun a gitt op dĂ©i entspriechend SĂ€it.

Klickt op "Erstellt en neit Dashboard" a gitt op d'SÀit fir Objeten op den Dashboard ze addéieren.

Klickt op de KnÀppchen "Nei erstellen", an de System freet Iech fir d'Aart vun der Datedisplay ze wielen. Kibana huet eng grouss Unzuel vun hinnen, awer mir wÀerte kucken op eng grafesch Representatioun vun der "Vertikal Bar" an eng Tabelle "Daten Table" ze kreéieren. Aner Aarte vu Presentatioun sinn op eng Àhnlech Manéier konfiguréiert.

E puer verfĂŒgbar Objete si mam Label B an E bezeechent, dat heescht datt d'Format experimentell oder am Beta-Test ass. Mat der ZĂ€it kann d'Format Ă€nneren oder komplett aus Kibana verschwannen.
Vertikal Bar
Fir d'Beispill "Vertikal Bar", loosst eis en Histogramm vum VerhĂ€ltnis vun erfollegrĂ€ichen an net erfollegrĂ€ichen Ăntwertstatuse vun eisem Service erstellen. Um Enn vun den Astellunge krĂ©ie mir dĂ©i folgend Grafik:

Mir klassifizĂ©ieren all Ufroe mat engem Ăntwertstatus <400 als erfollegrĂ€ich, an >= 400 als problematesch.
Fir eng "Vertikal Bar" Diagramm ze kreéieren, musse mir eng Datenquell auswielen. Wielt den Indexmuster dat mir virdru erstallt hunn.

Par défaut gëtt eng eenzeg zolidd Grafik erschéngt nodeems Dir eng Datequell gewielt hutt. Loosst eis et opstellen.

Am Block "Buckets" dréckt op de "Add" KnÀppchen, wielt "X-asis" a setzt d'X-Achs op. Loosst eis d'ZÀitstempele fir d'Empfang vun den Entréen am Logbuch ofsetzen. Am Feld "Aggregatioun" wielt "Datum Histogram", an am "Feld" wielt "@timestamp", wat d'ZÀitfeld ugeet. Loosst eis "Minimum Intervall" am "Auto" Staat loossen, an et passt sech automatesch un eisen Display un.

Andeems Dir op de KnÀppchen "Update" klickt, gesi mir all 30 Sekonnen eng Grafik mat der Unzuel vun den Ufroen.

Loosst eis elo d'Saile laanscht d'Y-Achs opsetzen. Elo weisen mir d'Gesamtzuel vun den Ufroen am ausgewielten ZĂ€itintervall.

Loosst eis den "Aggregatioun" WÀert op "Sum Bucket" Ànneren, wat eis erlaabt Daten fir erfollegrÀich an net erfollegrÀich Ufroen ze kombinéieren. Am Eemer -> Aggregatiounsblock, wielt d'Aggregatioun duerch "Filteren" a setzt d'Filterung duerch "StatusCode>= 400". An am Feld "Custom Label" weisen mir eisen Numm vum Indikator fir e méi verstÀndleche Display an der Legend op der Grafik an an der allgemenger Lëscht.

Andeems Dir op de KnÀppchen "Update" ënner dem Astellungsblock klickt, kréie mir eng Grafik mat Problemufroen.

Wann Dir op de Krees nieft der Legend klickt, erschéngt eng Fënster an dÀr Dir d'Faarf vun de Sailen Ànneren kënnt.

Loosst eis elo Daten iwwer erfollegrÀich Ufroen an d'Diagramm addéieren. An der Rubrik "Metrics", klickt op de "Add" KnÀppchen a wielt "Y-Achs".

An der erstallt Metrik maache mir déiselwecht Astellunge wéi fir falsch Ufroen. Nëmmen am Filter spezifizéiere mir "statusCode <400".

Andeems Dir d'Faarf vun der neier Kolonn Ànnert, kréie mir e Display vum VerhÀltnis vu problemateschen an erfollegrÀichen Ufroen.

Andeems Dir op de "SpĂ€icheren" KnĂ€ppchen uewen um Ăcran klickt an den Numm spezifizĂ©iert, gesi mir dĂ©i Ă©ischt Diagramm um Dashboard.

Donnéeën Table
Betruecht elo d'Tabelle Vue "Daten Dësch". Loosst eis en Dësch erstellen mat enger Lëscht vun all den URLen déi gefrot goufen an d'Zuel vun deenen Ufroen. Wéi mat der Vertikal Bar Beispill, wielt mir als éischt eng Datequell.

Duerno gëtt en Dësch mat enger Kolonn um Bildschierm ugewisen, deen d'Gesamtzuel vun Ufroe fir de gewielten ZÀitintervall weist.

Mir wÀerten nëmmen de Block "Buckets" Ànneren. Klickt op de "Add" KnÀppchen a wielt "Split Reihen".

Am Feld "Aggregatioun" wielt "Begrëffer". An am erschéngen Feld "Field" wielt "url.keyword".

Andeems Dir den "Url" WÀert am Feld "Custom Label" spezifizéiert an op "Update" klickt, kréie mir déi gewënscht Tabell mat der Unzuel vun Ufroe fir jiddereng vun den URLen fir déi gewielte Period.

Um Top vun der Ăcran, klickt op de "SpĂ€icheren" KnĂ€ppchen erĂ«m an uginn den Numm vun der Tabell, zum Beispill URLen. Loosst eis zrĂ©ck op den Dashboard goen a bĂ©id Vue erstallt gesinn.

Schafft mat Dashboard
Wann Dir den Dashboard erstellt, setze mir nëmmen d'Haaptvisiounsparameter an den Displayobjekt Astellunge fest. Et mécht kee Sënn Daten fir Filteren an Objekter ze spezifizéieren, zum Beispill "Datumbereich", "Filteren duerch Useragent", "Filteren no Ufroland", asw. Et ass vill méi bequem fir déi gewënscht ZÀitperiod ze spezifizéieren oder déi néideg Filteren an der Ufro Panel ze setzen, déi iwwer den Objeten lÀit.
![]()
D'Filtere, dĂ©i op dĂ«sem Panel bĂ€igefĂŒĂŒgt ginn, ginn op de ganzen Dashboard applizĂ©iert, an all Displayobjekter ginn am Aklang mat den aktuellen gefilterten DonnĂ©eĂ«n nei opgebaut.
Konklusioun
Kibana ass e mĂ€chtegt Tool dat Iech erlaabt all Daten op eng praktesch ManĂ©ier ze visualisĂ©ieren. Ech hu probĂ©iert d'Astellung vun den zwou Haaptarten vum Display ze weisen. Awer aner Zorte sinn op eng Ă€hnlech ManĂ©ier konfigurĂ©iert. An den Iwwerfloss vun Astellungen, dĂ©i ech "hannert de Kulissen" hannerlooss hunn, erlaabt Iech ganz flexibel Charts ze personalisĂ©ieren fir Ăr Besoinen ze passen.
Source: will.com
