Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү

Салам, менин атым Евгений, мен Citymobilда B2B командасынын лидеримин. Биздин команданын милдеттеринин бири - өнөктөштөрдөн таксиге заказ берүү үчүн интеграцияларды колдоо жана туруктуу тейлөөнү камсыз кылуу үчүн биз ар дайым биздин микросервистерде эмне болуп жатканын түшүнүшүбүз керек. Ал эми бул үчүн дайыма журналдарды көзөмөлдөө керек.

Citymobilде биз журналдар менен иштөө үчүн ELK стекин (ElasticSearch, Logstash, Kibana) колдонобуз жана ал жакка келген маалыматтардын көлөмү чоң. Жаңы кодду жайылткандан кийин пайда болушу мүмкүн болгон суроо-талаптардын бул массасынан көйгөйлөрдү табуу абдан кыйын. Алардын визуалдык идентификациясы үчүн Кибанада Dashboard бөлүмү бар.

Маалыматтарды кабыл алуу жана сактоо үчүн ELK стекин кантип орнотуу керектиги жөнүндө мисалдар менен Habré боюнча бир нече макалалар бар, бирок башкаруу тактасын түзүү боюнча тиешелүү материалдар жок. Ошондуктан, мен Кибанадагы кирген журналдардын негизинде маалыматтардын визуалдык өкүлчүлүгүн кантип түзүүнү көрсөткүм келет.

тууралоо

Аны айкыныраак кылуу үчүн мен ELK жана Filebeat менен Docker сүрөтүн түздүм. Ал эми кичинекей идишке салып койду программа Go'до, бул биздин мисал үчүн сыноо журналдарын жаратат. Мен ELK конфигурациясын майда-чүйдөсүнө чейин сүрөттөп бербейм, ал жөнүндө Habréде жетиштүү жазылган.

Конфигурация репозиторийин клондоштуруу docker-compose жана ELK орнотуулары, жана буйрук менен ишке киргизүү docker-compose up. Ачкычты атайылап кошпойт -dELK стекинин жүрүшүн көрүү үчүн.

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 Кибана ачуу керек.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Биз конфигурациялашыбыз керек болгон бир гана нерсе - Кибана үчүн Индекс үлгүсүн түзүү, кандай маалыматтарды көрсөтүү керектиги жөнүндө маалымат. Бул үчүн, биз 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 аркылуу индекс үлгүсүн түзүү
Конфигурациялоо үчүн сол менюдан Discover бөлүмүн тандап, Индекс үлгүсүн түзүү барагына өтүңүз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
"Индекс үлгүсүн түзүү" баскычын басуу менен биз индексти түзүү барагына келебиз. "Индекс үлгү аты" талаасына "logstash-*" киргизиңиз. Эгер баары туура конфигурацияланса, төмөндө Кибана эрежеге туура келген индекстерди көрсөтөт.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Кийинки бетте убакыт белгиси бар негизги талааны тандаңыз, биздин учурда бул @timestamp.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Ушуну менен индекстин жөндөөлөр барагы ачылат, бирок бизден мындан ары эч кандай аракет талап кылынбайт.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү

Эми биз кайрадан Discover бөлүмүнө бара алабыз, анда биз журнал жазууларын көрөбүз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү

бөлмө

Сол менюда, панелди түзүү бөлүмүн чыкылдатып, тиешелүү бетке өтүңүз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
"Жаңы панелди түзүү" баскычын чыкылдатып, Куралдар тактасына объекттерди кошуу барагына өтүңүз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
"Жаңы түзүү" баскычын чыкылдатыңыз, ошондо система маалымат дисплей түрүн тандоону сунуштайт. Кибанада алардын саны көп, бирок биз "Вертикал тилкенин" графикалык көрүнүшүн жана таблицадагы "Маалымат таблицасын" түзүүнү карайбыз. Презентациянын башка түрлөрү да ушундай жол менен конфигурацияланган. 
Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Айрым жеткиликтүү объекттер B жана E деп белгиленет, бул формат эксперименталдык же бета тестирлөөдө экенин билдирет. Убакыттын өтүшү менен формат Кибанадан өзгөрүшү же толугу менен жок болушу мүмкүн.

Вертикал тилке

"Вертикал тилке" мисалы үчүн, биздин кызматтын ийгиликтүү жана ийгиликсиз жооп статустарынын катышынын гистограммасын түзөлү. Орнотуулардын аягында биз төмөнкү графикти алабыз:

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Жооп статусу < 400 болгон бардык сурамдарды ийгиликтүү жана >= 400 көйгөйлүү катары классификациялайбыз.

