Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele

Bună ziua, mă numesc Eugene, sunt lider de echipă B2B la Citymobil. Una dintre sarcinile echipei noastre este să sprijine integrările pentru comandarea unui taxi de la parteneri, iar pentru a asigura un serviciu stabil, trebuie să înțelegem mereu ce se întâmplă în microserviciile noastre. Și pentru aceasta trebuie să monitorizați în mod constant jurnalele.

În Citymobil, folosim stiva ELK (ElasticSearch, Logstash, Kibana) pentru a lucra cu jurnalele, iar cantitatea de date care vin acolo este uriașă. Găsirea problemelor în această masă de solicitări care pot apărea după implementarea noului cod este destul de dificilă. Și pentru identificarea lor vizuală, Kibana are o secțiune Dashboard.

Există destul de multe articole despre Habré cu exemple despre cum să configurați o stivă ELK pentru a primi și stoca date, dar nu există materiale relevante pentru crearea unui tablou de bord. Prin urmare, vreau să arăt cum să creez o reprezentare vizuală a datelor bazată pe jurnalele primite în Kibana.

ajustare

Pentru a fi mai clar, am creat o imagine Docker cu ELK și Filebeat. Și pus într-un recipient un mic programul în Go, care pentru exemplul nostru va genera jurnalele de testare. Nu voi descrie în detaliu configurația lui ELK, este suficient scris despre ea pe Habré.

Clonează depozitul de configurare docker-compose și setările ELK și lansați-l cu comanda docker-compose up. Nu adăugați intenționat o cheie -dpentru a vedea progresul stivei ELK.

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

Dacă totul este configurat corect, atunci vom vedea o intrare în jurnale (poate nu imediat, procesul de lansare a unui container cu întreaga stivă poate dura câteva minute):

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

adresa localhost:5061 Kibana ar trebui să se deschidă.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Singurul lucru pe care trebuie să-l configuram este să creăm un model de index pentru Kibana cu informații despre datele de afișat. Pentru a face acest lucru, vom executa o cerere de curl sau vom efectua o serie de acțiuni în interfața grafică.

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

Crearea unui model de index prin GUI
Pentru a configura, selectați secțiunea Descoperiți din meniul din stânga și ajungeți la pagina de creare a modelului de index.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Făcând clic pe butonul „Creare model de index”, ajungem la pagina de creare a indexului. În câmpul „Nume model de index”, introduceți „logstash-*”. Dacă totul este configurat corect, mai jos Kibana va afișa indecșii care se încadrează sub regulă.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Pe pagina următoare, selectați câmpul cheie cu un marcaj de timp, în cazul nostru este @timestamp.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Aceasta va afișa pagina de setări de index, dar nu este necesară nicio acțiune suplimentară din partea noastră în acest moment.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele

Acum putem merge din nou la secțiunea Discover, unde vom vedea intrările de jurnal.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele

Contul Meu

În meniul din stânga, faceți clic pe secțiunea de creare a tabloului de bord și ajungeți la pagina corespunzătoare.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Faceți clic pe „Creați un nou tablou de bord” și ajungeți la pagina pentru adăugarea de obiecte la tabloul de bord.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Faceți clic pe butonul „Creați nou”, iar sistemul vă va solicita să selectați tipul de afișare a datelor. Kibana are un număr mare de ele, dar ne vom uita la crearea unei reprezentări grafice a „Barei verticale” și a unui „Tabel de date” tabelar. Alte tipuri de prezentare sunt configurate în mod similar. 
Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Unele obiecte disponibile sunt etichetate B și E, ceea ce înseamnă că formatul este experimental sau în testare beta. În timp, formatul se poate schimba sau dispărea complet din Kibana.

Bară verticală

Pentru exemplul „Bară verticală”, să creăm o histogramă a raportului dintre stările de răspuns reușite și cele nereușite ale serviciului nostru. La sfârșitul setărilor, obținem următorul grafic:

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Vom clasifica toate solicitările cu o stare de răspuns < 400 ca fiind reușite și >= 400 ca problematice.

