Sidaynu CIAN u daba-galnay terabyte-yada logyada

Sidaynu CIAN u daba-galnay terabyte-yada logyada

Salaan qof walba, magacaygu waa Alexander, waxaan ka shaqeeyaa CIAN injineer ahaan waxaanan ku lug leeyahay maamulka nidaamka iyo automation ee hababka kaabayaasha. Faallooyinka ku saabsan mid ka mid ah maqaalladii hore, waxaa nala weydiistay inaan sheegno halka aan ka helno 4 TB oo qoryo ah maalintii iyo waxa aan ku sameyneyno. Haa, waxaan haynaa qoryo badan, waxaana la sameeyay koox kaabayaal dhaqaale oo gaar ah si ay uga baaraandegto, taas oo noo ogolaanaysa inaan si dhakhso ah u xalino dhibaatooyinka. Maqaalkan waxaan ka hadli doonaa sida aan u habeynay muddada sanadka si aan ula shaqeyno qulqulka xogta weligeed sii kordheysa.

Xagee ka bilownay?

Sidaynu CIAN u daba-galnay terabyte-yada logyada

Dhowrkii sano ee la soo dhaafay, culeyska cian.ru ayaa si dhaqso ah u koray, iyo rubuci saddexaad ee 2018, taraafikada kheyraadka ayaa gaartay 11.2 milyan isticmaaleyaal gaar ah bishii. Waqtigaas, xilliyada xasaasiga ah, waxaan luminay ilaa 40% diiwaannada, waana sababta aan dhaqso wax uga qaban weynay dhacdooyinka oo aan waqti iyo dadaal badan ku bixinnay xallintooda. Sidoo kale inta badan waanu heli kari waynay sababta dhibaatada keentay, wayna soo noqnoqonaysaa muddo ka dib. Waxay ahayd cadaab oo waxay ahayd in wax laga qabto.

Waqtigaas, waxaan isticmaalnay koox ka kooban 10 xog noodood oo leh nooca ElasticSearch 5.5.2 oo leh jaangooyooyin tusmada caadiga ah si loo kaydiyo diiwaannada. Waxaa la soo bandhigay in ka badan hal sano ka hor sida xal caan ah oo la awoodi karo: ka dibna qulqulka geedaha ma ahayn mid aad u weyn, ma jirto wax faa'iido leh oo la soo baxa qaabeynta aan caadiga ahayn. 

Hagaajinta diiwaannada soo galaya waxa ay Logstash ku bixisay dekedo kala duwan shan isku-duwayaasha ElasticSearch. Hal index, iyadoon loo eegin cabbirka, wuxuu ka kooban yahay shan jeex. Wareegid saacadle ah iyo maalinle ah ayaa la abaabulay, natiijadu waxay keentay, ilaa 100 xabo oo cusub ayaa ka soo muuqday kooxda saacad kasta. In kasta oo aanay jirin wax aad u badan, kooxdu si fiican ayay ula qabsatay oo cidina dheg uma dhigin goobaheeda. 

Caqabadaha kobaca degdega ah

Mugga geedaha la soo saaray ayaa si degdeg ah u koray, markii ay laba hab is-dul-saareen. Dhinaca kale, tirada isticmaalayaasha adeegga ayaa korodhay. Dhanka kale, waxaan bilownay inaan si firfircoon ugu bedelno qaab dhismeedka microservice, anagoo kor u qaadnay monolithsyadii hore ee C # iyo Python. Dhowr darsin oo adeeg-yar oo cusub oo beddelay qaybo ka mid ah monolith ayaa si aad ah u soo saaray qoryo badan oo loogu talagalay kooxda kaabayaasha. 

Waxay ahayd is-miidaamin taas oo noo horseeday heer ay kooxdu noqotay mid aan la maarayn karin. Markii ay geeddi-socodyadu bilaabeen inay ku yimaadaan xawaare dhan 20 kun oo farriimo ilbiriqsi kasta, wareegtada aan waxtarka lahayn ee joogtada ah ayaa kordhisay tirada jeexjeexyada ilaa 6 kun, waxaana jiray in ka badan 600 oo shards halkii nood. 

Tani waxay keentay dhibaatooyin ku saabsan qoondaynta RAM, iyo markii qanjidhada burburay, dhammaan jeexjeexyadu waxay bilaabeen inay isku mar dhaqaaqaan, oo badiyaan taraafigga iyo qanjidhada kale, taas oo ka dhigtay mid aan macquul ahayn in xogta loo qoro kooxda. Muddadaasna waxa aynu ka tagnay qoryo la'aan. Oo haddii ay dhibaato ka jirto server-ka, waxaan luminay 1/10 ee kooxda. Tiro badan oo tusmooyin yaryar ah ayaa ku daray kakanaanta.