"Вертикал тилке" диаграммасын түзүү үчүн биз маалымат булагын тандообуз керек. Биз мурда түзгөн Индекс үлгүсүн тандаңыз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Демейки боюнча, маалымат булагын тандагандан кийин бир катуу график пайда болот. Келиңиз, аны орнотобуз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
"Челектер" блогунда "Кошуу" баскычын басыңыз, "X-asis" тандап, X огунун орнотуңуз. Журналга жазууларды кабыл алуу үчүн убакыт белгилерин бөлүп алалы. "Агрегация" талаасында "Дата гистограммасын" тандаңыз, ал эми "Талаада" убакыт талаасын көрсөтүү менен "@timestamp" тандаңыз. Келгиле, "Минималдуу интервалды" "Авто" абалында калтыралы, ал биздин дисплейге автоматтык түрдө ылайыкталат. 

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
"Жаңыртуу" баскычын чыкылдатуу менен, биз ар бир 30 секунд сайын сурамдардын саны менен графикти көрөбүз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Эми Y огу боюнча мамычаларды орнотолу.Эми биз тандалган убакыт аралыгында сурамдардын жалпы санын көрсөтүп жатабыз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Ийгиликтүү жана ийгиликсиз суроо-талаптар үчүн маалыматтарды бириктирүүгө мүмкүндүк берүүчү "Агрегация" маанисин "Колумдук чака" деп өзгөртөлү. Чака -> Агрегация блогунда "Чыпкалар" боюнча топтоону тандаңыз жана "statusCode >= 400" боюнча чыпкалоону орнотуңуз. Ал эми "Ыңгайлаштырылган энбелги" талаасында диаграммадагы жана жалпы тизмедеги легендада түшүнүктүүраак көрсөтүү үчүн индикатордун аталышын көрсөтөбүз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Орнотуулар блогунун астындагы "Жаңыртуу" баскычын чыкылдатуу менен, биз көйгөй сурамдары менен графикти алабыз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Эгерде сиз легенданын жанындагы тегеректи бассаңыз, тилкелердин түсүн өзгөртө турган терезе пайда болот.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Эми диаграммага ийгиликтүү сурамдар боюнча маалыматтарды кошолу. "Метрика" бөлүмүндө "Кошуу" баскычын чыкылдатып, "Y огу" тандаңыз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Түзүлгөн метрикада биз туура эмес суроо-талаптардагыдай эле орнотууларды жасайбыз. Чыпкада гана биз "statusCode < 400" көрсөтөбүз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Жаңы тилкенин түсүн өзгөртүү менен биз көйгөйлүү жана ийгиликтүү сурамдардын катышын көрсөтөбүз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Экрандын жогору жагындагы "Сактоо" баскычын чыкылдатып, атын көрсөтүү менен, биз панелдин биринчи диаграммасын көрөбүз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү

Маалыматтар таблицасы

Эми "Маалымат таблицасы" таблицалык көрүнүшүн карап көрөлү. Келгиле, бардык суралган URL'дердин тизмеси жана алардын саны менен таблица түзөлү. Vertical Bar мисалындай эле, биз адегенде маалымат булагын тандайбыз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Андан кийин экранда бир тилкеси бар таблица пайда болот, анда тандалган убакыт аралыгы үчүн сурамдардын жалпы саны көрсөтүлөт.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Биз "Челектер" блогун гана өзгөртөбүз. "Кошуу" баскычын чыкылдатып, "Сатарларды бөлүүнү" тандаңыз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
"Агрегация" талаасында "Шарттарды" тандаңыз. Ал эми пайда болгон талаада "Талаа" тандоо "url.keyword".

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
"Ыңгайлаштырылган энбелги" талаасында "Url" маанисин көрсөтүү менен жана "Жаңыртуу" баскычын чыкылдатуу менен, биз тандалган убакыт аралыгында URL'дердин ар бири үчүн суроо-талаптардын саны менен каалаган таблицаны алабыз.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Экрандын жогору жагындагы "Сактоо" баскычын дагы бир жолу чыкылдатып, таблицанын атын көрсөтүңүз, мисалы Urls. Келгиле, аспаптар тактасына кайрылып, түзүлгөн эки көрүнүштү көрөлү.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү

Dashboard менен иштөө

Куралдар тактасын түзүүдө биз дисплей объектинин жөндөөлөрүндө негизги көрүнүш параметрлерин гана орнотобуз. Объекттердеги чыпкалар үчүн маалыматтарды көрсөтүүнүн мааниси жок, мисалы, "күн диапазону", "колдонуучу агент боюнча чыпкалоо", "суроо-өлкө боюнча чыпкалоо" ж.б. Объекттердин үстүндө жайгашкан суроо панелинде керектүү убакыт аралыгын көрсөтүү же керектүү чыпкалоону коюу алда канча ыңгайлуу.

Журналдарга мониторинг жүргүзүү үчүн Кибанада башкаруу тактасын түзүү
Бул панелге кошулган чыпкалар толугу менен Башкаруу тактасына колдонулат жана бардык дисплей объекттери чыныгы чыпкаланган маалыматтарга ылайык кайра курулат.

жыйынтыктоо

Kibana - бул кандайдыр бир маалыматты ыңгайлуу жол менен визуалдаштырууга мүмкүндүк берген күчтүү курал. Мен дисплейдин эки негизги түрүн орнотууну көрсөтүүгө аракет кылдым. Бирок башка түрлөрү окшош жол менен конфигурацияланган. Жана мен "көшөгө артында" калтырган орнотуулардын көптүгү сизге диаграммаларды өзүңүздүн муктаждыктарыңызга ылайыкташтырууга абдан ийкемдүү мүмкүнчүлүк берет.

Source: www.habr.com

Комментарий кошуу