Il-monitoraġġ huwa mejjet? — Monitoraġġ twil

Il-monitoraġġ huwa mejjet? — Monitoraġġ twil

Mill-2008, il-kumpanija tagħna kienet primarjament involuta fil-ġestjoni tal-infrastruttura u l-appoġġ tekniku round-the-clock għal proġetti tal-web: għandna aktar minn 400 klijent, li huwa madwar 15% tal-kummerċ elettroniku Russu. Għaldaqstant, hija appoġġata arkitettura diversa ħafna. Jekk taqa xi ħaġa, aħna obbligati li nirranġawha fi żmien 15-il minuta. Iżda biex tifhem li seħħ inċident, trid tissorvelja l-proġett u tirrispondi għall-inċidenti. Kif tagħmel dan?

Nemmen li hemm problema fl-organizzazzjoni ta' sistema ta' monitoraġġ xierqa. Kieku ma kienx hemm inkwiet, allura d-diskors tiegħi kien jikkonsisti f'teżi waħda: "Jekk jogħġbok installa Prometheus + Grafana u plugins 1, 2, 3." Sfortunatament, ma jaħdimx hekk aktar. U l-problema ewlenija hija li kulħadd ikompli jemmen f'xi ħaġa li kienet teżisti fl-2008, f'termini ta 'komponenti tas-softwer.

Rigward l-organizzazzjoni tas-sistema ta’ monitoraġġ, nazzarda ngħid li... proġetti b’monitoraġġ kompetenti ma jeżistux. U s-sitwazzjoni hija tant ħażina li jekk taqa 'xi ħaġa, hemm ir-riskju li ma tibqax innotata - wara kollox, kulħadd huwa ċert li "kollox huwa mmonitorjat."
Forsi kollox qed jiġi mmonitorjat. Imma kif?

Ilkoll iltqajna ma’ storja bħal din li ġejja: ċertu devops, ċertu admin qed jaħdem, tim ta’ żvilupp jiġi lejhom u jgħidilhom - "aħna rilaxxati, issa jimmonitorjaw." Tissorvelja xiex? Kif taħdem?

KOLLOX SEW. Aħna nissorveljaw il-mod antik. U diġà qed jinbidel, u jirriżulta li inti mmonitorjat is-servizz A, li sar servizz B, li jinteraġixxi mas-servizz C. Iżda t-tim tal-iżvilupp jgħidlek: "Installa s-softwer, għandu jimmonitorja kollox!"

Allura x'inbidel? - Kollox inbidel!

2008 Kollox sew

Hemm koppja ta 'żviluppaturi, server wieħed, server ta' database wieħed. Kollox imur minn hawn. Għandna xi informazzjoni, ninstallaw zabbix, Nagios, cacti. U mbagħad waqqafna twissijiet ċari fuq is-CPU, fuq it-tħaddim tad-disk, u fuq l-ispazju tad-disk. Nagħmlu wkoll ftit kontrolli manwali biex niżguraw li s-sit jirrispondi u li l-ordnijiet qed jaslu fid-database. U hekk – aħna xi ftit jew wisq protetti.

Jekk inqabblu l-ammont ta 'xogħol li l-amministratur għamel imbagħad biex jipprovdi monitoraġġ, allura 98% minnu kien awtomatiku: il-persuna li tagħmel il-monitoraġġ trid tifhem kif tinstalla Zabbix, kif tikkonfigurah u tikkonfigura twissijiet. U 2% - għal kontrolli esterni: li s-sit jirrispondi u jagħmel talba lid-database, li waslu ordnijiet ġodda.

Il-monitoraġġ huwa mejjet? — Monitoraġġ twil

2010 It-tagħbija qed tikber

Qed nibdew niskalaw il-web, inżidu magna tat-tiftix. Irridu niżguraw li l-katalgu tal-prodott ikun fih il-prodotti kollha. U dik it-tfittxija tal-prodott taħdem. Li d-database qed taħdem, li qed isiru l-ordnijiet, li s-sit jirrispondi esternament u jirrispondi minn żewġ servers u l-utent ma jiġix imkeċċi mis-sit waqt li jerġa’ jiġi bilanċjat għal server ieħor, eċċ. Hemm aktar entitajiet.

Barra minn hekk, l-entità assoċjata mal-infrastruttura għadha l-akbar f’ras il-maniġer. Għad hemm idea f'rasi li l-persuna li tagħmel il-monitoraġġ hija l-persuna li se tinstalla zabbix u tkun kapaċi tikkonfigurah.

