Halo, jenengku Eugene, aku pimpinan tim B2B ing Citymobil. Salah sawijining tugas tim kita yaiku ndhukung integrasi kanggo pesen taksi saka mitra, lan kanggo njamin layanan sing stabil, kita kudu ngerti apa sing kedadeyan ing layanan mikro. Lan kanggo iki, sampeyan kudu terus ngawasi log.
Ing Citymobil, kita nggunakake tumpukan ELK (ElasticSearch, Logstash, Kibana) kanggo nggarap log, lan jumlah data sing teka ana akeh banget. Nemokake masalah ing panjalukan sing bisa katon sawise panyebaran kode anyar cukup angel. Lan kanggo identifikasi visual, Kibana duwe bagean Dashboard.
Ana sawetara artikel babagan HabrΓ© kanthi conto carane nyiyapake tumpukan ELK kanggo nampa lan nyimpen data, nanging ora ana bahan sing cocog kanggo nggawe Dashboard. Mulane, aku pengin nuduhake carane nggawe perwakilan visual data adhedhasar log mlebu ing Kibana.
imbuhan
Kanggo nggawe luwih cetha, aku nggawe gambar Docker karo ELK lan Filebeat. Lan diselehake ing wadhah cilik
Kloning repositori konfigurasi docker-compose
lan setelan ELK, lan miwiti karo printah docker-compose up
. Sengaja ora nambahi kunci -d
kanggo ndeleng kemajuan tumpukan ELK.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Yen kabeh wis dikonfigurasi kanthi bener, mula kita bakal weruh entri ing log (mbok menawa ora langsung, proses mbukak wadhah kanthi tumpukan kabeh bisa njupuk sawetara menit):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Miturut alamat localhost:5061
Kibana kudu mbukak.
Siji-sijine sing kudu dikonfigurasi yaiku nggawe Pola Indeks kanggo Kibana kanthi informasi babagan data sing bakal ditampilake. Kanggo nindakake iki, kita bakal nindakake panjalukan curl utawa nindakake sawetara tumindak ing antarmuka grafis.
$ 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"}}'
Nggawe Pola Indeks liwat GUI
Kanggo ngatur, pilih bagean Temokake ing menu kiwa, lan menyang kaca nggawe pola indeks.
Kanthi ngeklik tombol "Gawe pola indeks", kita tekan kaca nggawe indeks. Ing kolom "Jeneng pola indeks", ketik "logstash-*". Yen kabeh wis dikonfigurasi kanthi bener, ing ngisor Kibana bakal nuduhake indeks sing ana ing aturan kasebut.
Ing kaca sabanjure, pilih kolom kunci kanthi cap wektu, ing kasus kita @timestamp
.
Iki bakal mbukak kaca setelan indeks, nanging ora ana tindakan maneh sing dibutuhake saka kita saiki.
Saiki kita bisa pindhah menyang bagean Temokake maneh, ing ngendi kita bakal weruh entri log.
Dashboard
Ing menu kiwa, klik ing bagean nggawe Dashboard lan menyang kaca sing cocog.
Klik ing "Gawe dashboard anyar" lan tekan kaca kanggo nambah obyek menyang Dashboard.
Klik ing tombol "Gawe anyar", lan sistem bakal njaluk sampeyan milih jinis tampilan data. Kibana wis nomer akeh, nanging kita bakal katon ing nggawe perwakilan grafis saka "Vertikal Bar" lan tabular "Data Tabel". Jinis presentasi liyane dikonfigurasi kanthi cara sing padha.
Sawetara obyek sing kasedhiya diwenehi label B lan E, sing tegese format kasebut eksperimen utawa ing tes beta. Suwe-suwe, format kasebut bisa diganti utawa ilang saka Kibana.
Bar vertikal
Kanggo conto "Bar Vertikal", ayo nggawe histogram rasio status respon sing sukses lan ora kasil saka layanan kita. Ing pungkasan setelan, kita entuk grafik ing ngisor iki:
Kita bakal nggolongake kabeh panjalukan kanthi status respon <400 minangka sukses, lan>= 400 minangka masalah.
Kanggo nggawe grafik "Bar Vertikal", kita kudu milih sumber data. Pilih Pola Indeks sing digawe sadurunge.
Kanthi gawan, grafik solid siji bakal katon sawise milih sumber data. Ayo diatur.
Ing pamblokiran "Ember", pencet tombol "Tambah", pilih "X-asis" lan nyiyapake sumbu X. Ayo disisihake stempel wektu kanggo panrimo entri ing log. Ing kolom "Aggregation", pilih "Histogram Tanggal", lan ing "Field" pilih "@timestamp", nuduhake lapangan wektu. Ayo ninggalake "interval minimal" ing negara "Otomatis", lan bakal kanthi otomatis nyetel tampilan kita.
Kanthi ngeklik tombol "Update", kita bakal weruh grafik kanthi jumlah panjaluk saben 30 detik.
Saiki ayo nyiyapake kolom ing sadawane sumbu Y. Saiki kita nampilake jumlah total panjalukan ing interval wektu sing dipilih.
Ayo ngganti nilai "Agregasi" dadi "Sum Bucket", sing bakal ngidini kita nggabungake data kanggo panjaluk sing sukses lan ora kasil. Ing Bucket -> Agregasi blok, pilih panggabungan dening "Filters" lan nyetel nyaring dening "statusCode>= 400". Lan ing kolom "Label khusus", kita nuduhake jeneng indikator kanggo tampilan sing luwih dingerteni ing legenda ing grafik lan ing dhaptar umum.
Kanthi ngeklik tombol "Update" ing blok setelan, kita bakal entuk grafik kanthi panjaluk masalah.
Yen sampeyan ngeklik bunder ing jejere legenda, jendhela bakal katon ing ngendi sampeyan bisa ngganti warna kolom.
Saiki ayo nambah data babagan panjalukan sing sukses menyang grafik. Ing bagean "Metrik", klik tombol "Tambah" banjur pilih "Y-axis".
Ing metrik sing digawe, kita nggawe setelan sing padha karo panjaluk sing salah. Mung ing saringan kita nemtokake "statusCode <400".
Kanthi ngganti warna kolom anyar, kita entuk tampilan rasio panjaluk sing bermasalah lan sukses.
Kanthi ngeklik tombol "Simpen" ing sisih ndhuwur layar lan nemtokake jeneng, kita bakal weruh grafik pisanan ing Dashboard.
Tabel Data
Saiki nimbang tampilan tabular "Tabel Data". Ayo nggawe tabel kanthi dhaptar kabeh URL sing dijaluk lan jumlah panjaluk kasebut. Minangka conto Bar Vertikal, kita pisanan milih sumber data.
Sawise iku, tabel kanthi siji kolom bakal ditampilake ing layar, sing nuduhake jumlah total panjalukan kanggo interval wektu sing dipilih.
Kita mung bakal ngganti blok "Ember". Klik tombol "Tambah" banjur pilih "Split rows".
Ing lapangan "Agregasi", pilih "Ketentuan". Lan ing kolom sing katon "Field" pilih "url.keyword".
Kanthi nemtokake nilai "Url" ing kolom "Label khusus" lan ngeklik "Update", kita bakal entuk tabel sing dikarepake kanthi jumlah panjalukan kanggo saben URL kanggo periode wektu sing dipilih.
Ing sisih ndhuwur layar, klik tombol "Simpen" maneh lan nemtokake jeneng tabel, contone Urls. Ayo bali menyang Dashboard lan ndeleng loro tampilan digawe.
Nggarap Dashboard
Nalika nggawe Dashboard, kita mung nyetel paramèter tampilan utama ing setelan obyek tampilan. Ora ana gunane kanggo nemtokake data kanggo saringan ing obyek, contone, "rentang tanggal", "nyaring dening agen pangguna", "nyaring miturut negara panyuwunan", lsp. Luwih trep kanggo nemtokake wektu sing dikarepake utawa nyetel panyaring sing dibutuhake ing panel pitakon, sing ana ing ndhuwur obyek.
Filter-filter sing ditambahake ing panel iki bakal ditrapake ing kabeh Dashboard, lan kabeh obyek tampilan bakal dibangun maneh miturut data sing disaring.
kesimpulan
Kibana minangka alat sing kuat sing ngidini sampeyan nggambarake data apa wae kanthi cara sing trep. Aku nyoba kanggo nuduhake setelan saka rong jinis utama tampilan. Nanging jinis liyane dikonfigurasi kanthi cara sing padha. Lan turah mbrawah saka setelan sing aku ninggalake "konco pemandangan" bakal ngidini sampeyan kanggo flexibly ngatur grafik sing cocog karo kabutuhan.
Source: www.habr.com