Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log

Kumusta, ang pangalan ko ay Eugene, isa akong pinuno ng pangkat ng B2B sa Citymobil. Ang isa sa mga gawain ng aming team ay ang suportahan ang mga integrasyon para sa pag-order ng taxi mula sa mga kasosyo, at upang matiyak ang isang matatag na serbisyo, dapat naming palaging maunawaan kung ano ang nangyayari sa aming mga microservice. At para dito kailangan mong patuloy na subaybayan ang mga log.

Sa Citymobil, ginagamit namin ang ELK stack (ElasticSearch, Logstash, Kibana) para magtrabaho sa mga log, at ang dami ng data na darating doon ay napakalaki. Ang paghahanap ng mga problema sa ganitong dami ng mga kahilingan na maaaring lumitaw pagkatapos ng pag-deploy ng bagong code ay medyo mahirap. At para sa kanilang visual identification, may Dashboard na seksyon si Kibana.

Mayroong ilang mga artikulo sa HabrΓ© na may mga halimbawa kung paano mag-set up ng ELK stack upang makatanggap at mag-imbak ng data, ngunit walang mga nauugnay na materyales sa paggawa ng Dashboard. Samakatuwid, gusto kong ipakita kung paano lumikha ng visual na representasyon ng data batay sa mga papasok na log sa Kibana.

pag-aayos

Para mas malinaw, gumawa ako ng Docker na imahe na may ELK at Filebeat. At inilagay sa isang lalagyan ang isang maliit ang programa sa Go, na para sa aming halimbawa ay bubuo ng mga log ng pagsubok. Hindi ko ilalarawan nang detalyado ang pagsasaayos ng ELK, may sapat na nakasulat tungkol dito sa HabrΓ©.

I-clone ang config repository docker-compose at mga setting ng ELK, at ilunsad ito gamit ang command docker-compose up. Sinasadyang hindi magdagdag ng susi -dpara makita ang progreso ng ELK stack.

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

Kung ang lahat ay na-configure nang tama, pagkatapos ay makakakita kami ng isang entry sa mga log (marahil hindi kaagad, ang proseso ng paglulunsad ng isang lalagyan na may buong stack ay maaaring tumagal ng ilang minuto):

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

Sa pamamagitan ng address localhost:5061 Dapat buksan ni Kibana.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Ang tanging bagay na kailangan naming i-configure ay lumikha ng isang Index Pattern para sa Kibana na may impormasyon tungkol sa kung anong data ang ipapakita. Para magawa ito, magsasagawa kami ng curl request o magsasagawa ng serye ng mga aksyon sa graphical na interface.

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

Paglikha ng Index Pattern sa pamamagitan ng GUI
Upang i-configure, piliin ang seksyong Discover sa kaliwang menu, at pumunta sa pahina ng paglikha ng pattern ng Index.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa pamamagitan ng pag-click sa button na "Gumawa ng index pattern," mapupunta tayo sa pahina ng paglikha ng index. Sa field na "Pangalan ng index ng pattern," ilagay ang "logstash-*". Kung na-configure nang tama ang lahat, sa ibaba ng Kibana ay ipapakita ang mga index na nasa ilalim ng panuntunan.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa susunod na pahina, piliin ang key field na may timestamp, sa aming kaso ito ay @timestamp.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Ilalabas nito ang pahina ng mga setting ng index, ngunit walang karagdagang aksyon ang kinakailangan mula sa amin sa ngayon.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log

Ngayon ay maaari tayong pumunta muli sa seksyong Discover, kung saan makikita natin ang mga log entries.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log

Tapalodo

Sa kaliwang menu, mag-click sa seksyon ng paggawa ng Dashboard at pumunta sa kaukulang pahina.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Mag-click sa "Gumawa ng bagong dashboard" at pumunta sa pahina para sa pagdaragdag ng mga bagay sa Dashboard.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Mag-click sa pindutang "Lumikha ng bago", at ipo-prompt ka ng system na piliin ang uri ng pagpapakita ng data. Ang Kibana ay may malaking bilang ng mga ito, ngunit titingnan natin ang paglikha ng isang graphical na representasyon ng "Vertical Bar" at isang tabular na "Data Table". Ang iba pang mga uri ng pagtatanghal ay na-configure sa katulad na paraan. 
Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Ang ilang magagamit na mga bagay ay may label na B at E, na nangangahulugang ang format ay pang-eksperimento o nasa beta testing. Sa paglipas ng panahon, maaaring magbago o tuluyang mawala ang format sa Kibana.

patayong bar

Para sa halimbawa ng "Vertical Bar," gumawa tayo ng histogram ng ratio ng matagumpay at hindi matagumpay na mga status ng pagtugon ng aming serbisyo. Sa dulo ng mga setting, makuha namin ang sumusunod na graph:

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Uuriin namin ang lahat ng kahilingan na may status ng pagtugon < 400 bilang matagumpay, at >= 400 bilang may problema.

