Биз Sportmaster мониторинги - кантип жана эмне менен

Биз продукт топторун түзүү стадиясында мониторинг системасын түзүү жөнүндө ойлонгон. Биздин ишибиз — эксплуатация бул коллективдерге кирбей тургандыгы айкын болду. Эмнеге андай?

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

Биз Sportmaster мониторинги - кантип жана эмне менен

Биздин команда өз кезегинде бири-бири менен абдан күчтүү интеграцияланган системалар менен иштейт: алардын ортосунда көптөгөн байланыштар бар, бул абдан чоң инфраструктура. Ал эми интернет-дүкөндүн иштеши ушул системалардын баарынан көз каранды (алардын бизде, демек, чоң саны бар).

Демек, биздин бөлүм эч бир командага тиешелүү эмес, бир аз четте жайгашкан экен. Бул бүтүндөй окуяда биздин милдетибиз маалыматтык системалардын кантип иштээрин, алардын функционалдуулугун, интеграциясын, программалык камсыздоосун, тармагын, аппараттык камсыздоосун жана мунун баары бири-бири менен кандай байланышта экенин ар тараптуу түшүнүү болуп саналат.

Биздин онлайн дүкөндөр иштеген платформа төмөнкүдөй көрүнөт:

  • алдыңкы
  • орто кызмат
  • кайра бюросу

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

Идеалында, ден-соолукка мониторинг жүргүзүү автоматташтырылган болушу керек. Жана биз мониторингге бул процесстин сөзсүз бөлүгү катары келдик. Башында ал алдыңкы бөлүк үчүн гана курулган, ал эми тармактык адистер, программалык камсыздоо жана аппараттык администраторлор өздөрүнүн катмар-катмар мониторинг системаларына ээ болгон жана азыр да бар. Бул адамдардын баары мониторингди өз деңгээлинде гана жүргүзүшкөн, эч кимде ар тараптуу түшүнүгү жок.

Мисалы, виртуалдык машина бузулуп калса, көпчүлүк учурда бул тууралуу аппараттык камсыздоо жана виртуалдык машина үчүн жооптуу администратор гана билет. Мындай учурларда, фронттук команда тиркеменин кыйроо фактысын көрдү, бирок виртуалдык машинанын кыйроосу жөнүндө маалымат жок болчу. Ал эми администратор кардар ким экенин биле алат жана бул виртуалдык машинада эмне иштеп жатканы жөнүндө болжолдуу түшүнүккө ээ болот, эгерде ал кандайдыр бир чоң долбоор болсо. Ал, кыязы, кичинекейлер жөнүндө билбейт. Кандай болгон күндө да, администратор ээсине барып, бул машинада эмне болгонун, эмнени калыбына келтириш керектигин жана эмнени өзгөртүү керектигин сурашы керек. Эгер чындап эле олуттуу бир нерсе бузулуп калса, алар тегерек-чети менен чуркай башташты - анткени системаны бүтүндөй эч ким көргөн эмес.

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

Системанын структурасы жана стек

Биз системаларыбыз үчүн бир нече мониторинг катмарларын аныктоо менен баштадык, анын ичинде метрикаларды чогултушубуз керек. Мына ушунун баарын бириктирүү керек болчу, биз биринчи этапта ушундай кылдык. Азыр бул этапта биз корреляцияны түзүү жана системалардын бири-бирине кандай таасир этээрин түшүнүү үчүн бардык катмарларыбызда эң жогорку сапаттагы метрика чогултууну аяктап жатабыз.

Тиркемени ишке киргизүүнүн алгачкы этаптарында комплекстүү мониторингдин жоктугу (биз аны системалардын көбү өндүрүштө турганда кура баштагандыктан) бүт платформага мониторинг жүргүзүү үчүн олуттуу техникалык карызыбыз бар экенине алып келди. Биз бир ИМ үчүн мониторингди орнотууга жана анын мониторингин деталдуу иштеп чыгууга көңүл бура алган жокпуз, анткени калган системалар бир нече убакытка чейин мониторингсиз калышмак. Бул көйгөйдү чечүү үчүн биз маалымат системасынын абалын катмар боюнча баалоо үчүн эң керектүү метрикалардын тизмесин аныктап, аны ишке ашырууга кириштик.

Ошондуктан, алар пилди бөлүктөргө бөлүүнү чечишти.

Биздин система төмөнкүлөрдөн турат:

  • аппараттык;
  • иштетүү системасы;
  • программалык камсыздоо;
  • Мониторинг колдонмосундагы UI бөлүктөрү;
  • бизнес көрсөткүчтөрү;
  • интеграциялык колдонмолор;
  • маалыматтык коопсуздук;
  • тармактар;
  • трафик балансы.

