Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Li-log ke karolo ea bohlokoa ea sistimi, e u lumellang ho utloisisa hore e ea sebetsa (kapa ha e sebetse) joalo ka ha ho lebelletsoe. Ka mohaho oa microservice, ho sebetsa ka lifate ho fetoha taeo e fapaneng bakeng sa Olympiad e khethehileng. Ho na le mathata a mangata a lokelang ho rarolloa:

  • mokhoa oa ho ngola li-log ho tsoa ho kopo;
  • moo ho ngoloang likutu;
  • mokhoa oa ho tsamaisa likutu bakeng sa ho boloka le ho sebetsa;
  • mokhoa oa ho sebetsa le ho boloka likutung.

Ts'ebeliso ea mahlale a hajoale a li-containeration e eketsa lehlabathe ka holim'a rake sebakeng sa likhetho bakeng sa ho rarolla bothata.

Hoo e ka bang sena ke sengoloa sa tlaleho ea Yuri Bushmelev "'Mapa oa rake sebakeng sa ho bokella le ho tsamaisa lifate"

Ke mang ea tsotellang, ka kopo tlasa katse.

Lebitso la ka ke Yuri Bushmelev. Ke sebetsa Lazada. Kajeno ke tla bua ka hore na re ile ra etsa likutu tsa rona joang, re li bokelletse joang, le hore na re ngola eng moo.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Re tsoa kae? Re bo-mang? Lazada ke mohoebi oa marang-rang oa No. 1 linaheng tse tšeletseng tsa Asia Boroa-bochabela. Linaha tsena kaofela li ajoa har'a litsi tsa rona tsa data. Hona joale ho na le litsi tsa data tsa 4. Ke hobane'ng ha see se le bohlokoa? Hobane liqeto tse ling li ne li bakoa ke taba ea hore ho na le khokahano e fokolang haholo lipakeng tsa litsi. Re na le meralo ea microservice. Ke ile ka makala ha ke fumana hore re se re na le li-microservices tse 80. Ha ke qala mosebetsi ona ka likutu, ho ne ho e-na le tse 20 feela. Hape ho na le karolo e khōlō ea lefa la PHP, eo le ’na ke tlamehang ho phela le eona le ho mamella. Sena sohle hajoale se hlahisa melaetsa e fetang limilione tse 6 ka motsotso bakeng sa sistimi ka kakaretso. E latelang ke tla bontša hore na re leka ho phela le sena joang, le hore na hobaneng ho le joalo.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