Para gumawa ng chart na "Vertical Bar," kailangan naming pumili ng data source. Piliin ang Index Pattern na ginawa namin kanina.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Bilang default, lalabas ang isang solidong graph pagkatapos pumili ng data source. I-set up natin ito.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa block na "Mga Bucket," pindutin ang button na "Add", piliin ang "X-asis" at i-set up ang X axis. Itabi natin ang mga timestamp para sa pagtanggap ng mga entry sa log. Sa field na "Pagsasama-sama," piliin ang "Histogram ng Petsa", at sa "Field" piliin ang "@timestamp", na nagpapahiwatig ng field ng oras. Iwanan natin ang "Minimum interval" sa "Auto" na estado, at awtomatiko itong ia-adjust sa ating display. 

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa pamamagitan ng pag-click sa button na "I-update," makakakita kami ng graph na may bilang ng mga kahilingan bawat 30 segundo.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Ngayon ay i-set up natin ang mga column sa kahabaan ng Y-axis. Ngayon ay ipinapakita namin ang kabuuang bilang ng mga kahilingan sa napiling agwat ng oras.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Baguhin natin ang halaga ng "Pagsasama-sama" sa "Sum Bucket", na magbibigay-daan sa amin na pagsamahin ang data para sa matagumpay at hindi matagumpay na mga kahilingan. Sa Bucket -> Aggregation block, piliin ang aggregation ayon sa "Mga Filter" at itakda ang pag-filter ayon sa "statusCode >= 400". At sa field na "Custom label", ipinapahiwatig namin ang aming pangalan ng indicator para sa isang mas naiintindihan na pagpapakita sa alamat sa chart at sa pangkalahatang listahan.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa pamamagitan ng pag-click sa pindutang "I-update" sa ilalim ng bloke ng mga setting, makakakuha kami ng isang graph na may mga kahilingan sa problema.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Kung nag-click ka sa bilog sa tabi ng alamat, lilitaw ang isang window kung saan maaari mong baguhin ang kulay ng mga column.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Ngayon, magdagdag tayo ng data sa mga matagumpay na kahilingan sa chart. Sa seksyong "Mga Sukatan," i-click ang button na "Magdagdag" at piliin ang "Y-axis."

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa ginawang sukatan, ginagawa namin ang parehong mga setting tulad ng para sa mga maling kahilingan. Sa filter lang namin tinukoy ang "statusCode < 400".

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa pamamagitan ng pagpapalit ng kulay ng bagong column, nakakakuha kami ng display ng ratio ng mga may problema at matagumpay na mga kahilingan.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa pamamagitan ng pag-click sa button na "I-save" sa tuktok ng screen at pagtukoy ng pangalan, makikita natin ang unang chart sa Dashboard.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log

Table Data

Ngayon isaalang-alang ang tabular view na "Data Table". Gumawa tayo ng table na may listahan ng lahat ng URL na hiniling at ang bilang ng mga kahilingang iyon. Tulad ng halimbawa ng Vertical Bar, pipili muna kami ng data source.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Pagkatapos nito, ang isang talahanayan na may isang column ay ipapakita sa screen, na nagpapakita ng kabuuang bilang ng mga kahilingan para sa napiling agwat ng oras.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Papalitan lang namin ang block na "Mga Balde". I-click ang button na "Add" at piliin ang "Split rows".

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa field na "Pagsasama-sama," piliin ang "Mga Tuntunin". At sa lumitaw na field na "Field" piliin ang "url.keyword".

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa pamamagitan ng pagtukoy sa halaga ng "Url" sa field na "Custom na label" at pag-click sa "I-update," makukuha namin ang gustong talahanayan na may bilang ng mga kahilingan para sa bawat isa sa mga URL para sa napiling yugto ng panahon.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Sa itaas ng screen, i-click muli ang button na "I-save" at tukuyin ang pangalan ng talahanayan, halimbawa Mga Url. Bumalik tayo sa Dashboard at tingnan ang parehong mga view na ginawa.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log

Nagtatrabaho sa Dashboard

Kapag gumagawa ng Dashboard, itinakda lang namin ang mga pangunahing parameter ng view sa mga setting ng display object. Walang saysay na tukuyin ang data para sa mga filter sa mga bagay, halimbawa, "hanay ng petsa", "pag-filter ayon sa useragent", "pag-filter ayon sa bansa ng kahilingan", atbp. Ito ay mas maginhawa upang tukuyin ang nais na yugto ng panahon o itakda ang kinakailangang pag-filter sa panel ng query, na matatagpuan sa itaas ng mga bagay.

Paggawa ng Dashboard sa Kibana para Subaybayan ang Mga Log
Ang mga filter na idinagdag sa panel na ito ay ilalapat sa buong Dashboard, at lahat ng mga display object ay muling itatayo alinsunod sa aktwal na na-filter na data.

Konklusyon

Ang Kibana ay isang makapangyarihang tool na nagbibigay-daan sa iyong mailarawan ang anumang data sa isang maginhawang paraan. Sinubukan kong ipakita ang setting ng dalawang pangunahing uri ng display. Ngunit ang iba pang mga uri ay naka-configure sa katulad na paraan. At ang kasaganaan ng mga setting na iniwan ko "sa likod ng mga eksena" ay magbibigay-daan sa iyong napaka-flexible na i-customize ang mga chart upang umangkop sa iyong mga pangangailangan.

Pinagmulan: www.habr.com

Magdagdag ng komento