Pozdravljeni, ime mi je Eugene, sem vodja skupine B2B pri Citymobilu. Ena od nalog naše ekipe je podpora integracijam za naročanje taksija pri partnerjih, za zagotovitev stabilne storitve pa moramo vedno razumeti, kaj se dogaja v naših mikrostoritvah. In za to morate nenehno spremljati dnevnike.
V Citymobilu za delo z dnevniki uporabljamo sklad ELK (ElasticSearch, Logstash, Kibana) in količina podatkov, ki prihaja tja, je ogromna. Iskanje težav v tej množici zahtev, ki se lahko pojavijo po uvedbi nove kode, je precej težko. Za njihovo vizualno identifikacijo ima Kibana razdelek nadzorne plošče.
Na Habréju je kar nekaj člankov s primeri, kako nastaviti sklad ELK za sprejemanje in shranjevanje podatkov, ni pa nobenega ustreznega gradiva o ustvarjanju nadzorne plošče. Zato želim pokazati, kako ustvariti vizualno predstavitev podatkov na podlagi dohodnih dnevnikov v Kibani.
prilagoditev
Da bo bolj jasno, sem ustvaril sliko Docker z ELK in Filebeat. In postavljen v majhno posodo
Klonirajte repozitorij konfiguracij docker-compose
in nastavitve ELK ter ga zaženite z ukazom docker-compose up
. Namenoma ne dodam ključa -d
da vidite napredek sklada ELK.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Če je vse pravilno konfigurirano, bomo v dnevnikih videli vnos (morda ne takoj, postopek zagona vsebnika s celotnim skladom lahko traja nekaj minut):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Po naslovu localhost:5061
Kibana bi se morala odpreti.
Edina stvar, ki jo moramo konfigurirati, je ustvariti vzorec indeksa za Kibano z informacijami o tem, katere podatke prikazati. Da bi to naredili, bomo izvedli zahtevo curl ali izvedli niz dejanj v grafičnem vmesniku.
$ 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"}}'
Ustvarjanje vzorca indeksa prek GUI
Za konfiguracijo izberite razdelek Odkrij v levem meniju in pojdite na stran za ustvarjanje vzorca indeksa.
S klikom na gumb "Create index pattern" pridemo na stran za ustvarjanje indeksa. V polje "Ime vzorca indeksa" vnesite "logstash-*". Če je vse pravilno konfigurirano, bo spodaj Kibana prikazala indekse, ki spadajo pod pravilo.
Na naslednji strani izberite ključno polje s časovnim žigom, v našem primeru je @timestamp
.
S tem se bo prikazala stran z nastavitvami indeksa, vendar vam trenutno ni treba ukrepati.
Zdaj lahko znova odpremo razdelek Odkrij, kjer bomo videli vnose v dnevnik.
Splošno
V levem meniju kliknite razdelek Ustvarjanje nadzorne plošče in pojdite na ustrezno stran.
Kliknite »Ustvari novo nadzorno ploščo« in pojdite na stran za dodajanje predmetov na nadzorno ploščo.
Kliknite na gumb "Ustvari novo" in sistem vas bo pozval, da izberete vrsto prikaza podatkov. Kibana jih ima veliko, vendar si bomo ogledali ustvarjanje grafične predstavitve "Navpične črte" in tabelarične "Podatkovne tabele". Druge vrste predstavitve so konfigurirane na podoben način.
Nekateri razpoložljivi predmeti so označeni z B in E, kar pomeni, da je oblika eksperimentalna ali v beta testiranju. Sčasoma se lahko oblika spremeni ali popolnoma izgine iz Kibane.
Navpična vrstica
Za primer »Navpični stolpec« izdelajmo histogram razmerja uspešnih in neuspešnih odzivnih statusov naše storitve. Na koncu nastavitev dobimo naslednji graf:
Vse zahteve s statusom odgovora < 400 bomo razvrstili kot uspešne in >= 400 kot problematične.
Za ustvarjanje grafikona "Vertical Bar" moramo izbrati vir podatkov. Izberite vzorec indeksa, ki smo ga ustvarili prej.
Privzeto se po izbiri vira podatkov prikaže en sam poln graf. Postavimo ga.
V bloku "Buckets" pritisnite gumb "Add", izberite "X-asis" in nastavite os X. Odložimo časovne žige za prejem vnosov v dnevnik. V polju »Aggregation« izberite »Date Histogram« in v »Field« izberite »@timestamp«, pri čemer navedite časovno polje. Pustimo »Minimalni interval« v stanju »Samodejno« in samodejno se bo prilagodil našemu zaslonu.
S klikom na gumb »Posodobi« se nam prikaže graf s številom zahtevkov vsakih 30 sekund.
Sedaj nastavimo stolpce vzdolž osi Y. Sedaj prikažemo skupno število zahtevkov v izbranem časovnem intervalu.
Spremenimo vrednost »Aggregation« v »Sum Bucket«, kar nam bo omogočilo združevanje podatkov za uspešne in neuspešne zahteve. V bloku Bucket -> Aggregation izberite združevanje po »Filtrih« in nastavite filtriranje po »statusCode >= 400«. In v polju "Oznaka po meri" navedemo naše ime indikatorja za bolj razumljiv prikaz v legendi na grafikonu in na splošnem seznamu.
S klikom na gumb »Posodobi« pod blokom nastavitev bomo dobili graf z zahtevami za težave.
Če kliknete na krogec poleg legende, se prikaže okno, v katerem lahko spremenite barvo stolpcev.
Zdaj pa dodamo podatke o uspešnih zahtevah v grafikon. V razdelku »Metrike« kliknite gumb »Dodaj« in izberite »Os Y«.
V ustvarjeni metriki naredimo enake nastavitve kot pri napačnih zahtevah. Samo v filtru določimo "statusCode < 400".
S spremembo barve novega stolpca dobimo prikaz razmerja med problematičnimi in uspešnimi zahtevami.
S klikom na gumb »Shrani« na vrhu zaslona in določitvijo imena bomo videli prvi grafikon na nadzorni plošči.
Tabela podatkov
Zdaj razmislite o tabelarnem pogledu "Podatkovna tabela". Ustvarimo tabelo s seznamom vseh zahtevanih URL-jev in številom teh zahtev. Kot pri primeru z navpično vrstico najprej izberemo vir podatkov.
Po tem se na zaslonu prikaže tabela z enim stolpcem, ki prikazuje skupno število zahtev za izbrani časovni interval.
Spremenili bomo samo blok "Vedra". Kliknite gumb »Dodaj« in izberite »Razdeli vrstice«.
V polju "Združevanje" izberite "Pogoji". In v prikazanem polju "Polje" izberite "url.keyword".
Z vnosom vrednosti »Url« v polje »Oznaka po meri« in klikom na »Posodobi« dobimo želeno tabelo s številom zahtev za vsakega od URL-jev za izbrano časovno obdobje.
Na vrhu zaslona znova kliknite gumb »Shrani« in podajte ime tabele, na primer Urls. Vrnimo se na nadzorno ploščo in poglejmo ustvarjena oba pogleda.
Delo z nadzorno ploščo
Pri izdelavi nadzorne plošče v nastavitvah prikaznega objekta nastavimo samo parametre glavnega pogleda. Nima smisla podajati podatkov za filtre v objektih, na primer »datumski obseg«, »filtriranje po uporabniškem agentu«, »filtriranje po državi zahteve« itd. Veliko bolj priročno je določiti želeno časovno obdobje ali nastaviti potrebno filtriranje v poizvedovalni plošči, ki se nahaja nad predmeti.
Filtri, dodani na to ploščo, bodo uporabljeni na celotni nadzorni plošči in vsi prikazni objekti bodo ponovno zgrajeni v skladu z dejanskimi filtriranimi podatki.
Zaključek
Kibana je zmogljivo orodje, ki vam omogoča vizualizacijo vseh podatkov na priročen način. Poskušal sem prikazati nastavitev dveh glavnih vrst zaslona. Toda druge vrste so konfigurirane na podoben način. Obilje nastavitev, ki sem jih pustil »za prizori«, vam bo omogočilo zelo prilagodljivo prilagajanje grafikonov vašim potrebam.
Vir: www.habr.com