Kreiranje kontrolne table u Kibani za praćenje dnevnika

Kreiranje kontrolne table u Kibani za praćenje dnevnika

Zdravo, moje ime je Eugene, ja sam vođa B2B tima u Citymobilu. Jedan od zadataka našeg tima je podrška integracijama za naručivanje taksija od partnera, a kako bismo osigurali stabilnu uslugu, uvijek moramo razumjeti šta se dešava u našim mikroservisima. A za to morate stalno pratiti dnevnike.

U Citymobilu koristimo ELK stack (ElasticSearch, Logstash, Kibana) za rad sa logovima, a količina podataka koja tamo dolazi je ogromna. Pronalaženje problema u ovoj masi zahtjeva koji se mogu pojaviti nakon implementacije novog koda je prilično teško. A za njihovu vizuelnu identifikaciju, Kibana ima odjeljak Dashboard.

Na Habré-u postoji dosta članaka s primjerima kako postaviti ELK stek za primanje i pohranjivanje podataka, ali nema relevantnih materijala o kreiranju Dashboarda. Stoga želim pokazati kako napraviti vizualni prikaz podataka na osnovu ulaznih dnevnika u Kibani.

podešavanje

Da bi bilo jasnije, napravio sam Docker sliku sa ELK-om i Filebeatom. I stavljen u kontejner mali program u Go, koji će za naš primjer generirati testne dnevnike. Neću detaljno opisivati ​​konfiguraciju ELK-a, o tome ima dovoljno napisanog na Habréu.

Klonirajte konfiguracijsko spremište docker-compose i ELK postavke i pokrenite ga naredbom docker-compose up. Namjerno ne dodaje ključ -dda vidite napredak ELK steka.

git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up

Ako je sve ispravno konfigurirano, tada ćemo vidjeti unos u zapisnicima (možda ne odmah, proces pokretanja spremnika s cijelim stekom može potrajati nekoliko minuta):

{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}

Po adresi localhost:5061 Kibana bi trebalo da se otvori.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Kreiranje kontrolne table u Kibani za praćenje dnevnika
Jedina stvar koju trebamo konfigurirati je kreiranje Index Patterna za Kibana sa informacijama o tome koje podatke prikazati. Da bismo to učinili, izvršit ćemo curl zahtjev ili izvršiti niz radnji u grafičkom sučelju.

$ 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"}}'

Kreiranje indeksnog uzorka preko GUI
Da biste konfigurirali, odaberite odjeljak Otkrij u lijevom izborniku i idite na stranicu za kreiranje indeksnog uzorka.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Klikom na dugme "Kreiraj obrazac indeksa" dolazimo do stranice za kreiranje indeksa. U polje "Index pattern name" unesite "logstash-*". Ako je sve ispravno konfigurirano, ispod Kibana će se prikazati indeksi koji potpadaju pod pravilo.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Na sljedećoj stranici odaberite ključno polje sa vremenskom oznakom, u našem slučaju jeste @timestamp.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Ovo će otvoriti stranicu sa postavkama indeksa, ali u ovom trenutku od nas nisu potrebne nikakve daljnje radnje.

Kreiranje kontrolne table u Kibani za praćenje dnevnika

Sada možemo ponovo otići u odjeljak Discover, gdje ćemo vidjeti unose dnevnika.

Kreiranje kontrolne table u Kibani za praćenje dnevnika

Komandna tabla

U lijevom meniju kliknite na odjeljak Kreiranje kontrolne ploče i idite na odgovarajuću stranicu.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Kliknite na "Kreiraj novu kontrolnu tablu" i idite na stranicu za dodavanje objekata na Dashboard.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Kliknite na dugme "Kreiraj novo" i sistem će od vas tražiti da odaberete vrstu prikaza podataka. Kibana ih ima veliki broj, ali ćemo se osvrnuti na kreiranje grafičkog prikaza "Vertikalne trake" i tabelarne "Tabele podataka". Druge vrste prezentacije su konfigurisane na sličan način. 
Kreiranje kontrolne table u Kibani za praćenje dnevnika
Neki dostupni objekti su označeni B i E, što znači da je format eksperimentalni ili u beta testiranju. S vremenom se format može promijeniti ili potpuno nestati iz Kibana.

Vertikalna traka

Za primjer „Vertikalna traka“, napravimo histogram omjera uspješnog i neuspješnog odgovora statusa našeg servisa. Na kraju podešavanja dobijamo sledeći grafikon:

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Sve zahtjeve sa statusom odgovora < 400 klasificirat ćemo kao uspješne, a >= 400 kao problematične.