Iżda fl-istess ħin, jidher ix-xogħol fuq it-twettiq ta 'kontrolli esterni, fuq il-ħolqien ta' sett ta 'skripts ta' mistoqsijiet ta 'l-indiċjar ta' tfittxija, sett ta 'skripts biex jiċċekkjaw li t-tfittxija tinbidel matul il-proċess ta' indiċjar, sett ta 'skripts li jiċċekkjaw li l-oġġetti jiġu trasferiti lejn il- servizz ta’ konsenja, eċċ. u l-bqija.

Il-monitoraġġ huwa mejjet? — Monitoraġġ twil

Nota: ktibt "sett ta 'skripts" 3 darbiet. Jiġifieri, il-persuna responsabbli għall-monitoraġġ m'għadhiex dik li sempliċement tinstalla zabbix. Din hija persuna li tibda tikkodifika. Iżda xejn ma nbidel fl-imħuħ tat-tim għadu.

Iżda d-dinja qed tinbidel, issir dejjem aktar kumplessa. Jiżdiedu saff ta' virtwalizzazzjoni u diversi sistemi ġodda. Huma jibdew jinteraġixxu ma 'xulxin. Min qal "riħa ta' mikroservizzi?" Iżda kull servizz xorta jidher qisu websajt individwalment. Nistgħu nduru lejha u nifhmu li tipprovdi l-informazzjoni meħtieġa u taħdem waħedha. U jekk inti amministratur kontinwament involut fi proġett li ilu jiżviluppa għal 5-7-10 snin, dan l-għarfien jakkumula: jidher livell ġdid - int indunajt, jidher livell ieħor - int indunajt...

Il-monitoraġġ huwa mejjet? — Monitoraġġ twil

Imma rari xi ħadd jakkumpanja proġett għal 10 snin.

Jibda l-Monitoringman

Ejja ngħidu li ġejt għal startup ġdida li immedjatament qabdet 20 żviluppatur, kitbet 15-il mikroservizz, u int amministratur li qallu: “Ibni CI/CD. Jekk jogħġbok." Bnejt CI/CD u f'daqqa waħda tisma': "Huwa diffiċli għalina li naħdmu bil-produzzjoni f'"kubu", mingħajr ma nifhmu kif l-applikazzjoni se taħdem fiha. Agħmilna sandbox fl-istess "kubu".
Inti tagħmel sandbox f'dan il-kubu. Immedjatament jgħidulek: "Irridu database tal-istadju li tiġi aġġornata kuljum mill-produzzjoni, sabiex nifhmu li taħdem fuq id-database, iżda fl-istess ħin ma tħassarx id-database tal-produzzjoni."

Tgħix f'dan kollu. Fadal ġimgħat 2 qabel ir-rilaxx, jgħidulek: "Issa ejja nissorveljaw dan kollu..." Jiġifieri. jimmonitorja l-infrastruttura tal-cluster, jimmonitorja l-arkitettura tal-mikroservizz, jimmonitorja x-xogħol ma' servizzi esterni...

U l-kollegi tiegħi jeħilsu l-iskema tas-soltu minn rashom u jgħidu: “Sewwa hawn kollox ċar! Installa programm li jimmonitorja dan kollu.” Iva, iva: Prometheus + Grafana + plugins.
U jżidu: “Għandek ġimgħatejn, kun żgur li kollox huwa sigur.”

F'ħafna proġetti li naraw, persuna waħda tiġi allokata għall-monitoraġġ. Immaġina li rridu nimpjegaw persuna biex tagħmel monitoraġġ għal ġimgħatejn, u niktbu jerġa għalih. X’ħiliet għandu jkollha din il-persuna, meta wieħed iqis dak kollu li għidna s’issa?

  • Għandu jifhem il-monitoraġġ u l-ispeċifiċitajiet tal-operat tal-infrastruttura tal-ħadid.
  • Huwa għandu jifhem l-ispeċifiċitajiet tal-monitoraġġ ta 'Kubernetes (u kulħadd irid imur għall-"kubu", għaliex tista' tastratta minn kollox, taħbi, minħabba li l-amministratur se jittratta l-bqija) - innifsu, l-infrastruttura tiegħu, u jifhem kif jimmonitorja l-applikazzjonijiet ġewwa.
  • Huwa għandu jifhem li s-servizzi jikkomunikaw ma 'xulxin b'modi speċjali, u jkun jaf l-ispeċifiċitajiet ta' kif is-servizzi jinteraġixxu ma 'xulxin. Huwa pjuttost possibbli li tara proġett fejn xi wħud mis-servizzi jikkomunikaw b'mod sinkroniku, għax m'hemm l-ebda mod ieħor. Pereżempju, il-backend imur permezz REST, permezz ta 'gRPC għas-servizz tal-katalgu, jirċievi lista ta' prodotti u jirritornaha lura. Ma tistax tistenna hawn. U ma 'servizzi oħra taħdem b'mod asinkroniku. Ittrasferixxi l-ordni lis-servizz tal-kunsinna, ibgħat ittra, eċċ.
    Probabilment diġà għawm minn dan kollu? U l-amministratur, li jeħtieġ li jissorvelja dan, sar saħansitra aktar konfuż.
  • Għandu jkun kapaċi jippjana u jippjana b'mod korrett - hekk kif ix-xogħol isir aktar u aktar.
  • Għalhekk irid joħloq strateġija mis-servizz maħluq sabiex jifhem kif jimmonitorjaha speċifikament. Huwa jeħtieġ fehim tal-arkitettura tal-proġett u l-iżvilupp tiegħu + fehim tat-teknoloġiji użati fl-iżvilupp.