U tlameha ho phela le melaetsa ena ea limilione tse 6. Re lokela ho etsa’ng ka tsona? Melaetsa e limilione tse 6 eo u e hlokang:

  • romela ho tsoa ho app
  • amohela bakeng sa ho beleha
  • fana ka tlhahlobo le polokelo.
  • sekaseka
  • e boloke ka tsela e itseng.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Ha ho hlaha melaetsa e limilione tse tharo, ke ile ka shebahala ka tsela e tšoanang. Hobane re qalile ka lipeni tse seng kae feela. Ho hlakile hore li-log tsa kopo li ngotsoe moo. Ka mohlala, ke ne ke sitoa ho hokahanya le polokelongtshedimosetso, ke khonne ho hokela polokelongtshedimosetso empa ha ke kgone ho bala letho. Empa ntle le sena, e 'ngoe le e' ngoe ea li-microservices tsa rona e boetse e ngola lethathamo la phihlello. Kopo e 'ngoe le e' ngoe e fihlang ho microservice e tlalehiloe ka har'a log. Ke hobane'ng ha re etsa see? Bahlahisi ba batla ho khona ho latela. Letlapa le leng le le leng la phihlello le na le lebala la traceid, leo ho lona sebopeho se ikhethileng se lokollang ketane eohle ebe se bonts'a mohlala ka bokhabane. Mehlala e bontša hore na kopo e tsamaile joang, 'me sena se thusa baetsi ba rona ho sebetsana ka potlako le litšila tse sa tsejoeng.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Joang ho phela le see? Joale ke tla hlalosa ka bokhutšoanyane sebaka sa likhetho - hore na bothata bona bo rarolloa joang ka kakaretso. Mokhoa oa ho rarolla bothata ba ho bokella, ho fetisa le ho boloka likutu.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Joang ho ngola ho tsoa ho kopo? Ho hlakile hore ho na le mekhoa e fapaneng. Haholo-holo, ho na le mekhoa e metle, joalo ka ha bo-mphato ba rona ba feshene ba re bolella. Ho na le mefuta e 'meli ea sekolo sa khale, joalo ka ha bo-ntate-moholo ba rona ba re boleletse. Ho na le litsela tse ling.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Boemo ba ho bokella lifate bo batla bo tšoana. Ha ho na likhetho tse ngata tsa ho rarolla karolo ena. Ho se ho ntse ho e-na le tse ling tsa tsona, empa ha li ngata hakaalo.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Empa ka tlhahiso le tlhahlobo e latelang, palo ea mefuta e fapaneng e qala ho phatloha. Ha ke na ho hlalosa khetho ka 'ngoe hona joale. Ke nahana hore likhetho tse ka sehloohong li tsebahala ho bohle ba thahasellang sehlooho sena.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Ke tla u bontša hore na re e entse joang Lazada, le hore na e qalile joang.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Selemong se fetileng ke ile ka tla Lazada 'me ka romeloa morerong o mabapi le lifate. E ne e le ntho e kang ena. Lenane la kopo le ngotsoe ho stdout le stderr. Ntho e 'ngoe le e 'ngoe e ne e etsoa ka mokhoa oa feshene. Empa joale bahlahisi ba ile ba e lahlela ka ntle ho phallo e tloaelehileng, 'me ka tsela e itseng litsebi tsa litšebeletso tsa motheo li tla e tseba. Pakeng tsa litsebi tsa litšebeletso tsa motheo le bahlahisi, ho boetse ho na le bahlahisi ba ileng ba re: "Uh ... ho lokile, ha re li phuthele ka faele e nang le khetla, 'me ke phetho." 'Me kaha sena sohle se ne se le ka har'a setshelo, ba se phuthela hantle ka har'a sets'oants'o ka bosona, ba etsa 'mapa oa lethathamo la libuka ka hare' me ba le beha moo. Ke nahana hore ho hlakile ho bohle hore na ho tlile joang.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Ha re shebeng hanyane hajoale. Re ile ra isa lifate tsee joang? Motho e mong o khethile td-agent, eo ha e le hantle e buang hantle, empa e sa bue hantle. Ke ntse ke sa utloisise kamano pakeng tsa merero ena e 'meli, empa ho bonahala eka e bua ka ntho e le' ngoe. 'Me sena se ngotsoe ka mokhoa o phollatsi, se ngotsoeng ka Ruby, se bala lifaele tsa log, sa li arola ho JSON se sebelisa mofuta o itseng oa kamehla. Eaba ke ba romela Kafka. Ho feta moo, Kafka re ne re e-na le lihlooho tse 4 tse arohaneng bakeng sa API ka 'ngoe. Hobaneng 4? Hobane ho phela, ho na le sethala, le hobane ho na le stdout le stderr. Bahlahisi ba li theha, 'me baetsi ba litšebeletso tsa motheo ba tlameha ho li theha Kafka. Ho feta moo, Kafka e ne e laoloa ke lefapha le leng. Ka hona, ho ne ho hlokahala ho theha tekete e le hore ba ka etsa lihlooho tse 4 bakeng sa api ka 'ngoe. E mong le e mong o ile a lebala ka eona. Ka kakaretso, ho ne ho e-na le lithōle le merusu.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Joale re ile ra etsa'ng ka see? Re e rometse Kafka. Joale halofo ea lifate tse tsoang Kafka e ile ea fofela Logstash. Halofo e ’ngoe ea lifate e ne e arotsoe. Ba bang ba ile ba fofela ho Graylog e le 'ngoe, ba bang ho e' ngoe ea Graylog. Ka lebaka leo, tsena tsohle li ile tsa kena sehlopheng se le seng sa Elasticsearch. Ke hore moferefere ona kaofela o ile oa fella moo. O seke oa etsa joalo!

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Sena ke kamoo se shebahalang kateng ha u se sheba ka holimo. O seke oa etsa joalo! Mona libaka tsa mathata li tšoauoa hang-hang ka linomoro. Ha e le hantle ho na le tse ngata tsa tsona, empa tse 6 li hlile li na le mathata a hlokang ho etsoa ho hong ka tsona. Ke tla u bolella ka tsona ka thoko hona joale.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Mona (1,2,3) re ngola lifaele mme, ka hona, ho na le li-rake tse tharo mona hang-hang.

Ea pele (1) ke hore re lokela ho li ngola kae-kae. E ne e ke ke ea e-ba ntho e lakatsehang kamehla ho fa API bokhoni ba ho ngola ka ho toba faeleng. Ke ntho e lakatsehang hore API e be ka thoko ka har'a sets'oants'o, kapa ho betere, hore e baloe feela. Ke molaoli oa sistimi, kahoo ke na le pono e fapaneng hanyane ea lintho tsena.

Taba ea bobeli (2,3) ke hore re na le likopo tse ngata tse tlang ho API. API e ngola lintlha tse ngata ho faele. Lifaele li ntse li eketseha. Re hloka ho li potoloha. Hobane ho seng joalo u ke ke ua khona ho boloka li-disk leha e le life moo. Ho li potoloha ho fosahetse hobane li entsoe ka ho tsamaisa khetla ho ea bukeng. Ha ho tsela eo re ka e nchafatsang ka eona. U ke ke ua bolella sesebelisoa ho bula li-handle hape. Hobane bahlahisi ba tla u sheba joalo ka ha u le sethoto: "Litlhaloso life? Ka kakaretso re ngolla stdout. " Baetsi ba meralo ba ile ba etsa copytruncate ho logrotate, e leng feela ho etsa kopi ea faele le ho ngola ea mantlha. Ka hona, lipakeng tsa lits'ebetso tsena tsa ho kopitsa sebaka sa disk hangata se fela.

(4) Re ne re e-na le lifomate tse fapaneng ho li-API tse fapaneng. Li ne li fapane hanyane, empa regexp e ne e tlameha ho ngoloa ka tsela e fapaneng. Kaha tsena tsohle li ne li laoloa ke Puppet, ho ne ho e-na le sehlopha se seholo sa lihlopha tse nang le maphele a tsona. Ho feta moo, boholo ba nako td-agent e ne e ka ja mohopolo, ea hloka kelello, e ka iketsa eka e sebetsa 'me e sa etse letho. Ho tsoa ka ntle ho ne ho ke ke ha khoneha ho utloisisa hore ha a etse letho. Ha e le hantle, o tla oa 'me e mong o tla mo nka hamorao. Hantle-ntle, tlhokomeliso e tla fihla, 'me motho e mong o tla ea ho e phahamisa ka matsoho.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

