Patay ba ang pagmonitor? - Mabuhi ang pagmonitor

Patay ba ang pagmonitor? - Mabuhi ang pagmonitor

Sukad sa 2008, ang among kompanya nag-una nga nakigbahin sa pagdumala sa imprastraktura ug suporta sa teknikal nga wala’y oras alang sa mga proyekto sa web: kami adunay labaw pa sa 400 nga mga kliyente, nga hapit 15% sa e-commerce sa Russia. Tungod niini, usa ka lainlain nga arkitektura ang gisuportahan. Kung adunay mahulog, obligado kami nga ayohon kini sa sulod sa 15 minuto. Apan aron masabtan nga ang usa ka aksidente nahitabo, kinahanglan nimo nga bantayan ang proyekto ug tubagon ang mga insidente. Unsaon pagbuhat niini?

Nagtuo ko nga adunay problema sa pag-organisar sa husto nga sistema sa pagmonitor. Kung wala’y problema, nan ang akong pakigpulong adunay usa ka tesis: "Palihug i-install ang Prometheus + Grafana ug mga plugins 1, 2, 3." Ikasubo, dili na kini molihok. Ug ang panguna nga problema mao nga ang tanan nagpadayon sa pagtuo sa usa ka butang nga naglungtad kaniadtong 2008, sa mga termino sa mga sangkap sa software.

Mahitungod sa organisasyon sa sistema sa pagmonitor, mangahas ko sa pag-ingon nga ... ang mga proyekto nga adunay takos nga pagmonitor wala. Ug ang kahimtang grabe kaayo nga kung adunay mahulog, adunay peligro nga dili kini mamatikdan - pagkahuman, sigurado ang tanan nga "ang tanan gibantayan."
Tingali ang tanan gibantayan. Pero unsaon?

Kitang tanan nakasugat og istorya sama sa mosunod: usa ka devops, usa ka admin ang nagtrabaho, usa ka development team ang miadto kanila ug miingon - "kami gibuhian, karon monitor." Monitor unsa? Giunsa kini paglihok?

OK ra. Among gibantayan ang daan nga paagi. Ug kini nagbag-o na, ug kini nahimo nga imong gibantayan ang serbisyo A, nga nahimong serbisyo B, nga nakig-uban sa serbisyo C. Apan ang development team nagsulti kanimo: "I-install ang software, kinahanglan nga monitoron ang tanan!"

Busa unsay nausab? - Nausab ang tanan!

2008 Maayo ra ang tanan

Adunay usa ka magtiayon nga mga developer, usa ka server, usa ka database server. Ang tanan gikan dinhi. Adunay kami pipila ka kasayuran, among gi-install ang zabbix, Nagios, cacti. Ug dayon nagbutang kami og tin-aw nga mga alerto sa CPU, sa disk operation, ug sa disk space. Naghimo usab kami usa ka pares nga mga manual nga pagsusi aron masiguro nga ang site motubag ug nga ang mga order moabut sa database. Ug mao kana - kita labaw pa o dili kaayo gipanalipdan.

Kung atong itandi ang gidaghanon sa trabaho nga gihimo sa tagdumala kaniadto aron mahatagan ang pag-monitor, unya ang 98% niini awtomatiko: ang tawo nga nag-monitor kinahanglan nga makasabut kung giunsa ang pag-install sa Zabbix, kung giunsa kini i-configure ug i-configure ang mga alerto. Ug 2% - alang sa gawas nga mga tseke: nga ang site motubag ug mohimo sa usa ka hangyo sa database, nga ang bag-ong mga order miabut.

Patay ba ang pagmonitor? - Mabuhi ang pagmonitor

2010 Nagkadako ang load

Nagsugod kami sa pag-scale sa web, pagdugang usa ka search engine. Gusto namon nga masiguro nga ang katalogo sa produkto naglangkob sa tanan nga mga produkto. Ug kana nga pagpangita sa produkto molihok. Nga ang database nagtrabaho, nga ang mga order gihimo, nga ang site motubag sa gawas ug motubag gikan sa duha ka mga server ug ang user wala gipapahawa gikan sa site samtang kini gibalanse sa laing server, ug uban pa. Adunay daghang mga entidad.

Dugang pa, ang entidad nga may kalabotan sa imprastraktura nagpabilin nga labing kadaghan sa ulo sa manedyer. Adunay pa usa ka ideya sa akong ulo nga ang tawo nga naghimo sa pagmonitor mao ang tawo nga mag-install sa zabbix ug makahimo sa pag-configure niini.

Apan sa samang higayon, ang trabaho makita sa pagpahigayon sa gawas nga mga pagsusi, sa paghimo sa usa ka set sa search indexer query scripts, usa ka hugpong sa mga script aron masusi nga ang pagpangita mausab sa panahon sa proseso sa pag-index, usa ka hugpong sa mga script nga nagsusi nga ang mga butang gibalhin ngadto sa serbisyo sa pagpadala, ug uban pa. ug uban pa.