Ejja niftakru każ assolutament normali: xi servizzi huma f'PHP, xi servizzi huma f'Go, xi servizzi huma f'JS. Huma b'xi mod jaħdmu ma 'xulxin. Dan huwa minn fejn ġej it-terminu "mikroservizz": hemm tant sistemi individwali li l-iżviluppaturi ma jistgħux jifhmu l-proġett kollu kemm hu. Parti waħda mit-tim tikteb servizzi f'JS li jaħdmu waħedhom u ma jafux kif taħdem il-bqija tas-sistema. Il-parti l-oħra tikteb servizzi f'Python u ma tfixkilx kif jaħdmu servizzi oħra huma iżolati fiż-żona tagħhom stess; It-tielet wieħed huwa l-kitba tas-servizzi fil-PHP jew xi ħaġa oħra.
Dawn l-20 persuna kollha huma maqsuma fi 15-il servizz, u hemm admin wieħed biss li jrid jifhem dan kollu. Waqfa! aħna biss naqsmu s-sistema fi 15-il mikroservizz għax 20 persuna ma jistgħux jifhmu s-sistema kollha.

Iżda jeħtieġ li jiġi mmonitorjat b'xi mod...

X'inhu r-riżultat? Bħala riżultat, hemm persuna waħda li toħroġ b’dak kollu li t-tim kollu tal-iżviluppaturi ma jistax jifhem, u fl-istess ħin irid ikun jaf ukoll u jkun kapaċi jagħmel dak li indikat hawn fuq - infrastruttura tal-ħardwer, infrastruttura ta’ Kubernetes, eċċ.

X'nista' ngħid... Houston, għandna problemi.

Il-monitoraġġ ta' proġett ta' softwer modern huwa proġett ta' softwer fih innifsu

Mit-twemmin falz li l-monitoraġġ huwa softwer, aħna niżviluppaw twemmin fil-mirakli. Imma l-mirakli, sfortunatament, ma jseħħux. Ma tistax tinstalla zabbix u tistenna li kollox jaħdem. M'hemm l-ebda skop li tinstalla Grafana u tittama li kollox ikun ok. Il-biċċa l-kbira tal-ħin se jintefaq fuq l-organizzazzjoni tal-kontrolli tal-operat tas-servizzi u l-interazzjoni tagħhom ma 'xulxin, billi jiċċekkjaw kif jaħdmu s-sistemi esterni. Fil-fatt, 90% tal-ħin se jintefqu mhux fuq il-kitba ta 'skripts, iżda fuq l-iżvilupp ta' softwer. U għandu jiġi mmaniġġjat minn tim li jifhem ix-xogħol tal-proġett.
Jekk f'din is-sitwazzjoni persuna waħda tintefa' f'monitoraġġ, allura jseħħ diżastru. Li huwa dak li jiġri kullimkien.

Pereżempju, hemm diversi servizzi li jikkomunikaw ma’ xulxin permezz ta’ Kafka. L-ordni waslet, bgħatna messaġġ dwar l-ordni lil Kafka. Hemm servizz li jisma 'informazzjoni dwar l-ordni u jibgħat il-merkanzija. Hemm servizz li jisma 'informazzjoni dwar l-ordni u jibgħat ittra lill-utent. U mbagħad jidhru mazz aktar servizzi, u nibdew nitħawdu.

