Mar a rinneamar ag CIAN taom terabytes na logs

Mar a rinneamar ag CIAN taom terabytes na logs

Dia duit gach duine, Alexander is ainm dom, oibríonn mé ag CIAN mar innealtóir agus tá baint agam le riarachán córais agus uathoibriú próisis bhonneagair. Sna tuairimí ar cheann de na hailt roimhe seo, iarradh orainn a insint nuair a fhaighimid 4 TB de logs in aghaidh an lae agus cad a dhéanaimid leo. Sea, tá go leor logs againn, agus cruthaíodh braisle bonneagair ar leith chun iad a phróiseáil, rud a ligeann dúinn fadhbanna a réiteach go tapa. San Airteagal seo labhróidh mé faoi mar a chuireamar in oiriúint é thar thréimhse bliana chun oibriú le sreabhadh sonraí atá ag méadú i gcónaí.

Cár thosaigh muid?

Mar a rinneamar ag CIAN taom terabytes na logs

Le blianta beaga anuas, tá an t-ualach ar cian.ru tar éis fás go han-tapa, agus faoin tríú ráithe de 2018, shroich trácht acmhainne 11.2 milliún úsáideoir uathúil in aghaidh na míosa. Ag an am sin, ag tráthanna ríthábhachtacha chailleamar suas le 40% de na logaí, agus is é sin an fáth nach bhféadfaimis déileáil go tapa le teagmhais agus chaitheamar go leor ama agus iarrachta á réiteach. Is minic freisin nach rabhamar in ann cúis na faidhbe a aimsiú, agus thiocfadh sé arís tar éis tamaill. Ifreann a bhí ann agus bhí rud éigin le déanamh faoi.

Ag an am sin, d'úsáideamar braisle de 10 nód sonraí le leagan ElasticSearch 5.5.2 le socruithe caighdeánacha innéacs chun logaí a stóráil. Tugadh isteach é níos mó ná bliain ó shin mar réiteach tóir agus inacmhainne: ansin ní raibh sreabhadh na logaí chomh mór, ní raibh aon phointe ann teacht suas le cumraíochtaí neamhchaighdeánacha. 

Chuir Logstash próiseáil ar logaí isteach ar chalafoirt éagsúla ar chúig chomhordaitheoir ElasticSearch. Bhí innéacs amháin, beag beann ar mhéid, comhdhéanta de chúig shards. Eagraíodh rothlú uair an chloig agus laethúil, mar thoradh air sin, bhí thart ar 100 shards nua le feiceáil sa bhraisle gach uair an chloig. Cé nach raibh mórán logaí ann, d’éirigh go maith leis an mbraisle agus níor thug aon duine aird ar a chuid socruithe. 

Na dúshláin a bhaineann le fás tapa

D'fhás líon na logaí ginte go han-tapa, mar go raibh dhá phróiseas ag forluí ar a chéile. Ar thaobh amháin, tháinig méadú ar líon na n-úsáideoirí na seirbhíse. Ar an láimh eile, thosaigh muid ag aistriú go gníomhach chuig ailtireacht microservice, sábhadh suas ár monoliths d'aois i C # agus Python. Ghin roinnt dosaen de mhicrisheirbhísí nua a tháinig in ionad codanna den mhonail i bhfad níos mó logaí don bhraisle bonneagair. 

Ba é an scála a thug orainn go dtí an pointe nárbh fhéidir an braisle a bhainistiú go praiticiúil. Nuair a thosaigh na logaí ag teacht ar ráta 20 míle teachtaireacht in aghaidh an tsoicind, mhéadaigh rothlú go minic gan úsáid líon na shards go 6 míle, agus bhí níos mó ná 600 shards in aghaidh an nód. 

Mar thoradh air seo bhí fadhbanna le leithdháileadh RAM, agus nuair a thuairteáil nód, thosaigh gach shards ag bogadh go comhuaineach, ag méadú tráchta agus ag luchtú nóid eile, rud a rinne sé beagnach dodhéanta sonraí a scríobh chuig an mbraisle. Agus le linn na tréimhse seo fágadh muid gan logs. Agus má bhí fadhb ann leis an bhfreastalaí, chaill muid go bunúsach 1/10 den bhraisle. Chuir líon mór innéacsanna beaga castacht leis.