Patay ba ang pagmonitor? - Mabuhi ang pagmonitor

Pahinumdom: Gisulat nako ang "usa ka set sa mga script" 3 ka beses. Sa ato pa, ang responsable sa pagmonitor dili na ang usa nga nag-install lang sa zabbix. Kini usa ka tawo nga nagsugod sa coding. Apan wala pay nausab sa hunahuna sa team.

Apan ang kalibutan nagbag-o, nahimong labi ka komplikado. Usa ka layer sa virtualization ug daghang mga bag-ong sistema ang gidugang. Nagsugod sila sa pagpakig-uban sa usag usa. Kinsa ang nag-ingon nga "sama sa microservices?" Apan ang matag serbisyo sa gihapon morag usa ka website nga tagsa-tagsa. Mahimo natong balikan kini ug masabtan nga kini naghatag sa gikinahanglan nga impormasyon ug nagtrabaho sa iyang kaugalingon. Ug kung ikaw usa ka administrador nga kanunay nga nalambigit sa usa ka proyekto nga nag-uswag sa 5-7-10 ka tuig, kini nga kahibalo natipon: usa ka bag-ong lebel ang makita - nahibal-an nimo kini, lain nga lebel ang nagpakita - nahibal-an nimo kini ...

Patay ba ang pagmonitor? - Mabuhi ang pagmonitor

Apan panagsa ra nga adunay mouban sa usa ka proyekto sulod sa 10 ka tuig.

Ang resume ni Monitoringman

Ibutang ta nga nakaabot ka sa usa ka bag-ong startup nga nag-hire dayon og 20 ka developer, nagsulat og 15 ka microservice, ug ikaw usa ka admin nga giingnan: “Pagtukod og CI/CD. Palihug." Nagtukod ka og CI/CD ug sa kalit nakadungog ka: "Lisud alang kanamo ang pagtrabaho sa produksiyon sa usa ka" cube ", nga wala makasabut kung giunsa ang aplikasyon molihok niini. Paghimo kanamo nga usa ka sandbox sa parehas nga "cube".
Naghimo ka og sandbox niini nga cube. Gisultihan ka dayon nila: "Gusto namon ang usa ka database sa entablado nga gi-update matag adlaw gikan sa produksiyon, aron among masabtan nga kini molihok sa database, apan sa samang higayon dili makadaut sa database sa produksiyon."

Nabuhi ka sa tanan niini. Adunay 2 ka semana nga nahabilin sa wala pa ang pagpagawas, gisultihan ka nila: "Karon atong bantayan kining tanan ..." Kana mao. pag-monitor sa imprastraktura sa cluster, pag-monitor sa arkitektura sa microservice, pag-monitor sa trabaho sa mga serbisyo sa gawas...

Ug gikuha sa akong mga kauban ang naandan nga laraw gikan sa ilang mga ulo ug giingon: "Aw, klaro ang tanan dinhi! Pag-instalar ug programa nga magmonitor niining tanan.” Oo, oo: Prometheus + Grafana + plugins.
Ug midugang sila: "Aduna ka'y ​​duha ka semana, siguruha nga luwas ang tanan."

Sa daghang mga proyekto nga atong nakita, usa ka tawo ang gigahin alang sa pagmonitor. Hunahunaa nga gusto namon nga mag-hire og usa ka tawo aron mag-monitor sulod sa 2 ka semana, ug magsulat kami og resume alang kaniya. Unsa nga mga kahanas ang kinahanglan adunay kini nga tawo, gihatagan ang tanan nga among gisulti hangtod karon?

  • Kinahanglan niyang masabtan ang pag-monitor ug mga detalye sa operasyon sa imprastraktura nga puthaw.
  • Kinahanglan niyang masabtan ang mga detalye sa pag-monitor sa Kubernetes (ug ang tanan gusto nga moadto sa "cube", tungod kay mahimo nimo nga abstract gikan sa tanan, itago, tungod kay ang admin mag-atubang sa uban) - mismo, ang imprastraktura niini, ug masabtan kung giunsa ang pag-monitor sa mga aplikasyon sulod.
  • Kinahanglan niyang masabtan nga ang mga serbisyo nakigsulti sa usag usa sa mga espesyal nga paagi, ug nahibal-an ang mga detalye kung giunsa ang mga serbisyo nakig-uban sa usag usa. Posible nga makita ang usa ka proyekto kung diin ang pipila nga mga serbisyo nakigsulti nga dungan, tungod kay wala’y lain nga paagi. Pananglitan, ang backend moagi sa REST, pinaagi sa gRPC ngadto sa serbisyo sa katalogo, makadawat ug listahan sa mga produkto ug ibalik kini. Dili ka makahulat dinhi. Ug sa ubang mga serbisyo kini molihok nga asynchronously. Pagbalhin sa order ngadto sa delivery service, pagpadala og sulat, etc.
    Tingali nakalangoy ka na gikan niining tanan? Ug ang admin, nga kinahanglan nga mag-monitor niini, labi nga naglibog.
  • Kinahanglan nga makahimo siya sa pagplano ug pagplano sa husto - samtang ang trabaho nagkadaghan.
  • Busa siya kinahanglan nga maghimo usa ka estratehiya gikan sa gibuhat nga serbisyo aron masabtan kung giunsa kini espesipikong pagmonitor. Kinahanglan niya ang usa ka pagsabut sa arkitektura sa proyekto ug ang pag-uswag niini + usa ka pagsabut sa mga teknolohiya nga gigamit sa pag-uswag.

