Crearea unui Dashboard în Kibana pentru monitorizarea logurilor

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor

Bună, mă numesc Evgheni, sunt liderul echipei B2B la Citymobil. Una dintre sarcinile echipei noastre este suportul pentru integrările cererii de taxi de la parteneri, iar pentru a asigura un serviciu stabil, trebuie mereu să înțelegem ce se întâmplă în microserviciile noastre. Iar pentru asta, trebuie să monitorizăm constant jurnalele.

La Citymobil, pentru a lucra cu jurnalele, utilizăm stiva ELK (ElasticSearch, Logstash, Kibana), iar volumul de date care ajunge acolo este enorm. Găsirea problemelor care pot apărea după desfășurarea unui cod nou în această masă de cereri este destul de complicată. Iar pentru a le evidenția vizual, în Kibana există un tab Dashboard.

Pe Habr există destul de multe articole cu exemple despre cum să configurezi stiva ELK pentru a primi și a stoca date, dar nu există materiale actuale despre crearea unui Dashboard. De aceea, vreau să arăt cum se creează o reprezentare vizuală a datelor în Kibana, pe baza jurnalelor primite.

Configurare

Pentru a fi mai clar, am creat o imagine Docker cu ELK și Filebeat. Și am integrat în container o mică program aplicație scrisă în Go, care, pentru exemplul nostru, va genera jurnale de test. Nu voi descrie în detaliu configurarea ELK, pe Habr sunt suficiente informații despre asta.

Clonăm repository-ul cu configurația docker-compose și setările ELK și îl pornim cu comanda docker-compose up. Intenționat nu adaug cheia -d, pentru a vedea procesul de funcționare al stivei ELK.

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

Dacă totul este configurat corect, în jurnale ar trebui să vedem o înregistrare (poate nu imediat, procesul de lansare a containerului cu întreaga stivă poate dura câteva minute):

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

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

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Singurul lucru pe care trebuie să-l configurăm este să creăm un Index Pattern pentru Kibana cu informații despre datele care trebuie afișate. Pentru aceasta, vom efectua o cerere curl sau vom face 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 Index Pattern prin interfața grafică
Pentru configurare, alegem din meniul din stânga secțiunea Discover, și ajungem la pagina de creare a Index pattern-ului.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Apăsând butonul „Create index pattern”, ajungem pe pagina de creare a indexului. În câmpul „Index pattern name” introducem „logstash-*”. Dacă totul este configurat corect, mai jos Kibana va arăta indici care se încadrează în regulă.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Pe pagina următoare, alegem câmpul cheie cu marcajul temporal, în cazul nostru acesta este @timestamp.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
În rezultat, va apărea pagina de setări a indexului, însă pentru moment nu sunt necesare acțiuni suplimentare din partea noastră.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor

Acum putem reveni la secțiunea Discover, unde vom vedea înregistrările jurnalelor.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor

Tabloul de bord

În meniul din stânga, facem clic pe secțiunea de creare a Dashboard-ului și ajungem pe pagina corespunzătoare.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Facem clic pe «Create new dashboard» și ajungem pe pagina de adăugare a obiectelor în Dashboard.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Facem clic pe butonul «Create new», iar sistemul ne va solicita să alegem modul de afișare a datelor. În Kibana există o mulțime, dar vom analiza crearea reprezentării grafice «Vertical Bar» și a tabelului «Data Table». Celelalte tipuri de reprezentare se configurează în mod similar. 
Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Unele obiecte disponibile au etichetele B și E — aceasta înseamnă că formatul este experimental sau în etapa de testare beta. În timp, formatul se poate schimba sau poate dispărea complet din Kibana.

Bară verticală

Pentru exemplul «Vertical Bar», vom crea un histogramă a raportului între statusurile de răspuns reușite și nereușite ale serviciului nostru. La finalul configurărilor, vom obține următorul grafic:

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
La reușite, vom include toate cererile cu statusul de răspuns = 400.