Биз Sportmaster мониторинги - кантип жана эмне менен

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

Ошентип, стек жөнүндө.

Биз Sportmaster мониторинги - кантип жана эмне менен

Биз ачык программалык камсыздоону колдонобуз. Борбордо биз Zabbix бар, аны биз биринчи кезекте эскертүү системасы катары колдонобуз. Бул инфраструктуранын мониторинги үчүн идеалдуу экенин баары билет. Бул эмнени түшүндүрөт? Дал ошол төмөн деңгээлдеги көрсөткүчтөр өзүнүн маалымат борборун кармаган ар бир компанияда (жана Sportmasterдин өзүнүн маалымат борборлору бар) - сервердин температурасы, эстутум абалы, рейд, тармактык түзүлүштүн көрсөткүчтөрү.

Биз Zabbixти командаларда активдүү колдонулган Telegram мессенжери жана Microsoft Teams менен бириктирдик. Zabbix чыныгы тармактын катмарын, аппараттык жана кээ бир программалык камсыздоону камтыйт, бирок бул панацея эмес. Биз бул маалыматтарды кээ бир башка кызматтардан байытып жатабыз. Мисалы, аппараттык деңгээлде биз виртуалдаштыруу системабызга API аркылуу түздөн-түз туташып, маалыматтарды чогултабыз.

Дагы эмне. Zabbixтен тышкары, биз Prometheus колдонобуз, ал бизге динамикалык чөйрө тиркемесинде көрсөткүчтөрдү көзөмөлдөөгө мүмкүндүк берет. Башкача айтканда, биз HTTP акыркы чекити аркылуу колдонмо көрсөткүчтөрүн ала алабыз жана ага кайсы метриканы жүктөш керек, кайсынысы жүктөлбөйт деп кабатырланбайбыз. Бул маалыматтардын негизинде аналитикалык сурамдарды иштеп чыгууга болот.

Башка катмарлар үчүн маалымат булактары, мисалы, бизнес көрсөткүчтөрү үч компонентке бөлүнөт.

Биринчиден, бул тышкы бизнес тутумдары, Google Analytics, биз журналдардан көрсөткүчтөрдү чогултабыз. Алардан биз жигердүү колдонуучулар, конверсиялар жана бизнеске тиешелүү бардык нерселер жөнүндө маалыматтарды алабыз. Экинчиден, бул UI мониторинг системасы. Бул кененирээк сүрөттөлүшү керек.

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

Жаңы команда түзүмү колдонмонун бардык иш-аракеттери өнүм командалары менен чектелгенин билдирет, ошондуктан биз таза тестирлөө жүргүзүүнү токтоттук. Анын ордуна, биз Java, Selenium жана Jenkins тилдеринде жазылган тесттерден UI мониторингин жасадык (отчетторду ишке киргизүү жана түзүү системасы катары колдонулат).

Бизде көптөгөн сыноолор болду, бирок аягында биз негизги жолго, жогорку деңгээлдеги метрикага барууну чечтик. Ал эми бизде конкреттүү тесттер көп болсо, маалыматтарды жаңыртуу кыйын болот. Ар бир кийинки релиз бүтүндөй системаны олуттуу түрдө бузат жана биз аны оңдоп коёбуз. Ошондуктан, биз сейрек өзгөрө турган абдан фундаменталдуу нерселерге басым жасадык жана биз аларды гана көзөмөлдөйбүз.

Акырында, үчүнчүдөн, маалымат булагы борборлоштурулган каттоо системасы болуп саналат. Биз журналдар үчүн Elastic Stack колдонобуз, андан кийин биз бул маалыматтарды бизнес метрика үчүн мониторинг тутумубузга тарта алабыз. Мунун баарына кошумча, бизде Python тилинде жазылган, API аркылуу каалаган кызматтарды сураган жана алардан Zabbixке маалыматтарды чогултуучу өзүбүздүн Monitoring API кызматыбыз бар.

Мониторингдин дагы бир ажырагыс атрибуту бул визуализация. Биздики Графанага негизделген. Ал башка визуализация системаларынын ичинен өзгөчөлөнүп турат, анткени ал башкаруу панелиндеги ар кандай маалымат булактарынан алынган метрикаларды визуализациялоого мүмкүндүк берет. Биз интернет-дүкөн үчүн жогорку деңгээлдеги көрсөткүчтөрдү чогулта алабыз, мисалы, DBMSден акыркы саатта берилген буйрутмалардын саны, бул онлайн дүкөн Zabbix иштеп жаткан OS үчүн өндүрүмдүүлүк көрсөткүчтөрү жана бул колдонмонун мисалдары үчүн көрсөткүчтөр Прометейден. Жана мунун баары бир башкаруу тактасында болот. Ачык жана жеткиликтүү.

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