Atong hinumdoman ang usa ka hingpit nga normal nga kaso: pipila ka mga serbisyo anaa sa PHP, pipila ka mga serbisyo anaa sa Go, pipila ka mga serbisyo anaa sa JS. Sila sa usa ka paagi nagtrabaho uban sa usag usa. Dinhi gikan ang termino nga "microservice": adunay daghang mga indibidwal nga sistema nga dili masabtan sa mga developer ang proyekto sa kinatibuk-an. Usa ka bahin sa grupo ang nagsulat sa mga serbisyo sa JS nga nagtrabaho sa ilang kaugalingon ug wala mahibal-an kung giunsa ang nahabilin nga sistema molihok. Ang pikas bahin nagsulat sa mga serbisyo sa Python ug dili makabalda kung giunsa ang ubang mga serbisyo nagtrabaho; sila nahimulag sa ilang kaugalingon nga lugar. Ang ikatulo mao ang mga serbisyo sa pagsulat sa PHP o uban pa.
Kining tanan nga 20 ka mga tawo gibahin ngadto sa 15 ka mga serbisyo, ug adunay usa lamang ka admin nga kinahanglang makasabut niining tanan. Hunong! gibahin lang namo ang sistema sa 15 ka microservices tungod kay 20 ka tawo ang dili makasabot sa tibuok sistema.

Apan kini kinahanglan nga bantayan sa usa ka paagi ...

Unsa ang resulta? Ingon usa ka sangputanan, adunay usa ka tawo nga nahibal-an ang tanan nga dili masabtan sa tibuuk nga grupo sa mga developer, ug sa parehas nga oras kinahanglan usab niya mahibal-an ug mahimo ang among gipakita sa taas - imprastraktura sa hardware, imprastraktura sa Kubernetes, ug uban pa.

Unsa ang akong isulti ... Houston, kami adunay mga problema.

Ang pag-monitor sa usa ka modernong proyekto sa software usa ka proyekto sa software mismo

Gikan sa sayop nga pagtuo nga ang pagmonitor kay software, naugmad namo ang pagtuo sa mga milagro. Apan ang mga milagro, alaut, dili mahitabo. Dili nimo ma-install ang zabbix ug magdahum nga molihok ang tanan. Walay kapuslanan ang pag-instalar sa Grafana ug naglaum nga ang tanan mahimong ok. Kadaghanan sa oras igugol sa pag-organisar sa mga tseke sa operasyon sa mga serbisyo ug sa ilang interaksyon sa usag usa, pagsusi kung giunsa ang mga eksternal nga sistema nagtrabaho. Sa tinuud, 90% sa oras igugol dili sa pagsulat sa mga script, apan sa pagpalambo sa software. Ug kini kinahanglan nga pagdumala sa usa ka team nga nakasabut sa trabaho sa proyekto.
Kung sa kini nga sitwasyon usa ka tawo ang ihulog sa pagmonitor, mahitabo ang katalagman. Nga mao ang mahitabo bisan asa.

Pananglitan, adunay daghang mga serbisyo nga nakigsulti sa usag usa pinaagi sa Kafka. Niabot ang order, nag message mi about sa order kay Kafka. Adunay usa ka serbisyo nga maminaw sa impormasyon bahin sa order ug ipadala ang mga butang. Adunay usa ka serbisyo nga naminaw sa kasayuran bahin sa order ug nagpadala usa ka sulat sa tiggamit. Ug unya daghang mga serbisyo ang nagpakita, ug nagsugod kami sa pagkalibog.

