Hola, mi chjamu Eugene, sò un capu di squadra B2B in Citymobil. Unu di i compiti di a nostra squadra hè di sustene l'integrazioni per urdinà un taxi da i partenarii, è per assicurà un serviziu stabile, avemu sempre capisce ciò chì succede in i nostri microservizi. È per questu avete bisognu di monitorà constantemente i logs.
In Citymobil, usemu a pila ELK (ElasticSearch, Logstash, Kibana) per travaglià cù logs, è a quantità di dati chì venenu quì hè enormu. Truvà i prublemi in questa massa di richieste chì ponu appare dopu a implementazione di u novu codice hè abbastanza difficiule. È per a so identificazione visuale, Kibana hà una sezione Dashboard.
Ci sò uni pochi d'articuli nantu à Habré cù esempii di cumu stabilisce una pila ELK per riceve è almacenà e dati, ma ùn sò micca materiali pertinenti per creà un Dashboard. Dunque, vogliu dimustrà cumu creà una rapprisintazioni visuale di dati basati nantu à i logs entranti in Kibana.
cutter
Per fà più chjaru, aghju creatu una maghjina Docker cù ELK è Filebeat. È pusatu in un cuntainer un picculu
Clone u repository di cunfigurazione docker-compose
e paràmetri ELK, è lanciate cù u cumandimu docker-compose up
. Intenzionalmente ùn aghjunghje micca una chjave -d
per vede u prugressu di a pila ELK.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Se tuttu hè cunfiguratu bè, allora vedemu una entrata in i logs (forse micca immediatamente, u prucessu di lanciari un containeru cù tutta a pila pò piglià parechji minuti):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Per l'indirizzu localhost:5061
Kibana deve esse apertu.
L'unicu ciò chì avemu bisognu di cunfigurà hè di creà un Index Pattern per Kibana cù infurmazioni nantu à quali dati per vede. Per fà questu, eseguiremu una dumanda di curl o realizà una serie di azzioni in l'interfaccia grafica.
$ 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"}}'
Creazione di un Pattern Index via a GUI
Per cunfigurà, selezziunate a rùbbrica Scopre in u menù di manca, è accede à a pagina di creazione di mudelli di Index.
Cliccà nant'à u buttone "Crea un mudellu d'indici", ghjunghjemu à a pagina di creazione d'indici. In u campu "Index pattern name", entre "logstash-*". Se tuttu hè cunfiguratu currettamente, sottu Kibana mostrarà l'indici chì sò sottu à a regula.
In a pagina dopu, selezziunate u campu chjave cù un timestamp, in u nostru casu hè @timestamp
.
Questu hà da apparirà a pagina di paràmetri di l'indici, ma ùn ci hè micca bisognu di più azione per questu momentu.
Avà pudemu andà à a rùbbrica Scopre di novu, induve vedemu l'entrate di log.
Escrivania
In u menù di manca, cliccate nantu à a sezione di creazione di Dashboard è accede à a pagina currispondente.
Cliccate nant'à "Crea un novu dashboard" è accede à a pagina per aghjunghje oggetti à u Dashboard.
Cliccate nant'à u buttone "Crià novu", è u sistema vi invià à sceglie u tipu di mostra dati. Kibana hà un gran numaru di elli, ma avemu da circà à creà una rapprisintazioni gràfica di a "Barra Verticale" è una tabulare "Table di Dati". Altri tipi di presentazione sò cunfigurati in modu simili.
Certi ogetti dispunibuli sò tichjati B è E, chì significa chì u formatu hè sperimentale o in teste beta. À u tempu, u furmatu pò cambià o sparisce completamente da Kibana.
Barra verticale
Per l'esempiu di "Barra Verticale", creemu un histogramma di u rapportu di stati di risposta riescita è insuccessu di u nostru serviziu. À a fine di i paràmetri, avemu u graficu seguente:
Classificaremu tutte e dumande cù un statutu di risposta < 400 cum'è successu, è > = 400 cum'è problematicu.
Per creà una carta "Barra Verticale", avemu bisognu di selezziunà una fonte di dati. Selezziunate u Pattern Index chì avemu creatu prima.
Per automaticamente, un unicu graficu solidu apparirà dopu a selezzione di una fonte di dati. Fighjemu.
In u bloccu "Buckets", appughjà u buttone "Add", selezziunà "X-asis" è stallà l 'assi X. Andemu da latu i timestamps di voci in u log along it. In u campu "Aggregazione", selezziunate "Histogramma di data", è in u "Campu" selezziunate "@timestamp", indicà u campu di u tempu. Lasciemu "Intervallu minimu" in u statu "Auto", è si aghjustà automaticamente à a nostra visualizazione.
Cliccà nant'à u buttone "Update", avemu da vede un graficu cù u numeru di dumande ogni 30 seconde.
Avà cunfigurà e culonne longu l'assi Y. Avà vedemu u numeru tutale di richieste in l'intervallu di tempu sceltu.
Canciamu u valore "Aggregazione" à "Sum Bucket", chì ci permetterà di cumminà dati per e dumande riesciute è senza successu. In u bucket -> Agregazione, selezziunate l'agregazione per "Filtri" è stabilisce u filtru per "statusCode>= 400". È in u campu "Etichetta persunalizata", indichemu u nostru nome di l'indicatore per una visualizazione più comprensibile in a legenda nantu à a carta è in a lista generale.
Cliccà u buttone "Aggiornamentu" sottu u bloccu di paràmetri, avemu da ottene un graficu cù e dumande di prublema.
Se cliccate nant'à u circhiu accantu à a legenda, apparirà una finestra in quale pudete cambià u culore di e colonne.
Avà aghjustemu i dati nantu à e dumande successu à u graficu. In a rùbbrica "Metrics", cliccate nant'à u buttone "Add" è sceglie "Y-axis".
In a metrica creata, facemu i stessi paràmetri per e dumande erronee. Solu in u filtru avemu specificatu "statusCode < 400".
Cambiendu u culore di a nova colonna, avemu una visualizazione di u rapportu di e dumande problematiche è successu.
Cliccà u buttone "Salvà" in cima di u screnu è spicificendu u nome, avemu da vede u primu graficu nantu à u Dashboard.
Tabella di dati
Avà cunzidira a vista tabulare "Table di Dati". Creemu una tavula cù una lista di tutti l'URL chì sò stati dumandati è u numeru di quelli dumande. Cum'è cù l'esempiu di a barra verticale, prima selezziunate una fonte di dati.
Dopu quì, una tavula cù una colonna serà visualizata nantu à u screnu, chì mostra u numeru tutale di richieste per l'intervallu di tempu sceltu.
Avemu da cambià solu u bloccu "Buckets". Cliccate u buttone "Add" è selezziunate "Split rows".
In u campu "Aggregazione", selezziunate "Termini". È in u campu apparsu "Field" selezziunate "url.keyword".
Specificendu u valore "Url" in u campu "Etichetta persunalizata" è clicchendu "Update", uttene u tavulu desideratu cù u numeru di richieste per ognuna di l'URL per u periodu di tempu sceltu.
In cima di u screnu, cliccate nant'à u buttone "Salvà" torna è specificà u nome di a tavula, per esempiu Urls. Riturnemu à u Dashboard è vede e duie viste create.
U travagliu cù Dashboard
Quandu creanu u Dashboard, avemu stabilitu solu i paràmetri di vista principali in i paràmetri di l'ughjettu di visualizazione. Ùn hà micca sensu di specificà e dati per i filtri in l'uggetti, per esempiu, "intervallu di data", "filtru per useragent", "filtru per paese di dumanda", etc. Hè assai più còmuda di specificà u periodu di tempu desideratu o stabilisce u filtru necessariu in u pannellu di quistione, chì si trova sopra l'uggetti.
I filtri aghjuntu à stu pannellu seranu applicati à tuttu u Dashboard, è tutti l'uggetti di visualizazione seranu ricustruiti in cunfurmità cù i dati filtrati attuali.
cunchiusioni
Kibana hè un strumentu putente chì permette di visualizà ogni dati in una manera còmuda. Aghju pruvatu à vede l'impostazione di i dui tipi principali di visualizazione. Ma altri tipi sò cunfigurati in un modu simili. È l'abbundanza di paràmetri chì aghju lasciatu "darreri à l'scena" vi permetterà di persunalizà in modu assai flessibile i grafici per adattà à i vostri bisogni.
Source: www.habr.com