Pentru a crea o diagramă „Bară verticală”, trebuie să selectăm o sursă de date. Selectați modelul de index pe care l-am creat mai devreme.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
În mod implicit, un singur grafic solid va apărea după selectarea unei surse de date. Hai să-l setăm.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
În blocul „Găleți”, apăsați butonul „Adăugați”, selectați „X-asis” și configurați axa X. Să lăsăm deoparte marcajele de timp pentru primirea înregistrărilor în jurnal. În câmpul „Agregare”, selectați „Histograma dată”, iar în „Câmp” selectați „@timestamp”, indicând câmpul de timp. Să lăsăm „Interval minim” în starea „Automat”, iar acesta se va adapta automat la afișajul nostru. 

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Făcând clic pe butonul „Actualizare”, vom vedea un grafic cu numărul de solicitări la fiecare 30 de secunde.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Acum să setăm coloanele de-a lungul axei Y. Acum afișăm numărul total de solicitări în intervalul de timp selectat.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Să modificăm valoarea „Agregare” la „Sum Bucket”, ceea ce ne va permite să combinăm datele pentru solicitările reușite și nereușite. În blocul Bucket -> Aggregation, selectați agregarea după „Filtre” și setați filtrarea după „statusCode >= 400”. Și în câmpul „Etichetă personalizată”, indicăm numele nostru al indicatorului pentru o afișare mai ușor de înțeles în legenda de pe diagramă și în lista generală.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Făcând clic pe butonul „Actualizare” de sub blocul de setări, vom obține un grafic cu solicitările de probleme.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Dacă dați clic pe cercul de lângă legendă, va apărea o fereastră în care puteți schimba culoarea coloanelor.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Acum să adăugăm în diagramă date despre solicitările reușite. În secțiunea „Metrici”, faceți clic pe butonul „Adăugați” și selectați „Axa Y”.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
În metrica creată, facem aceleași setări ca și pentru solicitările eronate. Doar în filtru specificăm „statusCode < 400”.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Schimbând culoarea noii coloane, obținem o afișare a raportului dintre solicitările problematice și cele reușite.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Făcând clic pe butonul „Salvare” din partea de sus a ecranului și specificând numele, vom vedea prima diagramă pe tabloul de bord.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele

Tabel de date

Acum luați în considerare vizualizarea tabelară „Tabel de date”. Să creăm un tabel cu o listă a tuturor adreselor URL care au fost solicitate și numărul acestor solicitări. Ca și în exemplul barei verticale, mai întâi selectăm o sursă de date.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
După aceea, pe ecran va fi afișat un tabel cu o coloană, care arată numărul total de solicitări pentru intervalul de timp selectat.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Vom schimba doar blocul „Găleți”. Faceți clic pe butonul „Adăugați” și selectați „Divizați rânduri”.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
În câmpul „Agregare”, selectați „Termeni”. Iar în câmpul apărut „Field” selectați „url.keyword”.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Specificând valoarea „Url” în câmpul „Etichetă personalizată” și făcând clic pe „Actualizare”, vom obține tabelul dorit cu numărul de solicitări pentru fiecare dintre adresele URL pentru perioada de timp selectată.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
În partea de sus a ecranului, faceți clic din nou pe butonul „Salvați” și specificați numele tabelului, de exemplu URL-uri. Să revenim la Tabloul de bord și să vedem ambele vizualizări create.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele

Lucrul cu Dashboard

La crearea tabloului de bord, setăm doar parametrii de vizualizare principali în setările obiectului de afișare. Nu are sens să specificați date pentru filtre în obiecte, de exemplu, „interval de date”, „filtrare după agent utilizator”, „filtrare după țara de solicitare”, etc. Este mult mai convenabil să specificați perioada de timp dorită sau să setați filtrarea necesară în panoul de interogări, care se află deasupra obiectelor.

Crearea unui tablou de bord în Kibana pentru a monitoriza jurnalele
Filtrele adăugate pe acest panou vor fi aplicate întregului tablou de bord, iar toate obiectele afișate vor fi reconstruite în conformitate cu datele reale filtrate.

Concluzie

Kibana este un instrument puternic care vă permite să vizualizați orice date într-un mod convenabil. Am încercat să arăt setarea celor două tipuri principale de afișare. Dar alte tipuri sunt configurate într-un mod similar. Și abundența de setări pe care le-am lăsat „în spatele scenei” vă va permite să personalizați foarte flexibil diagramele pentru a se potrivi nevoilor dvs.

Sursa: www.habr.com

Adauga un comentariu