(6) 'Me litšila le litšila tse ngata e ne e le elasticsearch. Hobane e ne e le phetolelo ea khale. Hobane re ne re se na benghali ba inehetseng ka nako eo. Re ne re e-na le lifate tse sa tšoaneng tseo masimo a tsona a neng a ka kopana. Li-log tse fapaneng tse tsoang lits'ebetsong tse fapaneng li ka ngoloa ka mabitso a masimong a tšoanang, empa ho ka ba le data e fapaneng kahare. Ke hore, log e le 'ngoe e tla le Integer tšimong, mohlala, boemo. Log e 'ngoe e tla le String lebaleng la boemo. Ha ho na 'mapa o sa fetoheng, sena ke ntho e ntle haholo. Haeba, ka mor'a ho potoloha index ka elasticsearch, molaetsa o nang le khoele o fihla pele, joale re phela ka mokhoa o tloaelehileng. Empa haeba ea pele e fihlile ho tsoa ho Integer, melaetsa eohle e latelang e tsoang ho String e lahloa feela. Hobane mofuta oa lebala ha o lumellane.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Re ile ra qala ho botsa lipotso tsena. Re ile ra etsa qeto ea ho se batle ba molato.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Empa ho na le ntho e lokelang ho etsoa! Ntho e totobetseng ke hore re hloka ho theha litekanyetso. Re ne re se re ntse re e-na le litekanyetso tse itseng. Re ile ra qala tse ling hamorao. Ka lehlohonolo, mokhoa o le mong oa log bakeng sa li-API tsohle o ne o se o amohetsoe ka nako eo. E ngotsoe ka kotloloho ho litekanyetso tsa tšebelisano lipakeng tsa lits'ebeletso. Ka hona, ba batlang ho fumana li-log ba tlameha ho li ngola ka mokhoa ona. Haeba motho a sa ngole lintlha ka mokhoa ona, joale ha re tiise letho.

Ka mor'a moo, ke rata ho theha maemo a bonngoeng bakeng sa mekhoa ea ho rekota, ho tsamaisa le ho bokella lintlha. Ha e le hantle, li ngoloe hokae, le mokhoa oa ho li isa. Boemo bo loketseng ke ha merero e sebelisa laebrari e tšoanang. Ho na le laeborari e arohaneng ea ho rema lifate bakeng sa Go, le laeborari e arohaneng ea PHP. E mong le e mong eo re nang le eena o lokela ho li sebelisa. Hajoale, nka re re atlehile ka karolo ea 80 lekholong ho sena. Empa batho ba bang ba tsoela pele ho ja cacti.

'Me moo (ho slide) "SLA bakeng sa ho tsamaisoa ha lifate" ha e sa qala ho hlaha. Ha e so be teng, empa re ntse re e sebetsa. Hobane ho bonolo haholo ha meaho ea motheo e re haeba u ngola ka mokhoa o joalo le ka mokhoa o joalo sebakeng se joalo le ho feta melaetsa ea N motsotsoana, joale re tla e isa sebakeng se joalo le se joalo. Sena se imolla hlooho e ngata haholo. Haeba ho na le SLA, joale sena se monate haholo!

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Re qalile joang ho rarolla bothata boo? Bothata bo boholo e ne e le ka td-agent. Ho ne ho sa hlaka hore na lifate tsa rōna li ile kae. Na li isitsoe? Na ba ea? Leha ho le joalo, ba hokae? Ka hona, ntlha ea pele e ile ea etsoa qeto ea ho nkela td-agent sebaka. Ke hlalositse ka bokhutšoane likhetho tsa hore na nka e nkela sebaka ka eng mona.

E bua hantle. Taba ea pele, ke ile ka kopana le eena mosebetsing oa pele, 'me le eena o ne a oela moo nako le nako. Taba ea bobeli, sena sea tšoana, ho profil feela.

Filebeat. E ne e re loketse joang? Hobane e ho Go, mme re na le boiphihlelo bo bongata ho Go. Ka lebaka leo, haeba ho ka etsahala ntho leha e le efe, ka tsela e itseng re ka ekelletsa ho eona. Ke kahoo re sa kang ra e nka. E le hore ho se be le moleko ofe kapa ofe oa ho qala ho ingolla hape.

Tharollo e totobetseng bakeng sa sysadmin ke mefuta eohle ea li-syslogs ka bongata bona (syslog-ng/rsyslog/nxlog).

Kapa ngola ntho ea hau, empa re lahlile sena, hammoho le filebeat. Haeba u ngola ntho e itseng, ho molemo ho ngola ntho e molemo bakeng sa khoebo. Ho fana ka likutu, ho molemo ho nka ntho e lokiselitsoeng.