Дагы бир маанилүү жагдай, колдонмо катмары Prometheus тарабынан чогултулган. Ал өзү да Zabbix менен интеграцияланган. Ошондой эле бизде сайттын ылдамдыгы бар, бул биздин баракчанын жүктөө ылдамдыгы, тоскоолдуктар, баракты көрсөтүү, скрипттерди жүктөө ж.б. сыяктуу параметрлерди көрүүгө мүмкүндүк берет, ал API интеграцияланган. Ошентип, биздин көрсөткүчтөр Zabbixте чогултулган жана ошого жараша биз да ошол жерден эскертебиз. Учурда бардык эскертүүлөр негизги жөнөтүү ыкмаларына жөнөтүлөт (азыр бул электрондук почта жана телеграмма, MS Teams да жакында туташтырылган). Акылдуу боттор кызмат катары иштеген жана бардык кызыкдар продукт командаларына мониторинг маалыматын берген абалга чейин эскертүүнү жогорулатуу пландары бар.

Биз үчүн көрсөткүчтөр жеке маалыматтык системалар үчүн гана эмес, ошондой эле тиркемелер колдонгон бүткүл инфраструктура үчүн жалпы көрсөткүчтөр маанилүү: виртуалдык машиналар иштеген физикалык серверлердин кластерлери, трафиктин тең салмактуулары, Тармактык жүктөрдү тең салмактоочулар, тармактын өзү, байланыш каналдарын колдонуу . Биздин жеке маалымат борборлорубуз үчүн көрсөткүчтөр (бизде алардын бир нечеси бар жана инфраструктура абдан чоң).

Биз Sportmaster мониторинги - кантип жана эмне менен

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

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

келечеги

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

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

Мындай кырдаалда биз эскертүүлөрдөн спам алабыз жана бул туура мониторинг системасынын форматына туура келбейт. Корреляция деген суроо туулат. Демек, идеалдуу түрдө биздин мониторинг системабыз: "Балдар, сиздин физикалык машинаңыз өлдү, аны менен бирге бул тиркеме жана бул көрсөткүчтөр" деп айтуу керек, бизди жүз сигналдар менен катуу бомбалоонун ордуна, бир эскертүүнүн жардамы менен. Анын локализациясынан улам көйгөйдү тез жоюуга жардам берген негизги нерсе - себебин билдирүү керек.

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

Мунун баары эскертүү куруу талаптары жөнүндө. Ошондо кырдаал эки багытта өнүгүшү мүмкүн – же көйгөй бар жана аны чечүү керек, же мониторинг системасында мүчүлүштүктөр болгон. Бирок, кандай болгон күндө да, сен барып, аны аныктоо керек.

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

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

Биздин кесиптешибиз келип, бизге да, командага да пайдалуу боло турган метрика кошууну суранышы мүмкүн. Же, мисалы, командада бизде болгон негизги көрсөткүчтөр жетишсиз болушу мүмкүн; алар кээ бир конкреттүү көрсөткүчтөргө көз салышы керек. Графанада биз ар бир команда үчүн мейкиндик түзүп, администратордук укуктарды беребиз. Ошондой эле, эгерде командага аспаптар такталары керек болсо, бирок алар муну кантип жасоону билбей/билбесе, биз аларга жардам беребиз.

Биз команданын баалуулуктарын түзүү, аларды чыгаруу жана пландаштыруу агымынан тышкары болгондуктан, биз акырындык менен бардык системалардын релиздери үзгүлтүксүз жана биз менен макулдашпай туруп күн сайын жайылтылышы мүмкүн деген тыянакка келип жатабыз. Жана бул чыгарылыштарды көзөмөлдөө биз үчүн маанилүү, анткени алар колдонмонун иштешине таасир этиши жана бир нерсени бузушу мүмкүн жана бул өтө маанилүү. Релиздерди башкаруу үчүн биз Bamboo колдонобуз, ал жерден API аркылуу маалыматтарды алабыз жана кайсы релиздердин кайсы маалымат тутумдарында чыгарылганын жана алардын абалын көрө алабыз. Анан эң негизгиси кайсы убакта. Биз релиз маркерлерин негизги критикалык көрсөткүчтөрдүн үстүнө коебуз, бул көйгөйлөр болгон учурда визуалдык жактан абдан көрсөткүч.

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

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

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

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

Source: www.habr.com

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