Բարև, իմ անունը Յուջին է, ես B2B թիմի ղեկավար եմ Citymobil-ում: Մեր թիմի խնդիրներից մեկն է աջակցել գործընկերներին տաքսի պատվիրելու ինտեգրումներին, և կայուն ծառայություն ապահովելու համար մենք միշտ պետք է հասկանանք, թե ինչ է կատարվում մեր միկրոսերվիսներում։ Եվ դրա համար անհրաժեշտ է անընդհատ վերահսկել տեղեկամատյանները:
Citymobil-ում մենք օգտագործում ենք ELK ստեկը (ElasticSearch, Logstash, Kibana) տեղեկամատյանների հետ աշխատելու համար, և այնտեղ եկող տվյալների քանակը հսկայական է: Հարցումների այս զանգվածում խնդիրներ գտնելը, որոնք կարող են հայտնվել նոր կոդի տեղակայումից հետո, բավականին դժվար է: Եվ նրանց տեսողական նույնականացման համար Kibana-ն ունի Dashboard բաժին:
Habré-ում բավականին շատ հոդվածներ կան՝ օրինակներով, թե ինչպես կարելի է ստեղծել ELK stack՝ տվյալներ ստանալու և պահելու համար, բայց չկան համապատասխան նյութեր Dashboard ստեղծելու վերաբերյալ: Հետևաբար, ես ուզում եմ ցույց տալ, թե ինչպես կարելի է ստեղծել տվյալների տեսողական ներկայացում՝ հիմնվելով Kibana-ում մուտքային տեղեկամատյանների վրա:
հարմարեցում
Ավելի պարզ դարձնելու համար ես ստեղծել եմ Docker պատկեր ELK-ով և Filebeat-ով: Եվ դրեց կոնտեյներով մի փոքր
Կլոնավորեք կազմաձևման պահոցը docker-compose
և ELK կարգավորումները և գործարկեք այն հրամանով docker-compose up
. Դիտավորյալ բանալի չավելացնելը -d
տեսնել ELK stack-ի առաջընթացը:
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
Եթե ամեն ինչ ճիշտ կազմաձևված է, ապա մենք կտեսնենք մուտքագրում տեղեկամատյաններում (գուցե ոչ անմիջապես, ամբողջ կույտով կոնտեյներ գործարկելու գործընթացը կարող է տևել մի քանի րոպե).
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
Հասցեով localhost:5061
Կիբանան պետք է բացվի։
Միակ բանը, որ մենք պետք է կազմաձևենք, Kibana-ի համար Index Pattern-ի ստեղծումն է՝ տեղեկատվությամբ, թե ինչ տվյալներ պետք է ցուցադրվեն: Դա անելու համար մենք կկատարենք curl հարցումը կամ գրաֆիկական ինտերֆեյսում կիրականացնենք մի շարք գործողություններ:
$ 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"}}'
GUI-ի միջոցով ինդեքսային օրինակի ստեղծում
Կարգավորելու համար ձախ ընտրացանկում ընտրեք «Բացահայտեք» բաժինը և անցեք «Ինդեքսի օրինաչափության ստեղծման» էջ:
Սեղմելով «Ստեղծել ինդեքսի օրինաչափություն» կոճակը՝ հասնում ենք ինդեքս ստեղծելու էջին։ «Index pattern name» դաշտում մուտքագրեք «logstash-*»: Եթե ամեն ինչ ճիշտ է կազմաձևված, Kibana-ի ներքևում ցույց կտան կանոնների տակ գտնվող ինդեքսները:
Հաջորդ էջում ընտրեք ժամանակի դրոշմով բանալի դաշտը, մեր դեպքում դա այդպես է @timestamp
.
Սա կբացի ինդեքսի կարգավորումների էջը, բայց այս պահին մեզանից որևէ այլ գործողություն չի պահանջվում:
Այժմ մենք կարող ենք նորից գնալ Discover բաժին, որտեղ կտեսնենք գրանցամատյանների գրառումները:
Կարգավորման հարթակ
Ձախ մենյուում սեղմեք Dashboard-ի ստեղծում բաժինը և անցեք համապատասխան էջ։
Կտտացրեք «Ստեղծեք նոր վահանակ» և անցեք էջ՝ վահանակում օբյեկտներ ավելացնելու համար:
Սեղմեք «Ստեղծել նոր» կոճակը, և համակարգը կհուշի ձեզ ընտրել տվյալների ցուցադրման տեսակը: Kibana-ն ունի դրանց մեծ քանակություն, բայց մենք կանդրադառնանք «Ուղղահայաց գծի» գրաֆիկական ներկայացման և «Տվյալների աղյուսակի» աղյուսակային պատկերի ստեղծմանը: Ներկայացման այլ տեսակներ կազմաձևված են նույն ձևով:
Որոշ մատչելի օբյեկտներ պիտակավորված են B և E, ինչը նշանակում է, որ ձևաչափը փորձնական է կամ բետա փորձարկման մեջ: Ժամանակի ընթացքում ձևաչափը կարող է փոխվել կամ ամբողջությամբ անհետանալ Kibana-ից:
Ուղղահայաց բար
«Ուղղահայաց բարի» օրինակի համար եկեք ստեղծենք մեր ծառայության հաջող և անհաջող արձագանքման կարգավիճակների հարաբերակցության հիստոգրամ: Կարգավորումների վերջում մենք ստանում ենք հետևյալ գրաֆիկը.
Մենք բոլոր հարցումները կդասակարգենք պատասխանի կարգավիճակով < 400 որպես հաջողված, և >= 400 որպես խնդրահարույց:
«Ուղղահայաց բար» գծապատկեր ստեղծելու համար մենք պետք է ընտրենք տվյալների աղբյուր: Ընտրեք Index Pattern-ը, որը մենք ստեղծել ենք ավելի վաղ:
Լռելյայնորեն, տվյալների աղբյուր ընտրելուց հետո կհայտնվի մեկ ամուր գրաֆիկ: Եկեք կարգավորենք այն:
«Դույլեր» բլոկում սեղմեք «Ավելացնել» կոճակը, ընտրեք «X-asis» և կարգավորեք X առանցքը: Եկեք մի կողմ դնենք գրանցամատյանում գրառումների ստացման ժամանակային դրոշմները: «Aggregation» դաշտում ընտրել «Date Histogram», իսկ «Field»՝ «@timestamp»՝ նշելով ժամանակի դաշտը։ Եկեք թողնենք «Նվազագույն միջակայքը» «Ավտո» վիճակում, և այն ավտոմատ կերպով կհարմարվի մեր էկրանին:
Սեղմելով «Թարմացնել» կոճակը, մենք կտեսնենք 30 վայրկյանը մեկ հարցումների քանակով գրաֆիկ։
Այժմ եկեք կարգավորենք սյունակները Y առանցքի երկայնքով: Այժմ մենք ցուցադրում ենք հարցումների ընդհանուր թիվը ընտրված ժամանակային միջակայքում:
Եկեք փոխենք «Aggregation» արժեքը «Sum Bucket»-ի, ինչը թույլ կտա մեզ միավորել տվյալները հաջող և անհաջող հարցումների համար: Bucket -> Aggregation բլոկում ընտրեք ագրեգացիան ըստ «Filters» և սահմանեք զտումը ըստ «statusCode >= 400»: Իսկ «Պատվերով պիտակ» դաշտում մենք նշում ենք ցուցիչի անունը՝ գծապատկերում և ընդհանուր ցանկում ավելի հասկանալի ցուցադրման համար:
Սեղմելով «Թարմացնել» կոճակը կարգավորումների բլոկի տակ, մենք կստանանք խնդրահարույց հարցումների գրաֆիկ:
Եթե սեղմեք լեգենդի կողքին գտնվող շրջանագծի վրա, կհայտնվի պատուհան, որտեղ կարող եք փոխել սյունակների գույնը:
Այժմ եկեք աղյուսակում ավելացնենք հաջողված հարցումների տվյալները: «Չափանիշներ» բաժնում սեղմեք «Ավելացնել» կոճակը և ընտրեք «Y-axis»:
Ստեղծված չափման մեջ մենք կատարում ենք նույն կարգավորումները, ինչ սխալ հարցումների դեպքում: Միայն ֆիլտրում մենք նշում ենք «statusCode < 400»:
Նոր սյունակի գույնը փոխելով՝ մենք ստանում ենք խնդրահարույց և հաջողված հարցումների հարաբերակցության ցուցադրում։
Սեղմելով էկրանի վերևում գտնվող «Պահպանել» կոճակը և նշելով անունը, մենք կտեսնենք վահանակի առաջին գծապատկերը:
Տվյալների աղյուսակ
Այժմ դիտարկենք «Տվյալների աղյուսակ» աղյուսակային տեսքը: Եկեք ստեղծենք աղյուսակ՝ բոլոր պահանջվող URL-ների և այդ հարցումների քանակի ցանկով: Ինչպես ուղղահայաց բարի օրինակում, մենք նախ ընտրում ենք տվյալների աղբյուրը:
Դրանից հետո էկրանին կցուցադրվի մեկ սյունակով աղյուսակ, որը ցույց է տալիս ընտրված ժամանակային միջակայքի հարցումների ընդհանուր թիվը:
Մենք կփոխենք միայն «Դույլեր» բլոկը։ Կտտացրեք «Ավելացնել» կոճակը և ընտրեք «Տողերի բաժանում»:
«Համախմբում» դաշտում ընտրեք «Պայմաններ»: Իսկ հայտնված «Field» դաշտում ընտրեք «url.keyword»:
«Custom label» դաշտում նշելով «Url» արժեքը և սեղմելով «Update»՝ մենք կստանանք ցանկալի աղյուսակը՝ յուրաքանչյուր URL-ի համար ընտրված ժամանակահատվածի հարցումների քանակով:
Էկրանի վերևում կրկին սեղմեք «Պահպանել» կոճակը և նշեք աղյուսակի անվանումը, օրինակ՝ Urls: Եկեք վերադառնանք Dashboard և տեսնենք ստեղծված երկու դիտումները:
Աշխատեք վահանակի հետ
Dashboard-ը ստեղծելիս ցուցադրման օբյեկտի կարգավորումներում մենք սահմանում ենք միայն դիտման հիմնական պարամետրերը: Օբյեկտներում ֆիլտրերի համար տվյալներ նշելն անիմաստ է, օրինակ՝ «ամսաթվերի միջակայք», «զտում ըստ օգտագործողի գործակալի», «զտում ըստ հարցումի երկրի» և այլն: Շատ ավելի հարմար է նշել ցանկալի ժամանակահատվածը կամ սահմանել անհրաժեշտ զտումը հարցման վահանակում, որը գտնվում է օբյեկտների վերևում:
Այս վահանակում ավելացված զտիչները կկիրառվեն ամբողջ վահանակի վրա, և ցուցադրվող բոլոր օբյեկտները կվերակառուցվեն իրական զտված տվյալների համաձայն:
Ամփոփում
Kibana-ն հզոր գործիք է, որը թույլ է տալիս հարմար ձևով պատկերացնել ցանկացած տվյալ: Ես փորձեցի ցույց տալ ցուցադրման երկու հիմնական տեսակների կարգավորումը: Բայց մյուս տեսակները կազմաձևված են նույն ձևով: Եվ պարամետրերի առատությունը, որը ես թողեցի «կուլիսների հետևում», թույլ կտա ձեզ շատ ճկուն կերպով հարմարեցնել գծապատկերները՝ ձեր կարիքներին համապատասխան:
Source: www.habr.com