Ka hona, khetho e hlile e theohile ho khetho pakeng tsa syslog-ng le rsyslog. Ke ile ka sekamela ho rsyslog hobane feela re ne re se re ntse re e-na le litlelase tsa rsyslog ho Puppet, 'me ha kea ka ka fumana phapang e hlakileng lipakeng tsa tsona. syslog ke eng, syslog ke eng. E, ba bang ba na le litokomane tse mpe, tse ling li betere. Enoa a ka e etsa ka tsela ena, 'me e mong a ka e etsa ka tsela e fapaneng.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Le hanyane ka rsyslog. Pele ho tsohle, e ntle hobane e na le li-module tse ngata. E na le RainerScript e ka baloang ke motho (puo ea tlhophiso ea sejoale-joale). Ke bonase e ntle eo re ka etsisang boitšoaro ba td-agent re sebelisa lisebelisoa tse tloaelehileng, 'me ha ho letho le fetotsoeng bakeng sa lits'ebetso. Ka mantsoe a mang, re fetola td-agent ho rsyslog, 'me re tlohele tse ling kaofela hajoale. 'Me hang-hang re fumana ho fana ka mosebetsi. E latelang, mmnormalize ke ntho e makatsang ho rsyslog. E u lumella ho arola likutu, empa eseng ka Grok le regexp. E etsa sefate se sa bonahaleng sa syntax. E arola lits'oants'o ka mokhoa o ts'oanang le ha motho ea bokellang mehloli ea litaba. Sena se u lumella ho sebetsa ka potlako haholo, ho ja CPU e nyane, 'me, ka kakaretso, ke ntho e ntle haholo. Ho na le li-bonase tse ling tse ngata. Nke ke ka lula ho tsona.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

rsyslog e na le mathata a mang a mangata. Li batla li tšoana le li-bonase. Mathata a ka sehloohong ke hore o hloka ho khona ho e pheha, mme o hloka ho khetha mofuta.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Re ile ra etsa qeto ea hore re tla ngola likutu ho sokete ea unix. Mme eseng ho /dev/log, hobane moo re na le pherekano ea lits'oants'o tsa sistimi, tse ngotsoeng li le mothating ona. Kahoo ha re ngolle soketeng e ikhethileng. Re tla e hokahanya le melaoana e fapaneng. Ha re keng ra kena-kenana le letho. Ntho e 'ngoe le e 'ngoe e tla ba e hlakileng le e utloisisoang. Ke sona seo re se entseng hantle. Bukana e nang le li-sockets tsena e behiloe 'me e fetisetsoa ho lijana tsohle. Li-container li khona ho bona sokete eo li e hlokang, li bulehe ebe li e ngolla.

Hobaneng e se faele? Hobane bohle ba e bala sehlooho se buang ka Badushechka, e ileng ea leka ho fetisetsa faele ho docker, 'me ho ile ha fumanoa hore ka mor'a ho qala rsyslog, tlhaloso ea faele e fetohile,' me docker e lahleheloa ke faele ena. O lula a bula ntho e 'ngoe, empa e seng sokete e le 'ngoe moo ba ngolang teng. Re nkile qeto ea hore re tla iphapanyetsa bothata bona, 'me, ka nako e ts'oanang, re fete bothata ba ho thibela.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Rsyslog e etsa liketso tse bonts'itsoeng ho slide ebe e romela lintlha ho relay kapa Kafka. Kafka e latela tsela ea khale. Relay - Ke lekile ho sebelisa rsyslog e hloekileng ho fana ka lits'oants'o. Ntle le Mola oa Molaetsa, o sebelisa lisebelisoa tse tloaelehileng tsa rsyslog. Ha e le hantle, ea sebetsa.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Empa ho na le lintlha tse mabapi le mokhoa oa ho li kenya hamorao karolong ena (Logstash/Graylog/ES). Karolo ena (rsyslog-rsyslog) e sebelisoa lipakeng tsa datacenters. Mona ke sehokelo sa tcp se hatelletsoeng, se re lumellang ho boloka li-bandwidth mme, ka hona, ka tsela e itseng re eketsa monyetla oa hore re fumane lintlha tse tsoang setsing se seng sa data ha mocha o koaletsoe. Hobane re na le Indonesia, moo tsohle li leng mpe. Ke hona moo bothata bo sa feleng bo leng teng.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Re ile ra nahana hore na re ka beha leihlo joang hore na ho na le monyetla oa hore li-log tseo re li ngotseng ho tsoa ts'ebelisong li fihle pheletsong? Re nkile qeto ea ho qala metrics. rsyslog e na le mojule oa eona oa pokello ea lipalo, o nang le mefuta e meng ea li-counters. Ka mohlala, e ka u bontša boholo ba mokoloko, kapa hore na ke melaetsa e mekae e fihlileng ketsong e joalo le e joalo. U se u ka nka ho hong ho bona. Ho feta moo, e na le li-counters tse tloaelehileng tse ka lokisoang, 'me e tla u bontša, mohlala, palo ea melaetsa eo API e itseng e e ngotseng. Ka mor'a moo, ke ile ka ngola rsyslog_exporter ka Python, 'me re e rometse kaofela ho Prometheus le ho haha ​​​​li-graph. Re ne re hlile re batla metrics ea Graylog, empa ha re so be le nako ea ho e beha.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Mathata e ne e le afe? Mathata a ile a hlaha ha re fumana (KA TSOHLE!) hore Live APIs tsa rona li ngola melaetsa ea 50k motsotsoana. Ena ke Live API feela ntle le sethala. Mme Graylog e re bonts'a melaetsa e likete tse 12 feela motsotsoana. Mme ho ile ha hlaha potso e utloahalang: masalla a hokae? Ho tloha moo re ileng ra etsa qeto ea hore Graylog e ke ke ea khona ho mamella. Re ile ra sheba, 'me, kannete, Graylog le Elasticsearch ha li khone ho sebetsana le phallo ena.

Ka mor'a moo, litšibollo tse ling tseo re ileng ra li fumana tseleng.

Ho ngolla soketeng ho thibiloe. E etsahetse joang? Ha ke ne ke sebelisa rsyslog bakeng sa ho pepa, ka nako e 'ngoe mocha o pakeng tsa litsi tsa data o ile oa senyeha. Delivery e ile ea emisa sebakeng se seng, thomello e emisitsoe sebakeng se seng. Tsena tsohle li fihlile mochining o nang le li-API tse ngollang rsyslog socket. Ho ne ho e-na le mokoloko moo. Ebe mokoloko oa ho ngolla sokete ea unix, eo ka ho sa feleng e leng lipakete tse 128, e tlatsitsoe. Mme lengolo le latelang () ts'ebelisong le koetsoe. Ha re sheba laebrari eo re e sebelisang ho Go applications, ho ne ho ngotsoe moo hore ho ngolla socket ho etsahala ka mokhoa o sa thibeleng. Re ne re kholisehile hore ha ho letho le thibetsoeng. Hobane rea bala sehlooho se buang ka Badushechkaya ngotseng ka yona. Empa ho na le nakwana. Hape ho ne ho e-na le loop e sa feleng ho pota-pota mohala ona, moo ho neng ho e-na le boiteko bo sa khaotseng ba ho sutumelletsa molaetsa ka har'a sokete. Ha rea ​​ka ra mo hlokomela. Ke ile ka tlameha ho ngola laebrari bocha. Ho tloha ka nako eo e fetohile ka makhetlo a 'maloa, empa joale re tlohile ho thibela li-subsystems tsohle. Ka hona, o ka emisa rsyslog, 'me ha ho letho le tla senyeha.

Hoa hlokahala ho shebella boholo ba mela, e thusang ho qoba ho hata holim'a rake. Ntlha ea pele, re ka beha leihlo ha re qala ho lahleheloa ke melaetsa. Ea bobeli, re ka beha leihlo hore na re na le mathata a ho pepa.

'Me motsotso o mong o sa thabiseng - ho holisoa ka makhetlo a 10 mohahong oa microservice ho bonolo haholo. Ha re na likopo tse ngata tse kenang, empa ka lebaka la kerafo eo melaetsa ena e tsamaeang ka eona ho feta, ka lebaka la li-logs tsa ho fihlella, re hlile re eketsa mojaro oa log ka makhetlo a ka bang leshome. Ka bomalimabe, ke ne ke se na nako ea ho bala lipalo tse nepahetseng, empa li-microservices ke seo li leng sona. Sena se tlameha ho hopoloa. Hoa etsahala hore hajoale tsamaiso ea pokello ea li-log ke eona e jarollotsoeng ka ho fetisisa Lazada.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Mokhoa oa ho rarolla bothata ba elasticsearch? Haeba o hloka ho potlakela ho fumana lits'oants'o sebakeng se le seng, e le hore u se ke ua matha ho ea ho mechine eohle le ho e bokella moo, sebelisa polokelo ea lifaele. Sena se netefalitsoe hore se tla sebetsa. E etsoa ho tsoa ho seva efe kapa efe. U hloka feela ho khomarela li-disk moo ebe u kenya syslog. Ka mor'a moo, u tiisetsoa ho ba le li-logs tsohle sebakeng se le seng. Joale ho tla khonahala ho hlophisa butle-butle elasticsearch, graylog, kapa ntho e 'ngoe. Empa u tla be u se u ntse u e-na le li-logs tsohle, 'me, ho feta moo, u ka li boloka ho fihlela ho na le lihlopha tse lekaneng tsa disk.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Nakong ea tlaleho ea ka, morero o ile oa qala ho shebahala tjena. Re ile ra khaotsa ho ngolla faele. Joale, mohlomong, re tla tima tse ling kaofela. Mechineng ea lehae e sebelisang API, re tla emisa ho ngolla lifaele. Ntlha ea pele, ho na le polokelo ea lifaele, e sebetsang hantle haholo. Taba ea bobeli, mechini ena e lula e felloa ke sebaka, e hloka ho lula e beiloe leihlo.

Karolo ena e nang le Logstash le Graylog, e hlile ea tloha. Ka hona, re hloka ho e tlosa. U tlameha ho khetha ntho e le 'ngoe.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Re ile ra etsa qeto ea ho lahla Logstash le Kibana. Hobane re na le lefapha la tšireletso. Kamano efe? Khokahano ke hore Kibana ntle le X-Pack le ntle le Shield ha e u lumelle ho khetholla litokelo tsa phihlello ho li-log. Ke kahoo re nkile Graylog. E na le tsohle. Ha ke e rate, empa e ea sebetsa. Re ile ra reka lisebelisoa tse ncha, ra kenya Graylog e ncha moo 'me ra fetisetsa lifate tsohle tse nang le liforomo tse thata ho Graylog e arohaneng. Re rarolle bothata ka mefuta e fapaneng ea masimo a ts'oanang ka mokhatlo.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Ke eng hantle e kenyellelitsoeng ho Graylog e ncha. Re sa tsoa ngola tsohle ho docker. Re nkile li-server tse ngata, ra ntša maemo a mararo a Kafka, 7 Graylog server version 2.3 (hobane re ne re batla Elasticsearch version 5). Sena sohle se ile sa nkuoa nakong ea litlhaselo tsa HDD. Re bone sekhahla sa indexing sa melaetsa e fihlang ho likete tse 100 motsotsoana. Re bone palo ea hore 140 terabytes ea data ka beke.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Le hape rake! Re na le lithekiso tse peli tse tlang. Re tsamaisitse ho feta melaetsa e limilione tse 6. Graylog ha e na nako ea ho hlafuna. Ka tsela e itseng re tlameha ho phela hape.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Ke kamoo re ileng ra pholoha kateng. Re kentse li-server tse 'maloa le li-SSD. Hajoale re phela ka tsela ena. Hona joale re se re ntse re hlafuna melaetsa ea 160k ka motsotsoana. Ha re e-so fihle moeling, kahoo ha ho hlake hore na re ka fumana bokae ho sena.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Tsena ke merero ea rona ea bokamoso. Har'a tsena, ntho ea bohlokoa ka ho fetisisa mohlomong ke ho fumaneha ho phahameng. Ha re na eona. Likoloi tse 'maloa li hlophisitsoe ka tsela e ts'oanang, empa ho fihlela joale ntho e' ngoe le e 'ngoe e tsamaea ka koloi e le' ngoe. Ho nka nako ho theha failover pakeng tsa bona.

Bokella metrics ho tsoa ho Graylog.

Etsa moeli oa sekhahla e le hore re be le API e le 'ngoe ea bohlanya e sa re bolaeeng bandwidth le ntho e' ngoe le e 'ngoe.

'Me qetellong, saena mofuta o itseng oa SLA le bahlahisi e le hore re ka sebeletsa haholo. Haeba u ngola ho feta, joale ke masoabi.

Le ho ngola litokomane.

Yury Bushmelev "'Mapa oa rake lebaleng la ho bokella le ho tsamaisa lifate" - sengoloa sa tlaleho

Ka bokhutšoane, litholoana tsa tsohle tseo re li boneng. Ea pele, litekanyetso. Ea bobeli, syslog ke kuku. Taba ea boraro, rsyslog e sebetsa hantle joalo ka ha e ngotsoe selaeteng. Mme ha re feteleng pele ho dipotso.

Lipotso.

Potso ea hau: Ke hobane'ng ha u entse qeto ea ho se nke ... (filebeat?)

Araba: Re hloka ho ngolla faele. Ke ne ke hlile ke sa batle. Ha API ea hau e ngola melaetsa e likete motsotsoana, leha u ka e potoloha hang ka hora, sena e ntse e se khetho. O ka ngola ka phala. Eo bahlahisi ba ileng ba mpotsa: "Ho tla etsahala'ng haeba ts'ebetso eo re e ngollang e senyeha?" Ha kea ka ka fumana hore na nka ba araba joang, eaba ke re: “Ho lokile, ha re etseng joalo.”

Potso ea hau: Ke hobane'ng ha u sa ngolle likutu ho HDFS?

Araba: Ena ke mohato o latelang. Re ile ra nahana ka eona qalong, empa kaha hajoale ha ho na lisebelisoa tsa ho etsa sena, e leketlile tharollong ea rona ea nako e telele.

Potso ea hau: Sebopeho sa kholomo se tla ba se loketseng haholoanyane.

Araba: Kea utloisisa. Re bakeng sa eona ka matsoho a mabeli.

Potso ea hau: U ngolla rsyslog. Ha u le moo u ka sebelisa TCP le UDP ka bobeli. Empa haeba UDP, joale u tiisa ho tsamaisoa joang?

Araba: Ho na le lintlha tse peli. Taba ea pele, ke bolella motho e mong le e mong hang-hang hore ha re tiise hore ho tla tlisoa li-log. Hobane ha bahlahisi ba tla 'me ba re: "A re qaleng ho ngola lintlha tsa lichelete moo,' me u tla li beha kae-kae bakeng sa rona haeba ho ka etsahala ntho e itseng," rea ba araba, "E kholo! Ha re qaleng ho thibela ho ngolla sokete, 'me re etse sena ka li-transaction, e le hore u tiisehe hore u tla e beha holim'a sokete bakeng sa rona le ho etsa bonnete ba hore re e amohela ka lehlakoreng le leng. " 'Me ka nako ena, motho e mong le e mong hang-hang ha a sa e hloka. Haeba ho sa hlokahale, joale re lokela ho botsa lipotso life? Haeba u sa batle ho etsa bonnete ba hore u ngolla sokete, joale ke hobane'ng ha re hloka ho fana ka tiiso ea ho romelloa? Re etsa sohle seo re ka se khonang. Re hlile re leka ho fana ka ka hohle kamoo ho ka khonehang le ka tsela e molemo ka ho fetisisa, empa ha re fane ka tiiso ea 100%. Ka hona, ha ho hlokahale ho ngola lintlha tsa lichelete moo. Ho na le li-database tse nang le litšebelisano bakeng sa sena.

Potso ea hau: Ha API e hlahisa molaetsa o itseng ho log le ho fetisetsa taolo ho li-microservices, na u kile ua kopana le bothata ba hore melaetsa e tsoang ho li-microservices tse fapaneng e fihla ka tatellano e fosahetseng? Sena se baka pherekano.

Araba: Ke ntho e tloaelehileng hore li tle ka tatellano e fapaneng. U lokela ho itokisetsa sena. Hobane ho fana ka marang-rang leha e le afe ha ho tiise taelo, kapa u tlameha ho sebelisa lisebelisoa tse khethehileng ho sena. Haeba re nka polokelo ea lifaele, joale API e 'ngoe le e' ngoe e boloka li-log ho faele ea eona. Kapa ho e-na le hoo, ho na le rsyslog e li hlophisang ka li-directory. API e 'ngoe le e' ngoe e na le lits'oants'o tsa eona, moo u ka eang ho ea sheba, 'me u ka li bapisa u sebelisa setempe sa nako ho logi ena. Haeba ba ea sheba ka Graylog, joale ba hlophisoa moo ka setempe sa nako. Tsohle di tla loka moo.