U jekk inti wkoll tagħti dan lill-admin u l-iżviluppaturi fl-istadju meta jkun fadal żmien qasir qabel ir-rilaxx, il-persuna jkollha bżonn tifhem dan il-protokoll kollu. Dawk. Proġett ta 'din l-iskala jieħu ammont sinifikanti ta' żmien, u dan għandu jitqies fl-iżvilupp tas-sistema.
Iżda ħafna drabi, speċjalment fl-istartups, naraw kif il-monitoraġġ jiġi pospost għal aktar tard. “Issa se nagħmlu Proof of Concept, inniedu magħha, inħalluha taqa’ - lesti nissagrifikaw. U mbagħad nissorveljaw dan kollu.” Meta (jew jekk) il-proġett jibda jagħmel il-flus, in-negozju jrid iżid saħansitra aktar karatteristiċi - minħabba li beda jaħdem, għalhekk jeħtieġ li jiġi mxerred aktar! U int qiegħed fil-punt fejn l-ewwel trid tissorvelja dak kollu ta 'qabel, li ma jieħux 1% tal-ħin, iżda ħafna aktar. U mill-mod, l-iżviluppaturi se jkunu meħtieġa għall-monitoraġġ, u huwa aktar faċli li tħallihom jaħdmu fuq karatteristiċi ġodda. Bħala riżultat, karatteristiċi ġodda huma miktuba, kollox gets invitat up, u inti qiegħed f'imblokk bla tarf.

Allura kif timmonitorja proġett li jibda mill-bidu, u x'għandek tagħmel jekk ikollok proġett li jeħtieġ li jiġi mmonitorjat, imma ma tafx minn fejn tibda?

L-ewwel, għandek bżonn tippjana.

Digressjoni lirika: ħafna drabi jibdew bil-monitoraġġ tal-infrastruttura. Pereżempju, għandna Kubernetes. Nibdew billi ninstallaw Prometheus ma Grafana, ninstallaw plugins għall-monitoraġġ tal-"kubu". Mhux biss l-iżviluppaturi, iżda wkoll l-amministraturi għandhom il-prattika sfortunata li: "Aħna ninstallaw dan il-plugin, iżda l-plugin probabbilment jaf kif jagħmel dan." In-nies jixtiequ jibdew bil-sempliċi u sempliċi, aktar milli bl-azzjonijiet importanti. U l-monitoraġġ tal-infrastruttura huwa faċli.

L-ewwel, iddeċiedi liema u kif trid tissorvelja, u mbagħad agħżel għodda, għax nies oħra ma jistgħux jaħsbu għalik. U għandhom? Nies oħra ħasbu lilhom infushom, dwar sistema universali - jew ma ħasbu xejn meta nkiteb dan il-plugin. U sempliċement għaliex dan il-plugin għandu 5 elf utent ma jfissirx li huwa ta 'xi użu. Forsi se ssir il-5001 sempliċiment għax diġà kien hemm 5000 ruħ hemm qabel.

Jekk tibda timmonitorja l-infrastruttura u l-backend tal-applikazzjoni tiegħek ma jibqax jirrispondi, l-utenti kollha jitilfu l-konnessjoni mal-applikazzjoni mobbli. Jidher żball. Huma jiġu għandek u jgħidulek "L-applikazzjoni mhix qed taħdem, x'qed tagħmel hawn?" - "Qed nissorveljaw." — "Kif tissorvelja jekk ma tarax li l-applikazzjoni mhix qed taħdem?!"

  1. Nemmen li għandek bżonn tibda timmonitorja eżattament mill-punt tad-dħul tal-utent. Jekk l-utent ma jarax li l-applikazzjoni qed taħdem, dak hu, huwa falliment. U s-sistema ta 'monitoraġġ għandha twissi dwar dan l-ewwel.
  2. U allura biss nistgħu nissorveljaw l-infrastruttura. Jew tagħmel dan b'mod parallel. Huwa aktar faċli bl-infrastruttura - hawnhekk fl-aħħar nistgħu ninstallaw biss zabbix.
  3. U issa trid tmur għall-għeruq tal-applikazzjoni biex tifhem fejn l-affarijiet ma jkunux qed jaħdmu.

L-idea ewlenija tiegħi hija li l-monitoraġġ għandu jmur b'mod parallel mal-proċess tal-iżvilupp. Jekk tfixkel lit-tim ta' monitoraġġ għal kompiti oħra (ħolqien ta' CI/CD, sandboxing, riorganizzazzjoni tal-infrastruttura), il-monitoraġġ jibda jibqa' lura u qatt ma tista' tlaħħaq mal-iżvilupp (jew illum jew għada jkollok twaqqafha).

Kollox bil-livelli

Hekk nara l-organizzazzjoni ta’ sistema ta’ monitoraġġ.

1) Livell ta' applikazzjoni:

  • monitoraġġ tal-loġika tan-negozju tal-applikazzjoni;
  • monitoraġġ tal-metriċi tas-servizzi tas-saħħa;
  • monitoraġġ tal-integrazzjoni.

2) Livell ta' infrastruttura:

  • monitoraġġ tal-livell tal-orkestrazzjoni;
  • Monitoraġġ tas-softwer tas-sistema;
  • monitoraġġ tal-livell tal-ħadid.

