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
Klon de Configuratiounsrepository docker-compose
an ELK Astellungen, a starten et mam Kommando docker-compose up
. Absicht net e Schlëssel derbäi -d
fir 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