Potso ea hau: Setempe sa nako se ka fapana ho ea ka milliseconds.

Araba: Setempe sa nako se hlahisoa ke API ka boeona. Ha e le hantle, sena ke ntlha eohle. Re na le NTP. API e hlahisa setempe sa nako molaetsa ka boeona. rsyslog ha e eketse.

Potso ea hau: Tšebelisano pakeng tsa litsi tsa data ha e hlake haholo. Ka har'a moralo oa setsi sa data, ho hlakile hore na li-log li ile tsa bokelloa le ho sebetsoa joang. Tšebelisano e joang lipakeng tsa litsi tsa data? Kapa na setsi se seng le se seng sa data se phela bophelo ba sona?

Araba: Hoo e ka bang. Naheng ea rona, naha ka 'ngoe e sebakeng se le seng sa data. Hona joale, ha re na ho hasana e le hore naha e le 'ngoe e be libakeng tse fapaneng tsa data. Ka hona, ha ho hlokahale ho li kopanya. Setsi ka seng se na le Log Relay ka hare. Ena ke seva sa Rsyslog. Ha e le hantle mechine e 'meli ea tsamaiso. Li hlongoa ka mokhoa o ts'oanang. Empa hajoale, sephethephethe se feta ho e 'ngoe ea tsona. O boloka tsohle ka kakaretso. O na le lethathamo la li-disk haeba ho ka etsahala. E khoasolla lits'oants'o ebe e li romella setsing sa data se bohareng (Singapore), moo li romeloang Graylog. 'Me setsi se seng le se seng sa data se na le polokelo ea sona ea lifaele. Haeba khokahano ea rona e ka lahleha, re na le lits'oants'o tsohle moo. Ba tla dula moo. Li tla bolokoa teng.

Potso ea hau: Ha ho na le maemo a sa tloaelehang, na u fumana li-log ho tsoa moo?

Araba: U ka ea moo (ho polokelo ea lifaele) 'me u shebe.

Potso ea hau: U beha leihlo joang hore ha u lahleheloe ke lifate?

Araba: Ha e le hantle rea lahleheloa, 'me re ntse re e beha leihlo. Tlhokomelo e qalile khoeling e fetileng. Laeborari eo li-Go APIs e e sebelisang e na le metrics. A ka bala hore na o sitiloe ka makhetlo a makae ho ngolla soketeng. Hona joale ho na le heuristic e bohlale moo. Ho na le buffer moo. E leka ho ngola molaetsa ho tloha ho eona ho ea soketeng. Haeba buffer e tlala, e qala ho li theola. Mme o bala hore na o dihile tse kae tsa tsona. Haeba limithara li qala ho tlala mono, re tla tseba ka eona. Hona joale ba boetse ba tla ho prometheus, 'me u ka bona litšoantšo tsa Grafana. O ka seta ditemoso. Empa ha ho e-s’o hlake hore na ba tla li romela ho mang.

Potso ea hau: Ho elasticsearch, u boloka likutu ka botsofali. U na le likopi tse kae?

Araba: Mohala o le mong.

Potso ea hau: Na ona ke mola o le mong feela?

Araba: Ena ke monghali le setšoantšo. Lintlha li bolokiloe ka likopi tse peli.

Potso ea hau: Na u fetotse boholo ba buffer ea rsyslog ka tsela e itseng?

Araba: Re ngola li-datagrams ho sokete ea unix e tloaelehileng. Hang-hang sena se beha moeli oa 128 kilobytes ho rona. Ha re khone ho ngola ho feta ho eona. Re ngotse sena ho latela maemo. Ke mang ea batlang ho kena polokelong, ba ngola 128 kilobytes. Lilaebrari, ho feta moo, li khaola, 'me li beha folakha ea hore molaetsa o khaotsoe. Tekanyetso ea rona ea molaetsa ka boeona e na le tšimo e khethehileng e bontšang hore na e khaotsoe nakong ea ho rekota kapa che. Kahoo re na le monyetla oa ho latela motsotso ona.

Potso: Na u ngola JSON e robehileng?

Araba: JSON e robehileng e tla lahloa nakong ea relay hobane pakete e kholo haholo. Kapa Graylog e tla theoha, hobane e ke ke ea khona ho hlalosa JSON. Empa ho na le li-nuances tse hlokang ho lokisoa, 'me hangata li hokahane le rsyslog. Ke se ke tlatsitse taba e ‘maloa mono, e ntseng e hloka ho sebetsoa.

Potso: Hobaneng Kafka? O lekile RabbitMQ? Na Graylog e hloleha tlas'a meroalo e joalo?

Araba: Ha e sebetse ho rona ka Graylog. 'Me Graylog e ntse e tsoela pele molemong oa rona. O na le bothata ruri. Ke ntho e ikgethileng. 'Me, ha e le hantle, ha e hlokehe. Nka khetha ho ngola ho tloha rsyslog ka kotloloho ho ea elasticsearch ebe ke sheba Kibana. Empa taba ena re tlameha ho e rarolla le balebeli. Ena ke khetho e ka khonehang bakeng sa nts'etsopele ea rona, ha re lahla Graylog mme re sebelisa Kibana. Ha ho na thuso ho sebelisa Logstash. Hobane nka etsa se tšoanang ka rsyslog. Mme e na le mojule oa ho ngolla elasticsearch. Re leka ho phela ka tsela e itseng le Graylog. Re bile ra e lokisa hanyane. Empa ho ntse ho e-na le sebaka sa ho ntlafatsa.