Ug kung ihatag usab nimo kini sa admin ug mga developer sa yugto kung adunay gamay nga oras nga nahabilin sa wala pa ang pagpagawas, kinahanglan nga masabtan sa tawo kini nga tibuuk nga protocol. Mga. Ang usa ka proyekto sa kini nga sukod nagkinahanglag daghang oras, ug kini kinahanglan nga ilakip sa pag-uswag sa sistema.
Apan kanunay, labi na sa mga startup, nakita namon kung giunsa ang pag-monitor nga gi-post hangtod sa ulahi. "Karon maghimo kami usa ka Proof of Concept, maglansad kami uban niini, pasagdi nga mahulog - andam kami nga magsakripisyo. Ug unya among bantayan ang tanan. ” Sa diha nga (o kung) ang proyekto magsugod sa paghimo sa salapi, ang negosyo gusto nga makadugang sa dugang nga mga bahin - tungod kay kini nagsugod sa pagtrabaho, mao nga kini kinahanglan nga palig-onon pa! Ug naa ka sa punto diin kinahanglan nimo nga bantayan ang tanan nga nauna, nga dili kinahanglan 1% sa oras, apan daghan pa. Ug sa ingon, kinahanglan ang mga developer alang sa pag-monitor, ug mas dali nga tugutan sila nga magtrabaho sa mga bag-ong bahin. Ingon usa ka sangputanan, gisulat ang mga bag-ong bahin, naguba ang tanan, ug naa ka sa usa ka wala’y katapusan nga deadlock.

Busa unsaon pag-monitor ang usa ka proyekto sugod sa sinugdanan, ug unsa ang buhaton kung makakuha ka usa ka proyekto nga kinahanglan nga bantayan, apan wala ka mahibal-an kung asa magsugod?

Una, kinahanglan nimo nga magplano.

Lyrical digression: kasagaran magsugod sila sa pag-monitor sa imprastraktura. Pananglitan, kami adunay mga Kubernetes. Magsugod kita pinaagi sa pag-install sa Prometheus uban ang Grafana, pag-install sa mga plugins alang sa pag-monitor sa "cube". Dili lamang ang mga developer, apan ang mga administrador usab adunay dili maayo nga praktis sa: "Atong i-install kini nga plugin, apan ang plugin tingali nahibal-an kung giunsa kini buhaton." Gusto sa mga tawo nga magsugod sa yano ug prangka, kaysa sa hinungdanon nga mga aksyon. Ug ang pag-monitor sa imprastraktura dali.

Una, pagdesisyon kung unsa ug kung giunsa nimo gusto nga bantayan, ug dayon pagpili usa ka himan, tungod kay ang ubang mga tawo dili makahunahuna alang kanimo. Ug sila ba? Ang ubang mga tawo naghunahuna sa ilang kaugalingon, bahin sa usa ka unibersal nga sistema - o wala gyud maghunahuna kung kanus-a gisulat kini nga plugin. Ug tungod kay kini nga plugin adunay 5 ka libo nga mga tiggamit wala magpasabut nga kini adunay bisan unsang gamit. Tingali mahimo kang ika-5001 tungod lang kay aduna nay 5000 ka tawo didto kaniadto.

Kung magsugod ka sa pagmonitor sa imprastraktura ug ang backend sa imong aplikasyon mohunong sa pagtubag, ang tanan nga tiggamit mawad-an sa koneksyon sa mobile application. Usa ka sayup ang makita. Moduol sila kanimo ug moingon "Ang aplikasyon dili molihok, unsa ang imong gibuhat dinhi?" - "Kami nagmonitor." — “Unsaon nimo pagmonitor kung dili nimo makita nga ang aplikasyon wala molihok?!”

  1. Nagtuo ko nga kinahanglan nimo nga magsugod sa pag-monitor sa eksakto gikan sa entry point sa user. Kung ang user dili makakita nga ang aplikasyon nagtrabaho, mao kana, kini usa ka kapakyasan. Ug ang sistema sa pagmonitor kinahanglan una nga magpasidaan bahin niini.
  2. Ug unya na lang nato mamonitor ang imprastraktura. O buhata kini nga managsama. Mas sayon ​​​​sa imprastraktura - dinhi mahimo ra naton i-install ang zabbix.
  3. Ug karon kinahanglan nimo nga moadto sa mga ugat sa aplikasyon aron mahibal-an kung diin ang mga butang wala molihok.

Ang akong panguna nga ideya mao nga ang pag-monitor kinahanglan nga managsama sa proseso sa pag-uswag. Kung imong mabalda ang tim sa pagmonitor alang sa ubang mga buluhaton (pagmugna og CI/CD, sandboxing, pag-organisar pag-usab sa imprastraktura), ang pagmonitor magsugod sa pagkalangan ug mahimo nga dili ka makaapas sa kalamboan (o sa madugay o sa madali kinahanglan nimo nga hunongon kini).

Ang tanan pinaagi sa lebel

Ingon niini ang akong pagtan-aw sa organisasyon sa usa ka sistema sa pagmonitor.

1) lebel sa aplikasyon:

  • pagmonitor sa aplikasyon sa lohika sa negosyo;
  • pagmonitor sa health metrics sa mga serbisyo;
  • pag-monitor sa panagsama.

2) Ang-ang sa imprastraktura:

  • pagmonitor sa lebel sa orkestrasyon;
  • pagmonitor sa software sa sistema;
  • pagmonitor sa lebel sa iron.

3) Pag-usab ang lebel sa aplikasyon - apan ingon usa ka produkto sa engineering:

  • pagkolekta ug pagmonitor sa mga log sa aplikasyon;
  • APM;
  • pagsubay.

4) Pag-alerto:

  • organisasyon sa usa ka sistema sa pasidaan;
  • organisasyon sa usa ka sistema sa katungdanan;
  • organisasyon sa usa ka "base sa kahibalo" ug workflow alang sa pagproseso sa insidente.

importante: kita makakuha sa alerto dili human, apan diha-diha dayon! Dili kinahanglan nga ilunsad ang pag-monitor ug "sa usa ka paagi sa ulahi" mahibal-an kung kinsa ang makadawat mga alerto. Pagkahuman, unsa ang tahas sa pag-monitor: aron mahibal-an kung diin sa sistema ang usa ka butang nga sayup, ug aron mahibal-an kini sa husto nga mga tawo. Kung biyaan nimo kini hangtod sa katapusan, ang husto nga mga tawo mahibal-an nga adunay dili maayo pinaagi lamang sa pagtawag nga "wala’y nagtrabaho alang kanamo."

Layer sa Aplikasyon - Pag-monitor sa Logic sa Negosyo

Dinhi naghisgot kami bahin sa pagsusi sa kamatuoran nga ang aplikasyon nagtrabaho alang sa tiggamit.

Kini nga lebel kinahanglan buhaton sa panahon sa yugto sa pag-uswag. Pananglitan, kami adunay usa ka kondisyon nga Prometheus: kini moadto sa server nga naghimo sa mga pagsusi, gibira ang katapusan nga punto, ug ang katapusan nga punto moadto ug susihon ang API.

Kung kanunay nga gihangyo sa pag-monitor sa home page aron masiguro nga ang site nagtrabaho, ang mga programmer naghatag usa ka kuptanan nga mahimong makuha sa matag higayon nga kinahanglan nila aron masiguro nga ang API nagtrabaho. Ug ang mga programmer niining higayona nagpadayon gihapon sa pagsulat ug /api/test/helloworld
Ang bugtong paagi aron masiguro nga ang tanan molihok? - Dili!

  • Ang paghimo sa ingon nga mga tseke hinungdanon nga tahas sa mga nag-develop. Ang mga pagsulay sa yunit kinahanglan nga isulat sa mga programmer nga nagsulat sa code. Tungod kay kung imong i-leak kini sa admin, "Dude, ania ang usa ka lista sa mga protocol sa API alang sa tanan nga 25 nga mga gimbuhaton, palihug bantayan ang tanan!" - wala'y mahimo.
  • Kung imong i-print ang "hello world", walay usa nga makahibalo nga ang API kinahanglan ug molihok. Ang matag pagbag-o sa API kinahanglan nga magdala sa pagbag-o sa mga tseke.
  • Kung naa ka na sa ingon nga problema, hunong ang mga bahin ug igahin ang mga developer nga magsulat niini nga mga tseke, o dawaton ang mga pagkawala, dawata nga wala’y gisusi ug mapakyas.

Teknikal nga mga Tip:

  • Siguruha nga mag-organisar og usa ka eksternal nga server aron maorganisar ang mga tseke - kinahanglan nga sigurado ka nga ang imong proyekto magamit sa gawas sa kalibutan.
  • Pag-organisar og mga tseke sa tibuok API protocol, dili lang sa indibidwal nga mga endpoint.
  • Paghimo usa ka prometheus-endpoint nga adunay mga resulta sa pagsulay.

Layer sa aplikasyon - pagmonitor sa mga sukatan sa kahimsog

Karon naghisgot kami bahin sa panggawas nga sukatan sa kahimsog sa mga serbisyo.

Nakahukom kami nga among bantayan ang tanan nga "mga gunitanan" sa aplikasyon gamit ang mga eksternal nga tseke, nga among gitawag gikan sa usa ka eksternal nga sistema sa pag-monitor. Apan kini ang "mga gunitanan" nga "nakita" sa tiggamit. Gusto namon nga masiguro nga ang among mga serbisyo mismo molihok. Adunay usa ka mas maayo nga istorya dinhi: K8s adunay mga pagsusi sa kahimsog, aron labing menos ang "cube" mismo makombinsir nga ang serbisyo nagtrabaho. Apan katunga sa mga tseke nga akong nakita mao ang parehas nga print nga "hello world". Mga. Mao nga gibira niya kausa pagkahuman sa pag-deploy, gitubag niya nga maayo ang tanan - kana ra. Ug ang serbisyo, kung naghatag kini kaugalingon nga API, adunay daghang mga entry point alang sa parehas nga API, nga kinahanglan usab nga bantayan, tungod kay gusto namon mahibal-an nga kini molihok. Ug ato na kining gimonitor sa sulod.

Sa unsa nga paagi sa pagpatuman niini sa husto nga teknikal nga paagi: ang matag serbisyo nagbutyag sa usa ka katapusan nga punto mahitungod sa kasamtangan nga performance niini, ug sa mga graph sa Grafana (o bisan unsa nga aplikasyon) atong makita ang kahimtang sa tanan nga mga serbisyo.

  • Ang matag pagbag-o sa API kinahanglan nga magdala sa pagbag-o sa mga tseke.
  • Paghimo usa ka bag-ong serbisyo dayon nga adunay mga sukatan sa kahimsog.
  • Ang usa ka admin mahimong moadto sa mga nag-develop ug mangutana "idugang kanako ang usa ka magtiayon nga mga bahin aron akong masabtan ang tanan ug makadugang kasayuran bahin niini sa akong sistema sa pag-monitor." Apan ang mga developers kasagaran motubag, "Dili kami magdugang bisan unsa duha ka semana sa dili pa ang pagpagawas."
    Pahibaloa ang mga development managers nga adunay mahitabo nga mga kapildihan, ipahibalo usab sa management sa development managers. Tungod kay kung mahulog ang tanan, adunay motawag ug mohangyo nga i-monitor ang "kanunay nga pagkahulog nga serbisyo" (c)
  • Pinaagi sa dalan, paggahin sa mga developer sa pagsulat sa mga plugins alang sa Grafana - kini usa ka maayong tabang alang sa mga admin.

Layer sa Aplikasyon - Pag-monitor sa Integration

Ang pag-monitor sa integrasyon nagpunting sa pag-monitor sa mga komunikasyon tali sa mga sistema nga kritikal sa negosyo.

Pananglitan, adunay 15 nga mga serbisyo nga nakigsulti sa usag usa. Dili na kini bulag nga mga site. Mga. dili namo makuha ang serbisyo sa iyang kaugalingon, pagkuha /helloworld ug sabton nga ang serbisyo nagdagan. Tungod kay ang pag-order sa serbisyo sa web kinahanglan magpadala kasayuran bahin sa order sa bus - gikan sa bus, ang serbisyo sa bodega kinahanglan makadawat niini nga mensahe ug magtrabaho uban niini. Ug ang serbisyo sa pag-apod-apod sa email kinahanglan nga magproseso niini sa bisan unsang paagi, ug uban pa.

Tungod niini, dili kami makasabut, nga nagpunting sa matag indibidwal nga serbisyo, nga kini tanan molihok. Tungod kay kami adunay usa ka bus diin ang tanan nakigsulti ug nakig-uban.
Busa, kini nga yugto kinahanglan nga markahan ang yugto sa mga serbisyo sa pagsulay alang sa pakigsulti sa ubang mga serbisyo. Imposible nga organisahon ang pagmonitor sa komunikasyon pinaagi sa pagmonitor sa message broker. Kung adunay usa ka serbisyo nga nag-isyu sa datos ug usa ka serbisyo nga nakadawat niini, kung ang pag-monitor sa broker makita ra namon ang mga datos nga naglupad gikan sa kilid ngadto sa kilid. Bisan kung sa usa ka paagi nakahimo kami sa pag-monitor sa interaksyon sa kini nga datos sa sulod - nga ang usa ka prodyuser nag-post sa datos, adunay nagbasa niini, kini nga dagan nagpadayon sa pag-adto sa Kafka - dili gihapon kini maghatag kanamo nga kasayuran kung ang usa ka serbisyo nagpadala sa mensahe sa usa ka bersyon , apan ang ubang serbisyo wala magdahom niini nga bersyon ug gilaktawan kini. Wala kami mahibal-an bahin niini, tungod kay ang mga serbisyo magsulti kanamo nga ang tanan nagtrabaho.

Ang akong girekomendar nga buhaton:

  • Alang sa dungan nga komunikasyon: ang endpoint naghimo og mga hangyo sa mga may kalabutan nga serbisyo. Mga. among gikuha kini nga katapusan nga punto, pagbitad sa usa ka script sa sulod sa serbisyo, nga moadto sa tanan nga mga punto ug nag-ingon "Mahimo kong mobira didto, ug mobira didto, makabira ko didto ..."
  • Alang sa asynchronous nga komunikasyon: umaabot nga mga mensahe - gisusi sa endpoint ang bus alang sa mga mensahe sa pagsulay ug gipakita ang kahimtang sa pagproseso.
  • Para sa asynchronous nga komunikasyon: outgoing messages - ang endpoint nagpadala ug test messages sa bus.