Pentru a crea graficul «Vertical Bar», trebuie să alegem sursa de date. Alegem Index Pattern-ul pe care l-am creat anterior.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Implicit, după alegerea sursei de date, va apărea un grafic continuu. Să-l configurăm.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
În blocul «Buckets», facem clic pe butonul «Add», alegem «X-axis» și configurăm axa X. Vor fi afișate marcajele temporale ale înregistrărilor în jurnal. La „Aggregation”, alegem „Date Histogram”, iar la „Field” alegem „@timestamp”, care indică câmpul temporal. „Minimum interval” îl lăsăm pe „Auto”, iar acesta se va adapta automat la afișarea noastră. 

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
După ce facem clic pe butonul «Update», vom vedea graficul cu numărul de cereri la fiecare 30 de secunde.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Acum să configurăm coloanele pe axa Y. În prezent, vedem numărul total de cereri în intervalul de timp ales.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Vom schimba valoarea „Aggregation” pe „Sum Bucket”, care ne va permite să combinăm datele din cererile reușite și nereușite. În blocul Bucket -> Aggregation, alegem agregarea prin „Filters” și setăm filtrarea pe „statusCode >= 400”. Iar în câmpul „Custom label” specificăm denumirea indicatorului nostru pentru o afișare mai clară în legendă pe grafic și în lista generală.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
După ce facem clic pe butonul «Update» sub blocul de setări, vom obține graficul cu cererile problematice.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Dacă apăsați pe cercul din jurul legendei, va apărea o fereastră în care puteți schimba culoarea coloanelor.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Acum vom adăuga pe grafic date despre interogările de succes. În secțiunea „Metrics” apăsați butonul „Add” și selectați „Y-axis”.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
În metrica creată, vom face aceleași setări ca și pentru interogările eronate. Doar că în filtru vom specifica „statusCode < 400”.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Schimbând culoarea noului coloană, vom obține o reprezentare a proporției între interogările problematice și cele de succes.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Apăsând în partea de sus a ecranului pe butonul „Save” și specificând un nume, vom vedea pe Dashboard primul grafic.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor

Tabel de date

Acum să luăm în considerare prezentarea tabelară „Data Table”. Vom crea un tabel cu lista tuturor URL-urilor pentru care au fost efectuate interogări și numărul acestor interogări. La fel ca în exemplul cu Vertical Bar, mai întâi alegem sursa de date.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
După aceasta, pe ecran va apărea un tabel cu o singură coloană, care arată numărul total de interogări pentru intervalul de timp selectat.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Vom modifica doar blocul „Buckets”. Apăsăm butonul „Add” și alegem „Split rows”.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
În câmpul „Aggregation” alegem „Terms”. În câmpul care apare, alegem „url.keyword”.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Specificând în câmpul „Custom label” valoarea „Url” și apăsând „Update”, vom obține tabelul dorit cu numărul de interogări pentru fiecare URL în intervalul de timp selectat.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
În partea de sus a ecranului vom apăsa din nou pe butonul „Save” și vom specifica numele tabelului, de exemplu, Urls. Ne întoarcem la Dashboard și vedem ambele vizualizări create.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor

Lucrul cu Dashboard

Când am creat Dashboard-ul, în setările obiectelor de vizualizare am stabilit doar parametrii de bază. Nu are sens să specificăm în obiecte date pentru filtre, cum ar fi „intervalul de date”, „filtrarea după useragent”, „filtrarea după țara interogării” etc. Este mult mai convenabil să specificați intervalul de timp dorit sau să stabiliți filtrarea necesară în panoul de interogare, care se află deasupra obiectelor.

Crearea unui Dashboard în Kibana pentru monitorizarea logurilor
Filtrele adăugate în acest panou se vor aplica întregului Dashboard, iar toate obiectele de vizualizare vor fi reorganizate în conformitate cu datele filtrate actuale.

Concluzie

Kibana este un instrument puternic care permite vizualizarea oricăror date într-un format convenabil. Am încercat să arăt configurarea a două tipuri de vizualizare de bază. Dar și alte tipuri se configurează într-un mod similar. Iar multitudinea de setări pe care le-am lăsat „în umbră” vă va permite să personalizați graficile foarte flexibil în funcție de nevoile dumneavoastră.

Sursa: habr.com

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster