Tlhokomelo e le ts'ebeletso: mokhoa oa modular bakeng sa meralo ea microservice

Kajeno, ntle le khoutu ea monolithic, morero oa rona o kenyelletsa li-microservices tse ngata. E 'ngoe le e 'ngoe ea tsona e hloka ho hlahlojoa. Ho etsa sena ka tekanyo e joalo ho sebelisa baenjiniere ba DevOps ho thata. Re thehile mokhoa oa ho beha leihlo o sebetsang e le tšebeletso bakeng sa bahlahisi. Ba ka ngola ka boithaopo li-metrics tsamaisong ea ho beha leihlo, ba li sebelisa, ba aha li-dashboards ba ipapisitse le tsona, 'me ba hokela litemoso ho bona tse tla hlahisoa ha litekanyetso li fihlelleha. Bakeng sa baenjiniere ba DevOps, ke lisebelisoa le litokomane feela.

Poso ena ke sengoloa sa puo ea ka le rona dikarolo ho RIT++. Batho ba bangata ba re kopile hore re etse litlaleho tsa mongolo ho tsoa moo. Haeba u ne u le kopanong kapa u shebelletse video, u ke ke ua fumana letho le lecha. Le bohle ba bang - amohelehile ho katse. Ke tla u bolella hore na re tlile joang tsamaisong e joalo, hore na e sebetsa joang le hore na re rerile ho e ntlafatsa joang.

Tlhokomelo e le ts'ebeletso: mokhoa oa modular bakeng sa meralo ea microservice

Nakong e fetileng: merero le merero

Re fihlile joang tsamaisong ea hona joale ea tlhokomelo? E le hore u arabe potso ena, u lokela ho ea ho 2015. Ke kamoo e neng e shebahala kateng ka nako eo:

Tlhokomelo e le ts'ebeletso: mokhoa oa modular bakeng sa meralo ea microservice

Re ne re e-na le li-node tse ka bang 24 tse neng li ikarabella ho beha leihlo. Ho na le pakete e fapaneng ea meqhaka e fapaneng, mangolo, li-daemone tseo ka tsela e itseng li beha leihlo ntho e itseng, li romellang melaetsa le ho etsa mesebetsi. Re ne re nahana hore ha re ntse re tsoela pele, tsamaiso e joalo e ne e tla fokola haholo. Ha ho na thuso ho e ntlafatsa: e boima haholo.
Re nkile qeto ea ho khetha lintho tseo re tla li boloka le ho li ntlafatsa, le tseo re tla li lahla. Ho ne ho e-na le tse 19. Ke li-graphite feela, li-aggregator le Grafana e le dashboard tse neng li setse. Empa tsamaiso e ncha e tla shebahala joang? Rata sena:

Tlhokomelo e le ts'ebeletso: mokhoa oa modular bakeng sa meralo ea microservice

Re na le polokelo ea metrics: tsena ke li-graphite, tse tla ipapisa le li-drive tsa SSD tse potlakileng, tsena ke li-aggregator tse itseng tsa metrics. E latelang - Grafana bakeng sa ho hlahisa li-dashboard le Moira bakeng sa tlhokomeliso. Hape re ne re batla ho theha mokhoa oa ho batla li-anomalies.

Tekanyetso: Tlhokomelo 2.0

Sena ke seo meralo e neng e shebahala ka eona ka 2015. Empa re ne re sa lokela ho lokisetsa feela lisebelisoa tsa motheo le tšebeletso ka boeona, empa hape le litokomane tsa eona. Re iketselitse maemo a koporasi, ao re a bitsang monitoring 2.0. Litlhoko tsa tsamaiso e ne e le life?

  • ho fumaneha kamehla;
  • nako ea ho boloka metrics = metsotsoana e 10;
  • polokelo e hlophisitsoeng ea metrics le dashboards;
  • SLA > 99,99%
  • pokello ea metrics ea liketsahalo ka UDP (!).

Re ne re hloka UDP hobane re na le phallo e kholo ea sephethephethe le liketsahalo tse hlahisang metrics. Haeba u li ngola kaofela ka graphite hang-hang, polokelo e tla putlama. Hape re khethile li-prefixes tsa boemo ba pele bakeng sa metrics eohle.

Tlhokomelo e le ts'ebeletso: mokhoa oa modular bakeng sa meralo ea microservice

E 'ngoe le e 'ngoe ea li-prefixes e na le thepa e itseng. Ho na le metrics bakeng sa li-server, marang-rang, lijana, lisebelisoa, lits'ebetso, joalo-joalo. Sefa se hlakileng, se thata, se thaepileng se kentsoe tšebetsong, moo re amohelang litekanyetso tsa boemo ba pele ebe re tlohela tse ling kaofela. Ke kamoo re rerileng tsamaiso ena kateng ka 2015. Ho etsahalang hona joale?

Hona joale: setšoantšo sa ho sebelisana ha likarolo tsa ho beha leihlo

Pele ho tsohle, re beha leihlo lits'ebetso: khoutu ea rona ea PHP, lits'ebetso le li-microservices - ka bokhutšoanyane, ntho e 'ngoe le e' ngoe eo baetsi ba rona ba e ngolang. Likopo tsohle li romella metrics ka UDP ho Brubeck aggregator (statsd, e ngotsoe bocha ka C). E ile ea e-ba eona e potlakileng ka ho fetisisa litekong tsa maiketsetso. 'Me e romela metrics e seng e kopantsoe ho Graphite ka TCP.

E na le mofuta oa metrics o bitsoang li-timers. Ena ke ntho e bonolo haholo. Mohlala, bakeng sa khokahanyo e 'ngoe le e 'ngoe ea mosebelisi ho ts'ebeletso, o romella metric e nang le nako ea karabo ho Brubeck. Likarabo tse milione li ile tsa kena, empa motlatsi o khutlisitse metrics e 10 feela. U na le palo ea batho ba tlileng, nako e phahameng, e fokolang le ea karolelano ea nako ea karabelo, bohareng le liphesente tse 4. Ebe data e fetisetsoa ho Graphite mme re e bona kaofela e phela.

Re boetse re na le aggregation bakeng sa metrics ho Hardware, software, metrics ea sistimi le sistimi ea rona ea khale ea ho lekola Munin (e ile ea re sebeletsa ho fihlela 2015). Re bokella tsena tsohle ka C daemon CollectD (e na le letoto la li-plugins tse fapaneng tse hahiloeng ho eona, e ka khetha lisebelisoa tsohle tsa sistimi e amohelang eo e kentsoeng ho eona, hlalosa feela tlhophiso moo u lokelang ho ngola data) le ngolla data ho Graphite ka eona. E boetse e ts'ehetsa li-plugins tsa python le li-shell scripts, kahoo o ka ngola litharollo tsa hau tsa tloaelo: CollectD e tla bokella data ena ho tsoa ho moamoheli oa lehae kapa ea hole (ho nka Curl) ebe o e romella ho Graphite.

Ebe re romela metrics eohle eo re e bokeletseng ho Carbon-c-relay. Ena ke tharollo ea Carbon Relay ho tloha Graphite, e fetotsoeng ka C. Ena ke router e bokellang metrics eohle eo re e romellang ho tloha ho li-aggregator tsa rona le ho li tsamaisa ho li-node. Hape boemong ba ho tsamaisa, e lekola bonnete ba metrics. Taba ea pele, li tlameha ho tsamaellana le leano la prefix leo ke le bonts'itseng pejana mme, la bobeli, li nepahetse bakeng sa graphite. Ho seng joalo ba tla theoha.

Carbon-c-relay ebe e romela metrics ho sehlopha sa Graphite. Re sebelisa Carbon-cache, e ngotsoeng bocha ho Go, joalo ka polokelo ea mantlha ea metrics. Go-carbon, ka lebaka la ho bala hangata, e feta hole Carbon-cache. E amohela data ebe e e ngolla li-disk e sebelisa sephutheloana sa whisper (e tloaelehileng, e ngotsoeng ka python). Bakeng sa ho bala lintlha tse tsoang ho polokelo ea rona, re sebelisa Graphite API. E potlakile ho feta WEB e tloaelehileng ea Graphite. Ho etsahala'ng ka data e latelang?

Ba ea Grafana. Re sebelisa lihlopha tsa rona tsa graphite e le mohloli o ka sehloohong oa data, 'me re na le Grafana e le sebaka sa marang-rang sa ho bonts'a lipalo le li-dashboard tsa ho haha. Bakeng sa e 'ngoe le e' ngoe ea litšebeletso tsa bona, bahlahisi ba iketsetsa dashboard ea bona. Ebe ba theha li-graph ho latela tsona, tse bonts'ang metrics eo ba e ngolang ho tsoa lits'ebetsong tsa bona. Ho phaella ho Grafana, re boetse re na le SLAM. Ena ke modemona oa python o balang SLA ho latela data e tsoang ho graphite. Joalokaha ke se ke boletse, re na le li-microservices tse 'maloa, tseo e' ngoe le e 'ngoe e nang le litlhoko tsa eona. Re sebelisa SLAM, re ea litokomaneng ebe re li bapisa le tse leng ho Graphite le ho bapisa hore na litlhokahalo li lumellana hantle hakae le boteng ba litšebeletso tsa rona.

Ha re tsoeleng pele: ho lemosa. E hlophisitsoe ho sebelisoa tsamaiso e matla - Moira. E ikemetse hobane e na le Graphite ea eona tlas'a hood. E ntlafalitsoe ke bashanyana ba SKB "Kontur", e ngotsoeng ka python le Go, mohloli o bulehileng ka ho feletseng. Moira o fumana phallo e tšoanang le e kenang ho graphite. Haeba ka lebaka le itseng polokelo ea hau e shoa, tlhokomeliso ea hau e ntse e tla sebetsa.

Re tsamaisitse Moira ho Kubernetes; e sebelisa sehlopha sa li-server tsa Redis joalo ka database ea mantlha. Phello e bile tsamaiso e mamellang liphoso. E bapisa letoto la metrics le lethathamo la lintho tse susumetsang: haeba ho se na moo ho buuoang ka teng, joale e theola metric. Kahoo e khona ho cheka li-gigabytes tsa metric ka motsotso.

Re boetse re hokela LDAP ea koporasi ho eona, ka thuso eo mosebelisi e mong le e mong oa sistimi ea koporasi a ka iketsetsang litsebiso ho ipapisitsoe le lintho tse susumetsang tse teng (kapa tse sa tsoa etsoa). Kaha Moira e na le Graphite, e tšehetsa likarolo tsohle tsa eona. Kahoo o qala ka ho nka mohala ebe o o kopitsa ho Grafana. Sheba hore na data e hlahisoa joang lirapeng. Mme ebe o nka mola o tshwanang mme o o qopisetse ho Moira. U e fanyeha ka meeli 'me u fumana tlhokomeliso ho tlhahiso. Ho etsa tsena tsohle, ha o hloke tsebo e khethehileng. Moira e ka hlokomelisa ka li-SMS, imeile, Jira, Slack... E boetse e tšehetsa ho etsoa ha mangolo a tloaelehileng. Ha trigger e etsahala ho eena, 'me a ingolisa ho mongolo oa tloaelo kapa binary, oa e tsamaisa ebe o romela JSON ho stdin bakeng sa binary ena. Ka hona, lenaneo la hau le tlameha ho le hlalosa. Seo u tla se etsa ka JSON ena se ho uena. Haeba u batla, e romelle ho Telegraph, haeba u batla, bula mesebetsi ho Jira, etsa eng kapa eng.

Re boetse re sebelisa nts'etsopele ea rona bakeng sa tlhokomeliso - Imagotag. Re ile ra fetola phanele, eo hangata e sebelisetsoang li-tag tsa theko ea elektroniki mabenkeleng, ho lumellana le litlhoko tsa rona. Re tlisitse li-trigger tse tsoang Moira ho eona. E bontša hore na li boemong bofe le hore na li etsahetse neng. Ba bang ba bashanyana ba nts'etsopele ba lahlile litemoso ho Slack le lengolo-tsoibila molemong oa phanele ena.

Tlhokomelo e le ts'ebeletso: mokhoa oa modular bakeng sa meralo ea microservice

Joale, kaha re k'hamphani e tsoelang pele, re ile ra beha leihlo Kubernetes tsamaisong ena. Re e kenyelelitse ka har'a sistimi e sebelisang Heapster, eo re e kentseng sehlopheng, e bokella data ebe e e romella ho Graphite. Ka lebaka leo, setšoantšo se shebahala tjena:

Tlhokomelo e le ts'ebeletso: mokhoa oa modular bakeng sa meralo ea microservice

Likarolo Tsa Tlhokomelo

Mona ke lethathamo la likhokahano tsa likarolo tseo re li sebelisitseng bakeng sa mosebetsi ona. Kaofela ha tsona ke mohloli o bulehileng.

Graphite:

Carbon-c-relay:

github.com/grobian/carbon-c-relay

Brubeck:

github.com/github/brubeck

E Bokelletsoe:

bokella.org

Moira:

github.com/moira-alert

Grafana:

grafana.com

Heapster:

github.com/kubernetes/heapster

Lipalo

Mona ke linomoro tse ling mabapi le hore na sistimi e sebetsa joang molemong oa rona.

Aggregator (brubeck)

Nomoro ea metrics: ~300/sec
Nako ea ho romela metrics ho Graphite: 30 sec
Tšebeliso ea lisebelisoa tsa seva: ~ 6% CPU (re bua ka li-server tse feletseng); ~ 1Gb RAM; ~3 Mbps LAN

Graphite (go-carbon)

Nomoro ea metrics: ~ 1 / min
Nako ea ntlafatso ea Metrics: 30 sec
Sekema sa polokelo ea metrics: 30sec 35d, 5min 90d, 10min 365d (e u fa kutloisiso ea se etsahalang ka ts'ebeletso ka nako e telele)
Tšebeliso ea lisebelisoa tsa seva: ~ 10% CPU; ~ 20Gb RAM; ~30 Mbps LAN

Ho feto-fetoha le maemo

Rona ba Avito re ananela ho feto-fetoha ha maemo tšebeletsong ea rona ea ho beha leihlo. Ke hobane'ng ha a ile a fetoha tjee? Taba ea pele, likarolo tsa eona lia fetoha: likarolo ka botsona le liphetolelo tsa tsona. Ea bobeli, tšehetso. Kaha morero oohle ke mohloli o bulehileng, o ka fetola khoutu ka bouena, oa etsa liphetoho, 'me oa kenya tšebetsong mesebetsi e sa fumaneheng ka ntle ho lebokose. Ho sebelisoa mekotla e tloaelehileng haholo, haholo Go le Python, kahoo sena se etsoa habonolo feela.

Mohlala oa bothata ba sebele ke ona. Metric ho Graphite ke faele. E na le lebitso. Lebitso la faele = lebitso la metric. 'Me ho na le mokhoa oa ho fihla moo. Mabitso a lifaele ho Linux a lekanyelitsoe ho litlhaku tse 255. 'Me re na le (joaloka "bareki ba ka hare") bahlankana ba tsoang lefapheng la polokelo ea boitsebiso. Ba re ho rona: "Re batla ho beha leihlo lipotso tsa rona tsa SQL. Ebile ha se litlhaku tse 255, empa ke 8 MB ka 'ngoe. Re batla ho li hlahisa Grafana, bona litlhophiso tsa kopo ena, mme ho molemo le ho feta, re batla ho bona bokaholimo ba likopo tse joalo. E tla ba ntho e ntle haholo haeba e hlahisoa ka nako ea sebele. E ka ba ntho e ntle haholo ho ba beha tlhokomeliso. ”

Tlhokomelo e le ts'ebeletso: mokhoa oa modular bakeng sa meralo ea microservice
Mohlala potso ea SQL e nkuoa e le mohlala ho tsoa ho site postgrespro.ru

Re theha seva sa Redis mme re sebelisa li-plugins tsa rona tse Bokelletsoeng, tse eang Postgres ebe re nka lintlha tsohle ho tloha moo, re romella metrics ho Graphite. Empa re fetola lebitso la metric ka li-hashes. Ka nako e le 'ngoe re romela hash e tšoanang ho Redis e le senotlolo, le potso eohle ea SQL e le boleng. Seo re lokelang ho se etsa feela ke ho etsa bonnete ba hore Grafana a ka ea Redis ho ea nka boitsebiso bona. Re bula Graphite API hobane... sena ke sebopeho se seholo sa ho sebelisana ha likarolo tsohle tsa ho shebella le graphite, 'me re kenya ts'ebetso e ncha moo e bitsoang aliasByHash() - ho tloha Grafana re fumana lebitso la metric,' me re e sebelise ka kopo ho Redis e le senotlolo, ho karabo re fumana boleng ba senotlolo, e leng "potso ea rona ea SQL" " Kahoo, re ile ra bontša Grafana pontšo ea potso ea SQL, eo ka khopolo e neng e sa khonehe ho e bontša moo, hammoho le lipalo-palo ho eona (mehala, mela, total_time, ...).

Liphello

Ho fumaneha Ts'ebeletso ea rona ea ho beha leihlo e fumaneha 24/7 ho tsoa ho sesebelisoa leha e le sefe le khoutu efe kapa efe. Haeba u na le monyetla oa ho fumana lits'ebeletso tsa polokelo, u ka ngolla data ho ts'ebeletso. Puo ha e bohlokoa, liqeto ha li bohlokoa. U hloka feela ho tseba ho bula sokete, beha metric moo ebe u koala sokete.

Ho tšepahala Likarolo tsohle li mamella liphoso 'me li sebetsana le meroalo ea rona hantle.

Tšitiso e tlase ea ho kena. Ho sebelisa sistimi ena, ha ho hlokahale hore u ithute lipuo tsa mananeo le lipotso ho Grafana. Bula feela kopo ea hau, kenya sokete ho eona e tla romella metrics ho Graphite, e koale, bula Grafana, theha li-dashboards moo 'me u shebe boitšoaro ba metrics ea hau, ho amohela litsebiso ka Moira.

Boikemelo. U ka iketsetsa tsena tsohle, ntle le thuso ea lienjiniere tsa DevOps. 'Me sena ke molemo, hobane u ka shebella morero oa hau hona joale, ha ua tlameha ho botsa mang kapa mang - ebang ke ho qala mosebetsi kapa ho etsa liphetoho.

Re ikemiselitse ho etsa eng?

Ntho e 'ngoe le e 'ngoe e thathamisitsoeng ka tlase ha se menahano e sa utloahaleng feela, empa ke ntho eo bonyane mehato ea pele e nkiloeng ho eona.

  1. Anomaly detector. Re batla ho theha tšebeletso e tla ea ho Graphite storages ea rona le ho hlahloba metric ka 'ngoe re sebelisa li-algorithms tse fapaneng. Ho se ho na le li-algorithms tseo re batlang ho li sheba, ho na le data, re tseba ho sebetsa le eona.
  2. Metadata. Re na le lits'ebeletso tse ngata, li fetoha ha nako e ntse e ea, joalo ka batho ba sebetsang le bona. Ho lula u boloka litokomane ka letsoho ha se khetho. Ke ka lebaka leo re kenyang metadata ho li-microservices tsa rona. E bolela hore na ke mang ea e ntlafalitseng, lipuo tseo e sebetsanang le tsona, litlhoko tsa SLA, hore na litsebiso li lokela ho romelloa hokae le ho mang. Ha o sebelisa tšebeletso, data eohle ea mokhatlo e etsoa e ikemetseng. Ka lebaka leo, o fumana lihokelo tse peli - e 'ngoe ho li-trigger, e' ngoe ho li-dashboards Grafana.
  3. Tlhokomelo ntlong e 'ngoe le e 'ngoe. Re lumela hore baetsi bohle ba lokela ho sebelisa sistimi e joalo. Tabeng ena, kamehla u utloisisa hore na sephethephethe sa hau se hokae, se etsahalang ho sona, moo se oelang teng, moo mefokolo ea sona e leng teng. Haeba, ka mohlala, ho na le ntho e tlang 'me e senya tšebeletso ea hau, joale u tla ithuta ka eona eseng nakong ea mohala o tsoang ho mookameli, empa ho tloha tlhokomeliso,' me hang-hang u ka bula li-log tsa morao-rao 'me u bone se etsahetseng moo.
  4. Tshebetso e phahameng. Morero oa rona o lula o hola, 'me kajeno o sebetsa ka litekanyetso tsa metric tse ka bang 2 ka motsotso. Selemong se fetileng, palo ena e ne e le 000 000. 'Me khōlo e ntse e tsoela pele,' me sena se bolela hore ka mor'a nako e itseng Graphite (ho hoeshetsa) e tla qala ho laela haholo tsamaiso ea disk. Joalokaha ke se ke boletse, mokhoa ona oa ho beha leihlo o sebetsa hohle ka lebaka la ho fapanyetsana ha likarolo. Motho e mong o boloka le ho lula a atolosa lisebelisoa tsa bona tsa motheo ka ho khetheha bakeng sa Graphite, empa re nkile qeto ea ho tsamaea ka tsela e fapaneng: sebelisa TlanyaHouse joalo ka polokelo ea metrics ea rona. Phetoho ena e batla e phethehile, 'me haufinyane ke tla u bolella ka ho qaqileng haholoanyane hore na sena se entsoe joang: ke mathata afe a neng a le teng le hore na a hlōtsoe joang, mokhoa oa ho falla o tsamaile joang, ke tla hlalosa likarolo tse khethiloeng e le tse tlamang le litlhophiso tsa tsona.

Kea leboha ha u mametse! Botsa lipotso tsa hau ka sehlooho, ke tla leka ho araba mona kapa li-post tse latelang. Mohlomong motho o na le boiphihlelo ba ho haha ​​​​sistimi e ts'oanang ea ho beha leihlo kapa ho fetohela ho Clickhouse maemong a ts'oanang - arolelana maikutlo.

Source: www.habr.com

Eketsa ka tlhaloso