La'aanteed la'aanteed, ma aynaan fahmin sababaha shilka, si dhakhso ah ama hadhow ayaanu u qaadi karnaa isla qaadka mar kale, iyo fikradda kooxdayada tani waxay ahayd mid aan la aqbali karin, maadaama dhammaan hababka shaqadayada loogu talagalay in lagu sameeyo wax ka soo horjeeda - marnaba dib ha u soo celin. dhibaatooyin isku mid ah. Si tan loo sameeyo, waxaan u baahannahay mugga buuxa ee logyada iyo gaarsiintooda ku dhawaad ​​​​waqtiga dhabta ah, maadaama koox ka mid ah injineerada shaqada ku jira ay kormeereen digniinaha ma aha oo kaliya jaangooyooyinka, laakiin sidoo kale laga soo galo. Si loo fahmo baaxadda dhibaatada, wakhtigaas wadarta mugga loggu wuxuu ahaa qiyaastii 2 TB maalintii. 

Waxaan dejinay yool ah inaan si buuxda u baabi'inno luminta qormooyinka oo aan hoos u dhigno waqtiga gaarsiinta kooxda ELK ugu badnaan 15 daqiiqo inta lagu jiro majo majeure (markii dambe waxaan ku tiirsanahay tiradan sida KPI gudaha ah).

Qaab cusub oo wareeg ah iyo qanjidhada diiran ee kulul

Sidaynu CIAN u daba-galnay terabyte-yada logyada

Waxaan ku bilownay beddelka kooxda anagoo cusboonaysiinay nooca ElasticSearch laga bilaabo 5.5.2 ilaa 6.4.3. Marlabaad kooxdayadii nooca 5 ayaa dhimatay, waxaanan go'aansanay inaan damino oo aan si buuxda u cusboonaysiinno - wali ma jiraan wax qoraallo ah. Markaa waxaanu ku samaynay kala guurkan dhawr saacadood gudahood.

Isbeddelka ugu baaxadda weyn ee marxaladan wuxuu ahaa hirgelinta Apache Kafka oo ku yaal saddex nood oo leh iskudubarid dhexdhexaad ah. Dilaaliyaha fariinta ayaa naga badbaadiyay inaan lumino diiwaanka inta lagu jiro dhibaatooyinka ElasticSearch. Isla mar ahaantaana, waxaan ku darnay 2 nodes kooxda waxaana u wareegnay qaab dhismeedka diirran ee kuleylka leh oo leh seddex "kulul" oo ku yaal meelo kala duwan oo ku yaala xarunta xogta. Waxaan u wareejinay logyada iyaga oo isticmaalaya maaskaro aan ahayn in la lumiyo xaalad kasta - nginx, iyo sidoo kale diiwaannada qaladka codsiga. Diiwaanada yar yar ayaa loo diray qanjidhada hadhay - khaladka, digniinta, iwm., iyo 24 saacadood ka dib, "muhiim" qoraallada "kulul" ayaa la wareejiyay.

Si aan loo kordhin tirada tusmooyinka yaryar, waxaan ka beddelnay wareegtada waqtiga una beddelnay habka rogrogga. Waxaa jiray macluumaad badan oo ku saabsan forumyada in wareegga cabbirka index uu yahay mid aan la isku halleyn karin, sidaas darteed waxaan go'aansanay inaan isticmaalno wareeg ah tirada dukumentiyada ku jira index. Waxaan falanqeynay tusmooyin kasta waxaanan diiwaangelinnay tirada dukumeentiyada ka dib wareegtada ay tahay inay shaqeyso. Markaa, waxaan gaadhnay cabbirkii ugu fiicnaa - in aan ka badnayn 50 GB. 

Hagaajinta kooxda

Sidaynu CIAN u daba-galnay terabyte-yada logyada

Si kastaba ha ahaatee, gabi ahaanba kamaanu takhalusin dhibaatooyinka. Nasiib darro, tusmooyinka yaryar ayaa weli soo muuqday: ma aysan gaarin mugga la cayimay, lama wareejin, waxaana la tirtiray nadiifinta caalamiga ah ee tusmooyinka ka weyn saddex maalmood, tan iyo markii aan ka saarnay wareegtada taariikhda. Tani waxay keentay luminta xogta sababtoo ah xaqiiqda ah in tusaha ka soo baxa kutlada gabi ahaanba la waayay, iyo isku daygii lagu doonayay in lagu qoro tusaha aan jirin ayaa jebiyey macquulka curator ee aan u isticmaalnay maaraynta. Magaca qoraalka waxaa loo beddelay tusmeyn wuxuuna jabiyay caqli-galkii rogrogga, taasoo keentay kobaca aan la xakameynin ee tusmooyinka qaarkood ilaa 600 GB. 