Sama sa kasagaran nga mahitabo: kami adunay serbisyo nga naghulog sa datos sa bus. Mianhi kami niini nga serbisyo ug gihangyo ka nga isulti kanamo ang bahin sa kahimsog sa panagsama niini. Ug kung ang serbisyo kinahanglan nga maghimo usa ka mensahe sa usa ka lugar nga labi pa (WebApp), nan kini maghimo kini nga mensahe sa pagsulay. Ug kung nagpadagan kami usa ka serbisyo sa bahin sa OrderProcessing, una nga gi-post kung unsa ang mahimo nga ma-post nga independente, ug kung adunay pipila nga nagsalig nga mga butang, nan kini nagbasa usa ka hugpong sa mga mensahe sa pagsulay gikan sa bus, nakasabut nga mahimo kini maproseso, ireport kini ug , kung gikinahanglan, i-post kini sa dugang, ug mahitungod niini siya miingon - ang tanan ok, ako buhi.

Kanunay namong madungog ang pangutana nga "unsaon naton masulayan kini sa data sa kombat?" Pananglitan, naghisgot kami bahin sa parehas nga serbisyo sa pag-order. Ang order nagpadala mga mensahe sa bodega kung diin ang mga butang giwagtang: dili namon kini masulayan sa data sa kombat, tungod kay "ang akong mga butang mawagtang!" Solusyon: Planoha kining tibuok nga pagsulay sa sinugdanan. Adunay ka usab mga pagsulay sa yunit nga nagbiaybiay. Busa, buhata kini sa mas lawom nga lebel diin ikaw adunay channel sa komunikasyon nga dili makadaot sa operasyon sa negosyo.

Ang lebel sa imprastraktura

Ang pag-monitor sa imprastraktura usa ka butang nga dugay nang giisip nga pag-monitor mismo.

  • Ang pagmonitor sa imprastraktura mahimo ug kinahanglan nga ilunsad isip usa ka bulag nga proseso.
  • Dili ka kinahanglan magsugod sa pag-monitor sa imprastraktura sa usa ka nagdagan nga proyekto, bisan kung gusto nimo. Kini usa ka kasakit alang sa tanan nga mga devops. "Una akong bantayan ang cluster, akong bantayan ang imprastraktura" - i.e. Una, kini mag-monitor kung unsa ang naa sa ubos, apan dili moadto sa aplikasyon. Tungod kay ang aplikasyon usa ka dili masabtan nga butang alang sa mga devops. Gi-leak kini kaniya, ug wala siya makasabut kung giunsa kini paglihok. Apan nakasabot siya sa imprastraktura ug nagsugod niini. Apan dili - kinahanglan nimo nga bantayan una ang aplikasyon.
  • Ayaw pagpasobra sa gidaghanon sa mga alerto. Gikonsiderar ang pagkakomplikado sa modernong mga sistema, ang mga alerto kanunay nga naglupad, ug kinahanglan nimo nga mabuhi sa kini nga hugpong sa mga alerto. Ug ang on-call nga tawo, nga nagtan-aw sa usa ka gatos sa sunod nga mga alerto, magdesisyon nga "Dili ko gusto nga hunahunaon kini." Ang mga alerto kinahanglan lamang nga magpahibalo bahin sa mga kritikal nga butang.

Ang lebel sa aplikasyon isip usa ka yunit sa negosyo

Panguna nga mga punto:

  • ELK. Kini ang sumbanan sa industriya. Kung sa pila ka rason wala ka mag-aggregate og mga log, sugdi dayon.
  • APM. Ang mga eksternal nga APM ingon usa ka paagi aron dali nga masira ang pag-monitor sa aplikasyon (NewRelic, BlackFire, Datadog). Mahimo nimong i-install kini nga butang nga temporaryo aron mahibal-an kung unsa ang nahitabo kanimo.
  • Pagsubay. Sa daghang mga microservice, kinahanglan nimo nga masubay ang tanan, tungod kay ang hangyo dili na mabuhi sa iyang kaugalingon. Lisud kaayo ang pagdugang sa ulahi, mao nga mas maayo nga mag-iskedyul dayon sa pagsubay sa pag-uswag - kini ang trabaho ug gamit sa mga nag-develop. Kung wala pa nimo kini gipatuman, ipatuman kini! Tan-awa ang Jaeger/Zipkin