3) Għal darb'oħra l-livell ta 'applikazzjoni - iżda bħala prodott ta' inġinerija:

  • Il-ġbir u l-monitoraġġ ta' logs tal-applikazzjonijiet;
  • APM;
  • traċċar.

4) Twissija:

  • organizzazzjoni ta' sistema ta' twissija;
  • organizzazzjoni ta' sistema ta' dmirijiet;
  • organizzazzjoni ta’ “bażi ta’ għarfien” u fluss tax-xogħol għall-ipproċessar tal-inċidenti.

Huwa importanti: naslu għall-allert mhux wara, iżda mill-ewwel! M'hemmx bżonn li titnieda monitoraġġ u "b'xi mod aktar tard" insemmu min se jirċievi twissijiet. Wara kollox, x'inhu l-kompitu tal-monitoraġġ: li tifhem fejn fis-sistema xi ħaġa qed taħdem ħażin, u li n-nies it-tajba jkunu jafu biha. Jekk tħalli dan sa l-aħħar, allura n-nies it-tajba jkunu jafu li xi ħaġa sejra ħażin biss billi ssejjaħ “xejn mhu qed jaħdem għalina.”

Saff ta' Applikazzjoni - Monitoraġġ tal-Loġika tan-Negozju

Hawnhekk qed nitkellmu dwar il-verifika tal-fatt stess li l-applikazzjoni taħdem għall-utent.

Dan il-livell għandu jsir matul il-fażi ta 'żvilupp. Pereżempju, għandna Prometheus kondizzjonali: imur għas-server li jagħmel il-kontrolli, jiġbed l-endpoint, u l-endpoint imur u jiċċekkja l-API.

Meta spiss jintalbu jimmonitorjaw il-home page biex jiżguraw li s-sit qed jaħdem, il-programmaturi jagħtu manku li jista 'jinġibed kull darba li jkollhom bżonn biex jiżguraw li l-API qed taħdem. U l-programmaturi f'dan il-mument għadhom jieħdu u jiktbu /api/test/helloworld
L-uniku mod biex tiżgura li kollox jaħdem? - Le!

  • Il-ħolqien ta 'kontrolli bħal dawn huwa essenzjalment il-kompitu tal-iżviluppaturi. It-testijiet tal-unità għandhom jinkitbu mill-programmaturi li jiktbu l-kodiċi. Għax jekk tnixxih lill-amministratur, "Raġel, hawn lista ta' protokolli API għall-25 funzjoni kollha, jekk jogħġbok immonitorja kollox!" - xejn mhu se jaħdem.
  • Jekk tipprintja "hello world", ħadd qatt ma jkun jaf li l-API għandha taħdem u taħdem. Kull bidla fl-API trid twassal għal bidla fil-kontrolli.
  • Jekk diġà għandek problema bħal din, waqqaf il-karatteristiċi u talloka żviluppaturi li se jiktbu dawn il-kontrolli, jew jaċċettaw it-telf, aċċettaw li xejn ma jiġi kkontrollat ​​u se jfalli.

Suġġerimenti Tekniċi:

  • Kun żgur li torganizza server estern biex torganizza l-kontrolli - trid tkun ċert li l-proġett tiegħek huwa aċċessibbli għad-dinja ta 'barra.
  • Organizza kontrolli fil-protokoll kollu tal-API, mhux biss endpoints individwali.
  • Oħloq prometheus-endpoint bir-riżultati tat-test.

Saff ta' applikazzjoni - monitoraġġ tal-metriċi tas-saħħa

Issa qed nitkellmu dwar metriċi tas-saħħa esterna tas-servizzi.

Iddeċidejna li nissorveljaw il-"mankijiet" kollha tal-applikazzjoni bl-użu ta 'kontrolli esterni, li nsejħu minn sistema ta' monitoraġġ esterna. Iżda dawn huma l-"mankijiet" li l-utent "jara". Irridu nkunu ċerti li s-servizzi tagħna nfushom jaħdmu. Hemm storja aħjar hawn: K8s għandu kontrolli tas-saħħa, sabiex mill-inqas il-"kubu" innifsu jista 'jkun konvint li s-servizz qed jaħdem. Iżda nofs iċ-ċekkijiet li rajt huma l-istess stampar "hello world". Dawk. Allura jiġbed darba wara l-iskjerament, wieġeb li kollox huwa tajjeb - dak kollu. U s-servizz, jekk jipprovdi l-API tiegħu stess, għandu numru kbir ta 'punti ta' dħul għal dak l-istess API, li jeħtieġ ukoll li jiġi mmonitorjat, għaliex irridu nkunu nafu li jaħdem. U aħna diġà qed nissorveljawh ġewwa.