Gan logs, níor thuig muid na cúiseanna leis an eachtra agus d'fhéadfadh go luath nó mall céim ar an raca céanna arís, agus i idé-eolaíocht ár bhfoirne bhí sé seo do-ghlactha, ós rud é go bhfuil ár meicníochtaí oibre go léir deartha chun a mhalairt a dhéanamh - gan athrá. na fadhbanna céanna. Chun seo a dhéanamh, bhí líon iomlán na logaí ag teastáil uainn agus iad a sheachadadh beagnach i bhfíor-am, ós rud é go ndearna foireann innealtóirí ar dualgas monatóireacht ar fholáirimh ní hamháin ó mhéadracht, ach ó logaí freisin. Chun scála na faidhbe a thuiscint, bhí thart ar 2 TB in aghaidh an lae ar líon iomlán na logaí ag an am sin. 

Shocraigh muid sprioc chun deireadh a chur go hiomlán le caillteanas logaí agus laghdaigh an t-am seachadta chuig an mbraisle ELK go dtí 15 nóiméad ar a mhéad le linn force majeure (bhíomar ag brath níos déanaí ar an bhfigiúr seo mar KPI inmheánach).

Meicníocht rothlaithe nua agus nóid te-te

Mar a rinneamar ag CIAN taom terabytes na logs

Chuireamar tús leis an gcomhshó braisle tríd an leagan ElasticSearch a nuashonrú ó 5.5.2 go 6.4.3. Arís eile fuair ár mbraisle leagan 5 bás, agus shocraigh muid é a mhúchadh agus é a nuashonrú go hiomlán - níl aon logaí ann fós. Mar sin rinneamar an t-aistriú seo i gceann cúpla uair an chloig.

Ba é an claochlú is mó ar scála mór ag an gcéim seo ná cur i bhfeidhm Apache Kafka ar thrí nód le comhordaitheoir mar mhaolán idirmheánach. Shábháil an bróicéir teachtaireachtaí sinn ó logaí a chailleadh le linn fadhbanna le ElasticSearch. Ag an am céanna, chuireamar 2 nód leis an mbraisle agus aistrigh go dtí ailtireacht te-te le trí nód “te” suite i racaí éagsúla sa lárionad sonraí. Rinneamar logaí a atreorú chucu ag baint úsáide as masc nár cheart a chailliúint faoi imthosca ar bith - nginx, chomh maith le logaí earráide iarratais. Cuireadh logaí beaga chuig na nóid a bhí fágtha - dífhabhtú, rabhadh, etc., agus tar éis 24 uair an chloig, aistríodh logaí “tábhachtacha” ó nóid “te”.

D'fhonn gan líon na n-innéacsanna beaga a mhéadú, d'athraigh muid ó rothlú ama go dtí an meicníocht tar-rollta. Bhí go leor faisnéise ar na fóraim go bhfuil rothlú de réir méid innéacs an-neamhiontaofa, agus mar sin shocraigh muid úsáid a bhaint as rothlú de réir líon na ndoiciméad san innéacs. Rinneamar anailís ar gach innéacs agus thaifeadamar líon na ndoiciméad ar cheart go n-oibreodh an rothlú ina dhiaidh sin. Mar sin, tá an méid shard is fearr sroichte againn - gan níos mó ná 50 GB. 

Barrfheabhsú braisle

Mar a rinneamar ag CIAN taom terabytes na logs