Da bismo kreirali "Okomiti trak" grafikon, moramo odabrati izvor podataka. Odaberite Index Pattern koji smo kreirali ranije.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Podrazumevano, jedan čvrsti grafikon će se pojaviti nakon odabira izvora podataka. Hajde da ga postavimo.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
U bloku "Buckets" pritisnite dugme "Dodaj", izaberite "X-asis" i podesite osu X. Odvojimo vremenske oznake za prijem unosa u dnevnik. U polju "Aggregation" odaberite "Date Histogram", a u "Field" odaberite "@timestamp", što označava vremensko polje. Ostavimo "Minimalni interval" u stanju "Auto" i on će se automatski prilagoditi našem displeju. 

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Klikom na dugme "Ažuriraj" vidjet ćemo grafikon sa brojem zahtjeva svakih 30 sekundi.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Sada postavimo kolone duž ose Y. Sada prikazujemo ukupan broj zahtjeva u odabranom vremenskom intervalu.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Promijenimo vrijednost "Aggregation" u "Sum Bucket", što će nam omogućiti da kombinujemo podatke za uspješne i neuspješne zahtjeve. U bloku Bucket -> Aggregation, odaberite agregaciju prema "Filteri" i postavite filtriranje prema "statusCode >= 400". A u polju "Prilagođena oznaka" označavamo naše ime indikatora za razumljiviji prikaz u legendi na grafikonu i na općoj listi.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Klikom na dugme „Ažuriraj“ ispod bloka postavki, dobićemo grafikon sa zahtevima problema.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Ako kliknete na krug pored legende, pojavit će se prozor u kojem možete promijeniti boju kolona.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Sada dodajmo podatke o uspješnim zahtjevima na grafikon. U odjeljku "Metrike" kliknite na dugme "Dodaj" i odaberite "Y-axis".

Kreiranje kontrolne table u Kibani za praćenje dnevnika
U kreiranoj metrici vršimo iste postavke kao i za pogrešne zahtjeve. Samo u filteru navodimo "statusCode < 400".

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Promjenom boje nove kolone dobijamo prikaz omjera problematičnih i uspješnih zahtjeva.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Klikom na dugme „Sačuvaj“ na vrhu ekrana i navođenjem imena, videćemo prvi grafikon na kontrolnoj tabli.

Kreiranje kontrolne table u Kibani za praćenje dnevnika

Tabela podataka

Sada razmotrite tabelarni prikaz "Tabela podataka". Kreirajmo tabelu sa listom svih traženih URL-ova i brojem tih zahtjeva. Kao i kod primjera vertikalne trake, prvo biramo izvor podataka.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Nakon toga, na ekranu će se prikazati tabela sa jednom kolonom koja prikazuje ukupan broj zahtjeva za odabrani vremenski interval.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Promijenit ćemo samo blok "Buckets". Kliknite na dugme "Dodaj" i odaberite "Podijeli redove".

Kreiranje kontrolne table u Kibani za praćenje dnevnika
U polju "Agregacija" odaberite "Uslovi". I u polju "Field" koji se pojavi odaberite "url.keyword".

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Određivanjem vrijednosti "Url" u polju "Custom label" i klikom na "Ažuriraj", dobićemo željenu tabelu sa brojem zahtjeva za svaki od URL-ova za odabrani vremenski period.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Na vrhu ekrana ponovo kliknite na dugme "Sačuvaj" i navedite naziv tabele, na primer URL adrese. Vratimo se na kontrolnu tablu i vidimo kreirana oba pogleda.

Kreiranje kontrolne table u Kibani za praćenje dnevnika

Rad sa kontrolnom pločom

Prilikom kreiranja Dashboard-a, postavljamo samo glavne parametre prikaza u postavkama objekata prikaza. Nema smisla specificirati podatke za filtere u objektima, na primjer, "datumski raspon", "filtriranje po korisničkom agentu", "filtriranje prema zemlji zahtjeva" itd. Mnogo je zgodnije odrediti željeni vremenski period ili postaviti potrebno filtriranje u panelu upita, koji se nalazi iznad objekata.

Kreiranje kontrolne table u Kibani za praćenje dnevnika
Filtri dodani na ovom panelu bit će primijenjeni na cijelu Dashboard, a svi prikazni objekti će biti ponovo izgrađeni u skladu sa stvarnim filtriranim podacima.

zaključak

Kibana je moćan alat koji vam omogućava da vizualizirate sve podatke na prikladan način. Pokušao sam prikazati postavke dva glavna tipa prikaza. Ali druge vrste su konfigurirane na sličan način. A obilje postavki koje sam ostavio “iza kulisa” omogućit će vam da vrlo fleksibilno prilagodite grafikone prema vašim potrebama.

izvor: www.habr.com

Dodajte komentar