Kif timplimenta dan b'mod korrett teknikament: kull servizz jesponi endpoint dwar il-prestazzjoni attwali tiegħu, u fil-grafiċi ta' Grafana (jew kwalunkwe applikazzjoni oħra) naraw l-istatus tas-servizzi kollha.

  • Kull bidla fl-API trid twassal għal bidla fil-kontrolli.
  • Oħloq servizz ġdid minnufih b'metriċi tas-saħħa.
  • Amministratur jista' jersaq għand l-iżviluppaturi u jistaqsi "żidni ftit karatteristiċi sabiex nifhem kollox u nżid informazzjoni dwar dan mas-sistema ta' monitoraġġ tiegħi." Iżda l-iżviluppaturi ġeneralment iwieġbu, "Mhux se nżidu xejn ġimgħatejn qabel ir-rilaxx."
    Ħalli l-maniġers tal-iżvilupp jafu li se jkun hemm telf bħal dan, ħalli l-ġestjoni tal-maniġers tal-iżvilupp tkun taf ukoll. Għax meta jaqa’ kollox, xi ħadd xorta se jċempel u jitlob li jimmonitorja s-“servizz li dejjem jonqos” (ċ)
  • Mill-mod, talloka żviluppaturi biex jiktbu plugins għal Grafana - din tkun għajnuna tajba għall-amministraturi.

Saff ta' Applikazzjoni - Monitoraġġ ta' Integrazzjoni

Il-monitoraġġ tal-integrazzjoni jiffoka fuq il-monitoraġġ tal-komunikazzjonijiet bejn is-sistemi kritiċi għan-negozju.

Pereżempju, hemm 15-il servizz li jikkomunikaw ma’ xulxin. Dawn m'għadhomx siti separati. Dawk. ma nistgħux niġbdu s-servizz waħdu, niksbu/helloworld u nifhmu li s-servizz qed jaħdem. Minħabba li s-servizz tal-web tal-ordnijiet irid jibgħat informazzjoni dwar l-ordni lix-xarabank - mix-xarabank, is-servizz tal-maħżen għandu jirċievi dan il-messaġġ u jaħdem aktar miegħu. U s-servizz tad-distribuzzjoni tal-email għandu jipproċessa dan b'xi mod aktar, eċċ.

Għaldaqstant, ma nistgħux nifhmu, meta nifhmu kull servizz individwali, li kollox jaħdem. Għax għandna ċertu xarabank li permezz tagħha kollox jikkomunika u jinteraġixxi.
Għalhekk, dan l-istadju għandu jimmarka l-istadju tal-ittestjar tas-servizzi għall-interazzjoni ma 'servizzi oħra. Huwa impossibbli li torganizza monitoraġġ tal-komunikazzjoni billi timmonitorja s-sensar tal-messaġġi. Jekk hemm servizz li joħroġ data u servizz li jirċeviha, meta nissorveljaw is-sensar naraw biss data li ttir minn naħa għal oħra. Anke jekk b’xi mod irnexxielna nissorveljaw l-interazzjoni ta’ din id-dejta internament - li ċertu produttur ipoġġi d-dejta, xi ħadd jaqraha, dan il-fluss ikompli jmur għand Kafka - dan xorta mhux se jagħtina informazzjoni jekk servizz wieħed jibgħat il-messaġġ f’verżjoni waħda , iżda s-servizz l-ieħor ma stennix din il-verżjoni u qabeżha. Mhux se nkunu nafu dwar dan, peress li s-servizzi jgħidulna li kollox qed jaħdem.

Dak li nirrakkomanda li tagħmel:

  • Għal komunikazzjoni sinkronika: l-endpoint jagħmel talbiet lil servizzi relatati. Dawk. nieħdu dan l-endpoint, iġbed script ġewwa s-servizz, li jmur għall-punti kollha u jgħid "Nista 'niġbed hemm, u iġbed hemm, nista' niġbed hemm..."
  • Għal komunikazzjoni asinkronika: messaġġi deħlin - l-endpoint jiċċekkja l-bus għal messaġġi tat-test u juri l-istatus tal-ipproċessar.
  • Għal komunikazzjoni asinkronika: messaġġi ħerġin - l-endpoint jibgħat messaġġi tat-test lix-xarabank.