Mar sin féin, níl fáil réidh againn go hiomlán ar na fadhbanna. Ar an drochuair, bhí innéacsanna beaga fós le feiceáil: níor shroich siad an méid sonraithe, níor rothlú iad, agus scriosadh iad trí ghlanadh domhanda innéacsanna níos sine ná trí lá, ós rud é gur bhain muid an rothlú de réir dáta. Mar thoradh air seo cailleadh sonraí mar gur imigh an t-innéacs ón mbraisle go hiomlán, agus bhris iarracht scríobh chuig innéacs nach raibh ann loighic an choimeádaí a d’úsáideamar don bhainistíocht. Rinneadh ailias le haghaidh scríbhneoireachta a thiontú ina innéacs agus bhris sé an loighic tar-rollta, rud a fhágann fás neamhrialaithe ar roinnt innéacsanna suas le 600 GB. 

Mar shampla, don chumraíocht rothlaithe:

с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

Mura raibh aon ailias tar-rollta ann, tharla earráid:

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

D'fhágamar réiteach na faidhbe seo don chéad atriall eile agus chuaigh muid i ngleic le saincheist eile: aistrigh muid go dtí loighic tarraingthe Logstash, a phróiseálann logs isteach (ag fáil réidh le faisnéis neamhriachtanach agus le saibhriú). Chuireamar sa docker é, a sheolaimid trí docker-compose, agus chuireamar logstash-onnmhaireoir ann freisin, a sheolann méadracht chuig Prometheus le haghaidh monatóireacht oibríochtúil an tsrutha logála. Ar an mbealach seo thugamar deis dúinn féin líon na gcásanna logstash atá freagrach as próiseáil gach cineál loga a athrú go réidh.

Agus an braisle á fheabhsú againn, mhéadaigh trácht cian.ru go 12,8 milliún úsáideoir uathúil in aghaidh na míosa. Mar thoradh air sin, d'éirigh sé amach go raibh ár gcuid claochluithe beagán taobh thiar de na hathruithe ar tháirgeadh, agus bhí orainn aghaidh a thabhairt ar an bhfíric nach bhféadfadh na nóid "te" dul i ngleic leis an ualach agus chuir siad moill ar sheachadadh iomlán na logaí. Fuaireamar sonraí “te” gan teipeanna, ach bhí orainn idirghabháil a dhéanamh i seachadadh an chuid eile agus tar-rolladh láimhe a dhéanamh chun na hinnéacsanna a dháileadh go cothrom. 

Ag an am céanna, bhí scálaithe agus athrú socruithe cásanna logstash sa bhraisle casta ag an bhfíric gur cumadóir áitiúil a bhí ann, agus rinneadh na gníomhartha go léir de láimh (chun foircinn nua a chur leis, bhí sé riachtanach dul tríd gach rud de láimh. na freastalaithe agus docker-compose up -d i ngach áit).

Athdháileadh loga

I mí Mheán Fómhair na bliana seo, bhíomar fós ag gearradh suas an monolith, bhí an t-ualach ar an mbraisle ag méadú, agus bhí sreabhadh na logaí ag druidim le 30 míle teachtaireacht in aghaidh an tsoicind. 

Mar a rinneamar ag CIAN taom terabytes na logs

Chuireamar tús leis an gcéad atriall eile le nuashonrú crua-earraí. D'aistrigh muid ó chúig chomhordaitheoir go triúr, chuireamar nóid sonraí nua in áit agus bhuaigh muid ó thaobh airgid agus spáis stórála. Le haghaidh nóid úsáidimid dhá chumraíocht: 

  • Le haghaidh nóid “te”: E3-1270 v6 / 960Gb SSD / 32 Gb x 3 x 2 (3 le haghaidh Hot1 agus 3 le haghaidh Hot2).
  • Le haghaidh nóid “te”: E3-1230 v6 / 4Tb SSD / 32 Gb x 4.

Ag an atriall seo, bhogamar an t-innéacs le logaí rochtana de mhicrisheirbhísí, a thógann an spás céanna le logaí nginx líne tosaigh, chuig an dara grúpa de thrí nód “te”. Stórálaimid sonraí anois ar nóid “te” ar feadh 20 uair, agus ansin aistrímid iad chuig nóid “te” chuig an gcuid eile de na logaí. 