Tusaale ahaan, qaabaynta wareeg:

сurator-elk-rollover.yaml

---
actions:
  1:
    action: rollover
    options:
      name: "nginx_write"
      conditions:
        max_docs: 100000000
  2:
    action: rollover
    options:
      name: "python_error_write"
      conditions:
        max_docs: 10000000

Haddii aanu jirin magac-rogid, khalad ayaa dhacay:

ERROR     alias "nginx_write" not found.
ERROR     Failed to complete action: rollover.  <type 'exceptions.ValueError'>: Unable to perform index rollover with alias "nginx_write".

Waxaan u dhaafnay xalka dhibaatadan soo noqnoqoshada soo socota waxaanan soo qaadnay arrin kale: waxaan u wareegnay caqli-celinta Logstash, kaas oo socodsiiya diiwaannada soo galaya (ka saarista macluumaadka aan loo baahnayn iyo kobcinta). Waxa aanu dhignay docker-ka, kaas oo aanu ku bilownay docker-compose, waxa aanu sidoo kale dhignay logstash-porter, kaas oo u dira qiyaasaha Prometheus si uu ula socdo hawl galka socodka loggu. Sidan waxaan ku siinay nafteena fursad aan si habsami leh u bedelno tirada kiisaska logstash ee mas'uulka ka ah socodsiinta nooc kasta oo log ah.

Intii aan horumarinaynay kooxda, gaadiidka cian.ru wuxuu kordhay ilaa 12,8 milyan isticmaaleyaal gaar ah bishii. Natiijo ahaan, waxay soo baxday in isbeddelkayaga uu ahaa mid yar oo ka dambeeya isbeddelka wax soo saarka, waxaana la kulmay xaqiiqda ah in qanjidhada "diiraan" ay u adkeysan waayeen culeyska waxayna hoos u dhigeen dhammaan bixinta logyada. Waxaan helnay xogta "kulul" iyada oo aan guuldarro la kulmin, laakiin waxay ahayd inaan faragelinno gaarsiinta inta soo hartay oo aan sameyno wareegtada gacanta si aan si siman u qaybinno tusmooyinka. 

Isla mar ahaantaana, cabbiridda iyo beddelidda goobaha dhacdooyinka logstash ee kooxda ayaa ku dhibtooday xaqiiqda ah in ay ahayd docker-ka kooban, iyo dhammaan ficillada waxaa lagu sameeyay gacanta (si loogu daro darafyo cusub, waxaa lagama maarmaan ahayd in gacanta lagu maro dhammaan. server-yada iyo docker-ka-sameeya-d meel walba).

Dib u qaybinta gal

Bishii Sebtembar ee sanadkan, waxaan wali goynay monolith, culeyska kutlada ayaa sii kordhaya, qulqulka geedaha ayaa ku soo dhawaaday 30 kun oo farriimo ilbiriqsi kasta. 

Sidaynu CIAN u daba-galnay terabyte-yada logyada

Waxaan ku bilownay soo-celinta soo socota iyada oo la cusbooneysiinayo qalab. Shan isku duwe ayaanu ka bedelnay saddex, waxaanu bedelnay noodhka xogta oo aanu ku guulaysanay dhinaca lacagta iyo kaydka. Nodes-ka waxaan isticmaalnaa laba qaabeyn: 

  • Nodes "kulul": E3-1270 v6 / 960Gb SSD / 32 Gb x 3 x 2 (3 loogu talagalay Hot1 iyo 3 ee Hot2).
  • Loogu talagalay qanjidhada "diiran": E3-1230 v6 / 4Tb SSD / 32 Gb x 4.

Dib-u-soo-celintan, waxaan u dhaqaajinay tusaha oo leh diiwaannada gelitaanka ee adeeg-yaraha, kaas oo qaadanaya meel la mid ah kuwa hore ee nginx logs, kooxda labaad ee saddex "kulul". Waxaan hadda ku kaydineynaa xogta qanjidhada "kulul" ee saacadaha 20, ka dibna u wareejin "diirimaad" qanjidhada intiisa kale. 