Mabapi le Kafka. Ke kamoo e etsahetseng historing. Ha ke fihla, e ne e se e le teng, ’me ho ne ho se ho ntse ho ngoloa lifate ho eona. Re ile ra phahamisa sehlopha sa rona feela ebe re kenya likutu ho sona. Re batsamaisi ba hae, rea tseba hore na o ikutloa joang. Ha e le RabbitMQ ... ha e re sebetse ka RabbitMQ. Mme RabbitMQ e ntse e etsa sebopeho bakeng sa rona. Re na le eona tlhahisong, 'me ho bile le mathata ka eona. Joale, pele ho thekiso, ba ne ba mo khahlisa, 'me o ne a tla qala ho sebetsa ka mokhoa o tloaelehileng. Empa pele ho moo ke ne ke sa itokisetsa ho e lokolla tlhahiso. Ho na le ntlha e 'ngoe hape. Graylog e ka bala mofuta oa AMQP 0.9, 'me rsyslog e ka ngola mofuta oa AMQP 1.0. 'Me ha ho na tharollo e le' ngoe bohareng e ka etsang bobeli. E ka ba e nngwe kapa e nngwe. Ka hona, hajoale ke Kafka feela. Empa e boetse e na le li-nuances tsa eona. Hobane omkafka ea mofuta oa rsyslog eo re e sebelisang e ka lahleheloa ke buffer eohle ea molaetsa eo e e ntšitseng ho rsyslog. Hajoale re mamella.

Potso: Na u sebelisa Kafka hobane u ne u e-na le eona? Ha e sebelisetsoe morero ofe kapa ofe?

Araba: Kafka, e neng e le, e sebelisoa ke sehlopha sa Data Science. Ena ke morero o fapaneng ka ho feletseng, oo, ka bomalimabe, nke keng ka bua letho. Ha ke tsebe. E ne e tsamaisoa ke sehlopha sa Data Science. Ha likutu li thehoa, re ile ra etsa qeto ea ho li sebelisa e le hore re se ke ra kenya tsa rona. Hona joale re ntlafalitse Graylog, 'me re lahlehetsoe ke ho lumellana hobane e na le mofuta oa khale oa Kafka. Re ile ra tlameha ho iqalla tsa rona. Ka nako e ts'oanang, re ile ra tlosa lihlooho tsena tse 'nè bakeng sa API ka' ngoe. Re entse sehlooho se le seng se pharaletseng bakeng sa bohle ba phelang, sehlooho se le seng se pharaletseng bakeng sa lipapali tsohle mme ra beha tsohle moo. Graylog e hlakola tsena tsohle ka ho tšoana.

Potso: Ke hobane'ng ha re hloka shamanism ee e nang le li-sockets? Na u lekile ho sebelisa syslog log driver bakeng sa lijana?

Araba: Nakong eo re neng re botsa potso ena, kamano ea rona le docker e ne e tsitsitse. E ne e le docker 1.0 kapa 0.9. Docker ka boeona e ne e makatsa. Taba ea bobeli, haeba le uena u sutumelletsa li-logs ho eona ... Ke na le pelaelo e sa netefatsoang ea hore e fetisa lits'oants'o tsohle ka boeona, ka daemon ea docker. Haeba API e le 'ngoe e hlanya, li-API tse ling kaofela li tsitsitse tabeng ea hore ha li khone ho romela stdout le stderr. Ha ke tsebe hore na sena se tla lebisa kae. Ke na le lipelaelo boemong ba ho ikutloa hore ha ho na lebaka la ho sebelisa mokhanni oa syslog oa Docker sebakeng sena. Lefapha la rona la liteko tse sebetsang le na le sehlopha sa lona sa Graylog se nang le lifate. Ba sebelisa li-driver tsa log tsa Docker mme tsohle li bonahala li le hantle moo. Empa hang-hang ba ngolla GELF ho Graylog. Nakong eo re neng re qala tsena tsohle, re ne re hloka feela hore e sebetse. Mohlomong hamorao, ha motho e mong a tla ’me a re e ’nile ea sebetsa hantle ka lilemo tse lekholo, re tla leka.

Potso: U tsamaisa lipakeng tsa litsi tsa data u sebelisa rsyslog. Ke hobane'ng ha Kafka?

Araba: Re etsa ka bobeli ka 'nete. Ka mabaka a mabeli. Haeba mocha o shoele ka ho feletseng, joale lifate tsohle tsa rona, esita le ka mokhoa o hatelitsoeng, li ke ke tsa khasa ho tsona. 'Me Kafka e u lumella ho lahleheloa ke bona feela ts'ebetsong. Ena ke tsela eo re tlosang mapolanka ana ka eona ho khomarela. Re ntse re sebelisa Kafka ka kotloloho tabeng ena. Haeba re na le mocha o motle 'me re batla ho o lokolla, joale re sebelisa rsyslog ea bona. Empa ha e le hantle, u ka e hlophisa e le hore ka boeona e theohe se neng se sa lumellane. Hajoale, re sebelisa feela ho fana ka rsyslog kae-kae, le Kafka kae-kae.

Source: www.habr.com

Eketsa ka tlhaloso