Kif jiġri s-soltu: għandna servizz li jitfa’ data fix-xarabank. Niġu għal dan is-servizz u nitolbuk tgħidilna dwar is-saħħa tal-integrazzjoni tiegħu. U jekk is-servizz jeħtieġ li jipproduċi messaġġ x'imkien aktar (WebApp), allura jipproduċi dan il-messaġġ tat-test. U jekk inħaddmu servizz fuq in-naħa tal-OrdnProcessing, l-ewwel ipoġġi dak li jista’ jpoġġi indipendenti, u jekk ikun hemm xi affarijiet dipendenti, allura jaqra sett ta’ messaġġi tat-test mix-xarabank, jifhem li jista’ jipproċessahom, jirrapporta u , jekk meħtieġ, poġġihom aktar, u dwar dan jgħid - kollox ok, jien ħaj.

Ħafna drabi nisimgħu l-mistoqsija "kif nistgħu nittestjaw dan fuq data tal-ġlied?" Per eżempju, qed nitkellmu dwar l-istess servizz ta 'ordnijiet. L-ordni tibgħat messaġġi lill-maħżen fejn il-merkanzija titħassar: ma nistgħux nittestjaw dan fuq data tal-ġlied, għax "l-oġġetti tiegħi se jitħassru!" Is-soluzzjoni hija li tiskeda dan it-test kollu mill-bidu. Għandek ukoll testijiet unitarji li jagħmlu mocks. Allura, agħmel dan f'livell aktar profond fejn ikollok kanal ta 'komunikazzjoni li ma jagħmilx ħsara lill-operat tan-negozju.

Livell ta' infrastruttura

Il-monitoraġġ tal-infrastruttura hija xi ħaġa li ilha titqies bħala monitoraġġ innifsu.

  • Il-monitoraġġ tal-infrastruttura jista' u għandu jitnieda bħala proċess separat.
  • M'għandekx tibda bil-monitoraġġ tal-infrastruttura fuq proġett li qed jaħdem, anki jekk verament trid. Dan huwa uġigħ għad-devops kollha. "L-ewwel ser jimmonitorja l-cluster, jien ser jimmonitorja l-infrastruttura" - i.e. L-ewwel, se jimmonitorja dak li jinsab hawn taħt, iżda mhux se jidħol fl-applikazzjoni. Minħabba li l-applikazzjoni hija ħaġa inkomprensibbli għad-devops. Kien nixxew lilu, u ma jifhimx kif taħdem. Imma jifhem l-infrastruttura u jibda biha. Imma le - l-ewwel dejjem trid tissorvelja l-applikazzjoni.
  • M'għandekx tmur baħar bin-numru ta 'twissijiet. Meta wieħed iqis il-kumplessità tas-sistemi moderni, it-twissijiet qed itiru kontinwament, u trid b'xi mod tgħix ma 'dan il-mazz ta' twissijiet. U l-persuna fuq sejħa, wara li ħares lejn mija mit-twissijiet li jmiss, tiddeċiedi "Ma rridx naħseb dwarha." It-twissijiet għandhom jinnotifikaw biss dwar affarijiet kritiċi.

Livell ta' applikazzjoni bħala unità tan-negozju

Punti ewlenin:

  • ELK. Dan huwa l-istandard tal-industrija. Jekk għal xi raġuni m'intix qed tiġbor zkuk, ibda tagħmel dan immedjatament.
  • APM. APMs esterni bħala mod biex tagħlaq malajr il-monitoraġġ tal-applikazzjoni (NewRelic, BlackFire, Datadog). Tista 'tinstalla din il-ħaġa temporanjament biex tal-inqas b'xi mod tifhem x'inhu jiġri miegħek.
  • Traċċar. F'għexieren ta 'mikroservizzi, għandek traċċa kollox, minħabba li t-talba m'għadhiex tgħix waħedha. Huwa diffiċli ħafna li żżid aktar tard, għalhekk huwa aħjar li immedjatament tiskeda t-traċċar fl-iżvilupp - dan huwa x-xogħol u l-utilità tal-iżviluppaturi. Jekk għadek ma implimentahx, implimentah! Ara Jaeger/Zipkin