Waxaan xallinay dhibaatada tusmooyinka yaryar ee lumaya annaga oo dib u habeyn ku sameynay wareeggooda. Hadda tusmooyinka waa la beddelaa 23 saacadood kasta xaalad kasta, xitaa haddii ay jiraan xog yar oo halkaas ku taal. Tani waxay yara kordhisay tirada jeexjeexyada (waxaa jiray ilaa 800 oo iyaga ka mid ah), laakiin marka laga eego aragtida waxqabadka kooxda waa loo dulqaadan karaa. 

Natiijadu waxay tahay, waxaa kooxda ku jiray lix "kulul" iyo afar "diiran" oo keliya. Tani waxay keenaysaa dib u dhac yar oo ku saabsan codsiyada muddo dheer, laakiin kordhinta tirada qanjidhada mustaqbalka waxay xallin doontaa dhibaatadan.

Dib-u-soo-celintani waxay sidoo kale hagaajisay dhibaatada la'aanta is-miidaamin-simi-otomaatig ah. Si tan loo sameeyo, waxaanu geynay kooxda reer guuraaga kaabayaasha dhaqaalaha - oo la mid ah tii aan hore ugu geynay wax soo saarka. Hadda, qaddarka Logstash si toos ah uma beddelo iyadoo ku xiran culeyska, laakiin waxaan u imaan doonnaa tan.

Sidaynu CIAN u daba-galnay terabyte-yada logyada

Qorshayaasha mustaqbalka

Qaabeynta qaabeynta la hirgeliyay ayaa si fiican u socota, hadda waxaan ku keydineynaa 13,3 TB ee xogta - dhammaan diiwaannada 4 maalmood, taas oo lagama maarmaan u ah falanqaynta degdegga ah ee digniinaha. Waxaan u beddelnaa qaar ka mid ah logyada halbeegyo, kaas oo aan ku darno Graphite. Si loo fududeeyo shaqada injineerada, waxaan haynaa qiyaasaha kutlada kaabayaasha iyo qoraalada dayactirka nus-otomaatigga ah ee dhibaatooyinka caadiga ah. Ka dib markii la kordhiyo tirada xogta noodes, kaas oo la qorsheeyay sanadka soo socda, waxaan u bedeli doonaa kaydinta xogta 4 ilaa 7 maalmood. Tani waxay ku filnaan doontaa shaqada hawlgalka, maadaama aan had iyo jeer isku dayno inaan baarno shilalka sida ugu dhaqsaha badan, iyo baaritaannada muddada dheer waxaa jira xogta telemetry. 

Oktoobar 2019, taraafikada cian.ru waxay mar hore kortay ilaa 15,3 milyan isticmaaleyaal gaar ah bishii. Tani waxay noqotay tijaabo halis ah oo ah xalka qaab dhismeedka gudbinta logyada. 

Hadda waxaan isku diyaarineynaa inaan cusbooneysiinno ElasticSearch nooca 7. Si kastaba ha noqotee, tan waa inaan cusbooneysiineynaa khariidadeynta tusmooyinka ElasticSearch, tan iyo markii ay ka guureen nooca 5.5 waxaana lagu dhawaaqay inay yihiin kuwo ka go'ay nooca 6 (si fudud kuma jiraan nooca 7). 7). Tani waxay ka dhigan tahay in inta lagu jiro habka cusboonaysiinta ay hubaal tahay inay jiri doonto nooc ka mid ah majeure Force, kaas oo naga tagi doona iyada oo aan lahayn qoraallo halka arrinta la xalinayo. Nooca XNUMX, waxaanu aad ugu rajaynaynaa Kibana oo leh interface la hagaajiyay iyo filtarrada cusub. 

Waxaan gaarnay yoolkeygii ugu weynaa: waxaan joojinay luminta qormooyinka waxaanan yareynay waqtiga hoos u dhaca kooxda kaabayaasha 2-3 shilalka todobaadkii ilaa dhowr saacadood oo shaqo dayactir ah bishii. Dhammaan shaqadan wax-soo-saarka ayaa ah mid aan la arki karin. Si kastaba ha ahaatee, hadda waxaan go'aansan karnaa sida saxda ah waxa ku dhacaya adeegeena, waxaan si dhakhso ah u samayn karnaa hab xasilan oo aan ka welwelin in diiwaannada la lumin doono. Guud ahaan, waan ku qanacsannahay, ku faraxsanahay oo aan u diyaargarownay faa'iidooyin cusub, oo aan ka hadli doono dambe.

Source: www.habr.com

Add a comment