Réitíomar fadhb na n-innéacsanna beaga ag imeacht trína rothlú a athchumrú. Anois déantar na hinnéacsanna a rothlú gach 23 uair an chloig in aon chás, fiú mura bhfuil mórán sonraí ann. Mhéadaigh sé seo líon na n-shards beagán (bhí thart ar 800 acu), ach ó thaobh na feidhmíochta braisle de, tá sé inghlactha. 

Mar thoradh air sin, bhí sé nód “te” agus gan ach ceithre nód “te” sa bhraisle. Cuireann sé seo moill bheag ar iarratais thar tréimhsí fada ama, ach réiteoidh méadú ar líon na nóid sa todhchaí an fhadhb seo.

Socraíodh fadhb na heaspa scálaithe leath-uathoibríoch leis an atriall seo freisin. Chun seo a dhéanamh, chuireamar imscaradh ar bhraisle bonneagair Nomad - cosúil leis an méid atá imscartha againn cheana féin i dtáirgeadh. Go dtí seo, ní athraíonn méid Logstash go huathoibríoch ag brath ar an ualach, ach tiocfaimid chuige seo.

Mar a rinneamar ag CIAN taom terabytes na logs

Pleananna don todhchaí

Tá na scálaí cumraíochta curtha i bhfeidhm go foirfe, agus anois táimid ag stóráil 13,3 TB de shonraí - gach logáil ar feadh 4 lá, atá riachtanach le haghaidh anailís éigeandála foláirimh. Tiontaíonn muid cuid de na logaí go méadracht, a chuirimid le Graphite. Chun obair innealtóirí a dhéanamh níos éasca, tá méadracht againn don bhraisle bonneagair agus tá scripteanna againn chun fadhbanna coitianta a dheisiú go leath-uathoibríoch. Tar éis líon na nóid sonraí a mhéadú, atá beartaithe don bhliain seo chugainn, aistreoimid go stóráil sonraí ó 4 go 7 lá. Beidh sé seo go leor le haghaidh obair oibriúcháin, ós rud é go ndéanaimid iarracht i gcónaí teagmhais a imscrúdú a luaithe is féidir, agus le haghaidh imscrúduithe fadtéarmacha tá sonraí teiliméadrachta. 

I mí Dheireadh Fómhair 2019, bhí méadú tagtha ar an trácht chuig cian.ru go 15,3 milliún úsáideoir uathúil in aghaidh na míosa. Bhí sé seo ina thástáil thromchúiseach ar an réiteach ailtireachta chun lomáin a sheachadadh. 

Anois táimid ag ullmhú chun ElasticSearch a nuashonrú go leagan 7. Mar sin féin, beidh orainn mapáil go leor innéacsanna in ElasticSearch a nuashonrú chun seo a dhéanamh, ó d'aistrigh siad ó leagan 5.5 agus dearbhaíodh go bhfuil siad dímheasta i leagan 6 (níl siad ann go simplí sa leagan 7). Ciallaíonn sé seo go mbeidh cinnte de shaghas éigin force majeure le linn an phróisis nuashonraithe, rud a fhágann muid gan logs agus an cheist réitithe. As leagan 7, táimid ag tnúth go mór le Kibana le comhéadan feabhsaithe agus scagairí nua. 

Bhaineamar ár bpríomhsprioc amach: stopamar ag cailleadh lomáin agus laghdaigh muid aga neamhfhónaimh an bhraisle bonneagair ó 2-3 timpiste in aghaidh na seachtaine go cúpla uair an chloig d’obair chothabhála in aghaidh na míosa. Tá an obair seo go léir i dtáirgeadh beagnach dofheicthe. Mar sin féin, anois is féidir linn a chinneadh go díreach cad atá ag tarlú lenár seirbhís, is féidir linn a dhéanamh go tapa i mód ciúin agus gan a bheith buartha go gcaillfear na logaí. Go ginearálta, táimid sásta, sásta agus ag ullmhú le haghaidh exploits nua, a mbeimid ag caint faoi níos déanaí.

Foinse: will.com

Add a comment