Hei, nimeni on Eugene, olen B2B-tiimin johtaja Citymobilissa. Yksi tiimimme tehtävistä on tukea integraatioita taksin tilaamiseen yhteistyökumppaneilta, ja vakaan palvelun varmistamiseksi meidän on aina ymmärrettävä mitä mikropalveluissamme tapahtuu. Ja tätä varten sinun on jatkuvasti seurattava lokeja.
Citymobilissa käytämme ELK-pinoa (ElasticSearch, Logstash, Kibana) lokien kanssa työskentelyyn ja sinne tuleva datamäärä on valtava. Ongelmien löytäminen tästä massasta pyyntöjä, jotka voivat ilmetä uuden koodin käyttöönoton jälkeen, on melko vaikeaa. Niiden visuaalista tunnistamista varten Kibanassa on Dashboard-osio.
Habresta on useita artikkeleita, joissa on esimerkkejä ELK-pinon perustamisesta tietojen vastaanottamista ja tallentamista varten, mutta Dashboardin luomiseen ei ole asiaankuuluvaa materiaalia. Siksi haluan näyttää kuinka luoda visuaalinen esitys tiedoista saapuvien lokien perusteella Kibanassa.
säätö
Selvyyden vuoksi loin Docker-kuvan ELK:lla ja Filebeatilla. Ja laitetaan astiaan pieneen
Kloonaa asetusarkisto docker-compose
ja ELK-asetukset ja käynnistä se komennolla docker-compose up
. Tarkoituksella ei ole lisätty avainta -d
nähdäksesi ELK-pinon edistymisen.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Jos kaikki on määritetty oikein, näemme lokeissa merkinnän (ehkä ei heti, koko pinon sisältävän kontin käynnistäminen voi kestää useita minuutteja):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
osoite localhost:5061
Kibanan pitäisi avautua.
Ainoa asia, joka meidän on määritettävä, on luoda Kibanalle hakemistomalli, joka sisältää tiedot näytettävästä tiedosta. Tätä varten suoritamme curl-pyynnön tai suoritamme sarjan toimintoja graafisessa käyttöliittymässä.
$ 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"}}'
Indeksikuvion luominen graafisen käyttöliittymän kautta
Määritä asetukset valitsemalla vasemmanpuoleisesta valikosta Discover-osio ja siirtymällä hakemistokuvion luontisivulle.
Napsauttamalla "Luo hakemistomalli" -painiketta pääsemme indeksin luontisivulle. Kirjoita "Indeksin mallin nimi" -kenttään "logstash-*". Jos kaikki on määritetty oikein, Kibanan alla näytetään säännön alaiset indeksit.
Valitse seuraavalla sivulla avainkenttä aikaleimalla, meidän tapauksessamme se on @timestamp
.
Tämä tuo esiin hakemistoasetussivun, mutta emme vaadi lisätoimia tällä hetkellä.
Nyt voimme siirtyä uudelleen Discover-osioon, jossa näemme lokimerkinnät.
koontinäyttöön.
Napsauta vasemmanpuoleisessa valikossa Dashboardin luontiosaa ja siirry vastaavalle sivulle.
Napsauta "Luo uusi hallintapaneeli" ja siirry sivulle, jolla voit lisätä kohteita Dashboardiin.
Napsauta "Luo uusi" -painiketta, jolloin järjestelmä kehottaa sinua valitsemaan tietojen näyttötyypin. Kibanassa niitä on suuri määrä, mutta tarkastelemme graafisen esityksen luomista "pystypalkista" ja taulukkomuotoista "tietotaulukkoa". Muut esitystyypit konfiguroidaan samalla tavalla.
Jotkut saatavilla olevat objektit on merkitty B- ja E-merkinnöillä, mikä tarkoittaa, että muoto on kokeellinen tai betatestauksessa. Ajan myötä muoto voi muuttua tai hävitä kokonaan Kibanasta.
Pystypalkki
Luodaan "pystypalkki" -esimerkille histogrammi palvelumme onnistuneiden ja epäonnistuneiden vastaustilojen suhteesta. Asetusten lopussa saamme seuraavan kaavion:
Luokittelemme kaikki pyynnöt, joiden vastaustila on < 400, onnistuneiksi ja >= 400 ongelmallisiksi.
Pystypalkkikaavion luomiseksi meidän on valittava tietolähde. Valitse aiemmin luomamme hakemistomalli.
Oletusarvoisesti yksi kiinteä kaavio tulee näkyviin tietolähteen valinnan jälkeen. Perustetaan se.
Paina "Buckets"-lohkossa "Add"-painiketta, valitse "X-asis" ja aseta X-akseli.Jäätetään aikaleimat lokin merkintöjen vastaanottamiselle. Valitse "Aggregation"-kentässä "Date Histogram" ja "Field"-kentässä "@timestamp" osoittaen aikakentän. Jätetään "Minimiväli" "Auto"-tilaan, ja se mukautuu automaattisesti näyttöömme.
Napsauttamalla "Päivitä"-painiketta, näemme kaavion, jossa on pyyntöjen määrä 30 sekunnin välein.
Asetetaan nyt sarakkeet Y-akselille ja nyt näytetään pyyntöjen kokonaismäärä valitulla aikavälillä.
Muutetaan "Aggregation"-arvoksi "Sum Bucket", jonka avulla voimme yhdistää onnistuneiden ja epäonnistuneiden pyyntöjen tiedot. Valitse Bucket -> Aggregation -lohkossa koonti "Suodattimet" ja aseta suodatus "statusCode >= 400" mukaan. Ja "Mukautettu etiketti" -kentässä ilmoitamme ilmaisimen nimemme, jotta kaavion selitteessä ja yleisessä luettelossa näkyy ymmärrettävämpi näyttö.
Napsauttamalla asetuslohkon alla olevaa Päivitä-painiketta, saamme kaavion ongelmapyynnöistä.
Jos napsautat selitteen vieressä olevaa ympyrää, näkyviin tulee ikkuna, jossa voit muuttaa sarakkeiden väriä.
Lisätään nyt tiedot onnistuneista pyynnöistä kaavioon. Napsauta "Tiedot"-osiossa "Lisää"-painiketta ja valitse "Y-akseli".
Luodussa mittarissa teemme samat asetukset kuin virheellisille pyynnöille. Vain suodattimessa määritetään "statusCode < 400".
Muutamalla uuden sarakkeen väriä saamme ongelmallisten ja onnistuneiden pyyntöjen suhteen näytön.
Napsauttamalla "Tallenna" -painiketta näytön yläreunassa ja määrittämällä nimen, näemme ensimmäisen kaavion Dashboardissa.
data Table
Harkitse nyt taulukkonäkymää "Data Table". Luodaan taulukko, jossa on luettelo kaikista pyydetyistä URL-osoitteista ja pyyntöjen määrästä. Kuten pystysuorassa palkissa, valitsemme ensin tietolähteen.
Sen jälkeen näytölle tulee yhden sarakkeen taulukko, joka näyttää pyyntöjen kokonaismäärän valitulla aikavälillä.
Muutamme vain "Buckets"-lohkon. Napsauta "Lisää" -painiketta ja valitse "Jaa rivit".
Valitse Kokoonpano-kentästä Ehdot. Ja näkyviin tulevassa kentässä "Kenttä" valitse "url.keyword".
Määrittämällä "Url"-arvon "Muokattu tunniste" -kenttään ja napsauttamalla "Päivitä", saamme halutun taulukon, jossa on kunkin URL-osoitteen pyyntöjen määrä valitulta ajanjaksolta.
Napsauta näytön yläreunassa "Tallenna" -painiketta uudelleen ja määritä taulukon nimi, esimerkiksi URL-osoitteet. Palataan Dashboardiin ja katsotaan molemmat luodut näkymät.
Työskentely Dashboardin kanssa
Dashboardia luotaessa asetamme näyttöobjektin asetuksissa vain päänäkymän parametrit. Ei ole mitään järkeä määrittää tietoja suodattimille objekteissa, esimerkiksi "päivämäärä", "suodatus käyttäjäagentin mukaan", "suodatus pyyntömaan mukaan" jne. On paljon kätevämpää määrittää haluttu ajanjakso tai asettaa tarvittava suodatus kyselypaneelissa, joka sijaitsee objektien yläpuolella.
Tähän paneeliin lisätyt suodattimet otetaan käyttöön koko hallintapaneelissa, ja kaikki näyttöobjektit rakennetaan uudelleen todellisten suodatettujen tietojen mukaisesti.
Johtopäätös
Kibana on tehokas työkalu, jonka avulla voit visualisoida mitä tahansa dataa kätevästi. Yritin näyttää kahden näytön päätyypin asetukset. Mutta muut tyypit on määritetty samalla tavalla. Ja lukuisten asetusten ansiosta, jotka jätin "kulissien taakse", voit mukauttaa kaavioita erittäin joustavasti tarpeidesi mukaan.
Lähde: will.com