Nagpaalerto

  • Organisasyon sa usa ka sistema sa pagpahibalo: sa mga kondisyon sa pag-monitor sa daghang mga butang, kinahanglan adunay usa ka hiniusa nga sistema alang sa pagpadala mga pahibalo. Mahimo nimo sa Grafana. Sa Kasadpan, ang tanan naggamit sa PagerDuty. Ang mga alerto kinahanglang klaro (eg diin sila gikan...). Ug gitambagan nga kontrolon nga ang mga pahibalo madawat sa tanan
  • Organisasyon sa usa ka sistema sa katungdanan: ang mga alerto dili kinahanglan ipadala sa tanan (bisan ang tanan mo-react sa usa ka panon, o walay usa nga mo-react). Kinahanglan usab nga oncall ang mga developers: siguruha nga ipasabut ang mga bahin sa responsibilidad, paghimo og tin-aw nga mga panudlo ug isulat kung kinsa gyud ang motawag sa Lunes ug Miyerkules, ug kung kinsa ang tawagan sa Martes ug Biyernes (kung dili dili sila motawag bisan kinsa bisan sa panghitabo sa usa ka dako nga problema - mahadlok sila nga pukawon ka o makadisturbo : ang mga tawo sa kasagaran dili ganahan nga motawag ug mopukaw sa ubang mga tawo, ilabi na sa gabii). Ug ipasabut nga ang pagpangayo og tabang dili usa ka timailhan sa kawalay katakus ("Nangayo ako og tabang, kana nagpasabut nga ako usa ka dili maayo nga trabahante"), awhaga ang mga paghangyo alang sa tabang.
  • Organisasyon sa usa ka "base sa kahibalo" ug workflow alang sa pagproseso sa insidente: alang sa matag seryoso nga insidente, usa ka post-mortem kinahanglan nga planohon, ug isip usa ka temporaryo nga lakang, ang mga aksyon nga makasulbad sa insidente kinahanglan nga irekord. Ug himoa nga usa ka batasan nga ang balik-balik nga mga alerto usa ka sala; sila kinahanglan nga ayohon sa code o imprastraktura nga buhat.

Ang teknolohiya stack

Atong hunahunaon nga ang atong stack mao ang mosunod:

  • pagkolekta sa datos - Prometheus + Grafana;
  • pagtuki sa log - ELK;
  • alang sa APM o Pagsubay - Jaeger (Zipkin).

Patay ba ang pagmonitor? - Mabuhi ang pagmonitor

Ang pagpili sa mga kapilian dili kritikal. Tungod kay kung sa sinugdanan nakasabut ka kung giunsa ang pag-monitor sa sistema ug gisulat ang usa ka plano, nan magsugod ka sa pagpili sa mga himan nga nahiangay sa imong mga kinahanglanon. Ang pangutana mao kung unsa ang imong gipili nga bantayan sa una. Tungod kay tingali ang himan nga imong gipili sa sinugdanan dili gyud angay sa imong mga kinahanglanon.

Pipila ka teknikal nga mga punto nga akong nakita bisan asa karong bag-o:

Ang Prometheus giduso sa sulod sa Kubernetes - kinsa ang naghimo niini?! Kung nahagsa ang imong cluster, unsay imong buhaton? Kung ikaw adunay usa ka komplikado nga cluster sa sulod, nan kinahanglan adunay usa ka matang sa sistema sa pag-monitor sa sulod sa cluster, ug ang uban sa gawas, nga mangolekta og datos gikan sa sulod sa cluster.

Sa sulod sa cluster kita mangolekta og mga troso ug uban pa. Apan ang sistema sa pagmonitor kinahanglan sa gawas. Kasagaran, sa usa ka kumpol diin adunay Promtheus nga na-install sa sulod, adunay usab mga sistema nga naghimo sa gawas nga pagsusi sa operasyon sa site. Unsa kaha kung ang imong mga koneksyon sa kalibutan sa gawas nahulog ug ang aplikasyon dili molihok? Kini nahimo nga ang tanan maayo sa sulod, apan dili kini makapadali sa mga butang alang sa mga tiggamit.

kaplag

  • Ang pag-monitor sa pag-uswag dili ang pag-instalar sa mga utilities, apan ang pagpalambo sa usa ka produkto sa software. 98% sa pagmonitor karon kay coding. Pag-coding sa mga serbisyo, pag-coding sa gawas nga mga tseke, pagsusi sa mga serbisyo sa gawas, ug kana lang.
  • Ayaw usiki ang oras sa imong mga developer sa pag-monitor: mahimo’g moabot hangtod sa 30% sa ilang trabaho, apan takus kini.
  • Mga devops, ayaw kabalaka nga dili nimo ma-monitor ang usa ka butang, tungod kay ang pipila ka mga butang lahi kaayo nga paagi sa paghunahuna. Dili ka usa ka programmer, ug ang pag-monitor sa trabaho mao gyud ang ilang trabaho.
  • Kung ang proyekto nagdagan na ug wala gibantayan (ug ikaw usa ka manedyer), paggahin og mga kapanguhaan alang sa pagmonitor.
  • Kung ang produkto naa na sa produksiyon, ug ikaw usa ka devops nga gisultihan nga "i-set up ang pag-monitor" - sulayi nga ipasabut sa pagdumala kung unsa ang akong gisulat bahin niini.

Kini usa ka taas nga bersyon sa taho sa komperensya sa Saint Highload++.

Kung interesado ka sa akong mga ideya ug mga hunahuna bahin niini ug may kalabotan nga mga hilisgutan, nan dinhi mahimo nimo basaha ang channel 🙂

Source: www.habr.com

Idugang sa usa ka comment