Twissija

  • Organizzazzjoni ta 'sistema ta' notifika: f'kundizzjonijiet ta 'monitoraġġ ta' mazz ta 'affarijiet, għandu jkun hemm sistema unifikata biex jintbagħtu n-notifiki. Tista' fi Grafana. Fil-Punent, kulħadd juża PagerDuty. L-allerti għandhom ikunu ċari (eż. minn fejn ġew...). U huwa rakkomandabbli li tikkontrolla li n-notifiki jaslu għal kollox
  • Organizzazzjoni ta’ sistema ta’ dmirijiet: m’għandhomx jintbagħtu twissijiet lil kulħadd (jew kulħadd se jirreaġixxi f’folla, jew ħadd ma jirreaġixxi). L-iżviluppaturi jridu wkoll ikunu oncall: kun żgur li tiddefinixxi l-oqsma ta’ responsabbiltà, tagħmel struzzjonijiet ċari u ikteb fiha lil min se jċempel eżatt it-Tnejn u l-Erbgħa, u lil min iċempel it-Tlieta u l-Ġimgħa (inkella ma jċemplu lil ħadd anki fil- avveniment ta’ problema kbira - jibżgħu jqumu jew jiddisturbaw: in-nies ġeneralment ma jħobbux iċempel u jqum nies oħra, speċjalment bil-lejl). U spjega li t-talba għall-għajnuna mhix indikatur ta’ inkompetenza (“Nitlob għall-għajnuna, dan ifisser li jien ħaddiem ħażin”), inkoraġġixxi t-talbiet għall-għajnuna.
  • Organizzazzjoni ta’ “bażi ta’ għarfien” u fluss tax-xogħol għall-ipproċessar tal-inċidenti: għal kull inċident serju, għandu jiġi ppjanat post-mortem, u bħala miżura temporanja, għandhom jiġu rreġistrati azzjonijiet li jsolvu l-inċident. U tagħmilha prattika li twissijiet ripetuti huma dnub; jeħtieġ li jiġu ffissati f'xogħol ta 'kodiċi jew infrastruttura.

Munzell tat-teknoloġija

Ejja nimmaġinaw li l-munzell tagħna huwa kif ġej:

  • ġbir tad-dejta - Prometheus + Grafana;
  • analiżi log - ELK;
  • għal APM jew Tracing - Jaeger (Zipkin).

Il-monitoraġġ huwa mejjet? — Monitoraġġ twil

L-għażla tal-għażliet mhix kritika. Għax jekk fil-bidu fhimt kif timmonitorja s-sistema u ktibt pjan, allura tibda tagħżel għodda li taqbel mal-ħtiġijiet tiegħek. Il-mistoqsija hija dak li għażilt li tissorvelja fl-ewwel lok. Għax forsi l-għodda li għażilt fil-bidu ma taqbel xejn mal-ħtiġijiet tiegħek.

Ftit punti tekniċi li nara kullimkien dan l-aħħar:

Prometheus qed jiġi mbuttat ġewwa Kubernetes - min ħareġ b'dan?! Jekk il-cluster tiegħek jiġġarraf, x'se tagħmel? Jekk għandek cluster kumpless ġewwa, allura għandu jkun hemm xi tip ta 'sistema ta' monitoraġġ ġewwa l-cluster, u xi barra, li tiġbor data minn ġewwa l-cluster.

Ġewwa l-cluster niġbru zkuk u kull ħaġa oħra. Iżda s-sistema ta 'monitoraġġ trid tkun barra. Ħafna drabi, fi cluster fejn hemm Promtheus installat internament, hemm ukoll sistemi li jwettqu kontrolli esterni tal-operat tas-sit. X'jiġri jekk il-konnessjonijiet tiegħek mad-dinja ta 'barra jkunu waqgħu u l-applikazzjoni ma taħdimx? Jirriżulta li kollox huwa tajjeb ġewwa, iżda ma jagħmilx l-affarijiet aktar faċli għall-utenti.

Sejbiet

  • L-iżvilupp tal-monitoraġġ mhuwiex l-installazzjoni ta 'utilitajiet, iżda l-iżvilupp ta' prodott ta 'softwer. 98% tal-monitoraġġ tal-lum huwa kodifikazzjoni. Kodifika fis-servizzi, kodifikazzjoni ta 'kontrolli esterni, verifika ta' servizzi esterni, u dak kollu.
  • Taħlix il-ħin tal-iżviluppaturi tiegħek fuq il-monitoraġġ: jista 'jieħu sa 30% tax-xogħol tagħhom, iżda huwa worth it.
  • Devops, tinkwetax li ma tistax tissorvelja xi ħaġa, għax xi affarijiet huma mod ta 'ħsieb kompletament differenti. Inti ma kontx programmatur, u x-xogħol ta 'monitoraġġ huwa eżattament xogħol tagħhom.
  • Jekk il-proġett diġà qed jaħdem u mhux immonitorjat (u inti maniġer), alloka r-riżorsi għall-monitoraġġ.
  • Jekk il-prodott huwa diġà fil-produzzjoni, u inti devops li qalulhom biex "jwaqqaf il-monitoraġġ" - ipprova spjega lill-maniġment dak li ktibt dan kollu dwaru.

Din hija verżjoni estiża tar-rapport fil-konferenza Saint Highload++.

Jekk inti interessat fl-ideat u l-ħsibijiet tiegħi dwarha u suġġetti relatati, allura hawn tista ' aqra l-kanal 🙂

Sors: www.habr.com

Żid kumment