Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Is cuid thábhachtach den chóras iad logaí, rud a ligeann duit a thuiscint go n-oibríonn sé (nó nach n-oibríonn sé) mar a bhíothas ag súil leis. Faoi choinníollacha na hailtireachta microservice, déantar disciplín ar leith den Oilimpiad Speisialta oibriú le logaí. Tá go leor saincheisteanna nach mór aghaidh a thabhairt orthu:

  • conas logaí a scríobh ón bhfeidhmchlár;
  • cá háit le logaí a scríobh;
  • conas logaí a sheachadadh le haghaidh stórála agus próiseála;
  • conas logaí a phróiseáil agus a stóráil.

Cuireann úsáid na dteicneolaíochtaí coimeádaithe tóir faoi láthair gaineamh ar bharr an raic i réimse na roghanna fadhbréitigh.

Díreach faoi seo tá an tras-scríbhinn den tuarascáil le Yuri Bushmelev "Léarscáil de raca i réimse na logs a bhailiú agus a sheachadadh"

Who cares, le do thoil faoi an cat.

Is é mo ainm Yuri Bushmelev. Oibrím do Lazada. Sa lá atá inniu beidh mé ag caint faoi conas a rinneamar ár logaí, conas a bhailigh muid iad, agus cad a scríobh againn ann.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Cad as dúinn? Cé sinne? Is é Lazada an miondíoltóir ar líne #1 i sé thír in Oirdheisceart na hÁise. Déantar na tíortha seo go léir a dháileadh i measc ionaid sonraí. Tá 4 ionad sonraí san iomlán anois agus cén fáth a bhfuil sé seo tábhachtach? Toisc go raibh roinnt cinntí mar gheall ar an bhfíric go bhfuil nasc an-lag idir na hionaid. Tá ailtireacht microservice againn. Bhí ionadh orm a fháil amach go bhfuil 80 microservices againn cheana féin. Nuair a thosaigh mé ar an tasc le logs, ní raibh ach 20 acu. Plus, tá píosa sách mór de PHP oidhreacht, a bhfuil mé freisin chun cónaí leis agus a chur suas leis. Gineann sé seo go léir dúinn faoi láthair níos mó ná 6 milliún teachtaireacht in aghaidh an nóiméid don chóras ina iomláine. Ina theannta sin taispeánfaidh mé conas atáimid ag iarraidh maireachtáil leis seo, agus cén fáth go bhfuil sé seo amhlaidh.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Caithfidh tú maireachtáil leis na 6 mhilliún teachtaireacht seo ar bhealach éigin. Cad ba cheart dúinn a dhéanamh leo? 6 mhilliún teachtaireacht ag teastáil:

  • sheoladh ó app
  • glacadh le seachadadh
  • seachadadh le haghaidh anailíse agus stórála.
  • anailís a dhéanamh
  • siopa ar bhealach éigin.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Nuair a bhí trí mhilliún teachtaireacht ann, bhí an cuma céanna orm. Mar gheall ar thosaigh muid le roinnt pinginí. Is léir go bhfuil logaí iarratais scríofa ann. Mar shampla, níorbh fhéidir ceangal leis an mbunachar sonraí, d'fhéadfaí ceangal leis an mbunachar sonraí, ach níorbh fhéidir rud éigin a léamh. Ach sa bhreis air seo, scríobhann gach ceann dár micrseirbhísí logáil isteach freisin. Titeann gach iarratas a thagann chuig an microservice isteach sa logáil. Cén fáth a bhfuil sé seo á dhéanamh againn? Forbróirí ag iarraidh a bheith in ann a rianú. Tá an réimse traceid i ngach loga rochtana, dá réir a scaoileann comhéadan speisialta an slabhra iomlán agus taispeánann sé an rian go hálainn. Léiríonn an rian conas a chuaigh an t-iarratas, agus cabhraíonn sé seo lenár bhforbróirí déileáil le haon truflais anaithnid níos tapúla.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Conas maireachtáil leis? Anois déanfaidh mé cur síos gairid ar an réimse roghanna - conas a dhéantar an fhadhb seo a réiteach go ginearálta. Conas an fhadhb a bhaineann le logaí a bhailiú, a aistriú agus a stóráil a réiteach.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Conas scríobh ón iarratas? Is léir go bhfuil bealaí éagsúla ann. Go háirithe, tá dea-chleachtas ann, mar a insíonn comrádaithe faiseanta dúinn. Tá dhá chineál sean-scoile ann, mar a dúirt na seanaithreacha. Tá bealaí eile.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Le bailiú na logaí, tá an scéal thart ar an gcéanna. Níl an oiread sin roghanna ann chun an chuid áirithe seo a réiteach. Tá níos mó acu, ach níl an oiread sin fós.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Ach le seachadadh agus anailís ina dhiaidh sin, tosaíonn líon na n-athruithe ag pléascadh. Ní dhéanfaidh mé cur síos ar gach rogha anois. Sílim go bhfuil na príomhroghanna ar eolas go maith ag gach duine a raibh suim acu san ábhar.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Taispeánfaidh mé duit conas a rinneamar é i Lazada agus conas a thosaigh sé ar fad.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Bliain ó shin, tháinig mé go Lazada agus cuireadh chuig an tionscadal log. Bhí sé mar seo ann. Scríobhadh an loga ón iarratas chuig stdout agus stderr. Rinneadh gach rud ar bhealach faiseanta. Ach ansin chaith na forbróirí amach as na sruthanna caighdeánacha é, agus ansin déanfaidh speisialtóirí bonneagair é a dhéanamh amach ar bhealach éigin. Idir speisialtóirí bonneagair agus forbróirí, tá eisitheoirí ann freisin a dúirt: “uh ... bhuel, déanaimis iad a fhilleadh i gcomhad le blaosc, agus sin é.” Agus ós rud é go bhfuil sé seo go léir i gcoimeádán, fillte siad é ceart sa choimeádán féin, mhapáil siad an eolaire taobh istigh agus é a chur ann. Sílim go bhfuil sé soiléir go leor do gach duine cad a tharla.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Breathnaímis beagán eile. Conas a sheachadamar na logaí seo. Phioc duine éigin td-gníomhaire, atá líofa i ndáiríre ach nach bhfuil sách líofa. Ní thuigim fós an gaol atá ag an dá thionscadal seo, ach is cosúil go bhfuil siad thart ar an rud céanna. Agus seo líofa, scríofa i Ruby, léamh comhaid loga, pharsáil isteach JSON ag baint úsáide as roinnt nathanna rialta. Ansin cuireadh go Kafka iad. Ina theannta sin, i Kafka, bhí 4 ábhar ar leith againn do gach API. Cén fáth 4? Toisc go bhfuil beo, tá stáitse, agus toisc go bhfuil stdout agus stderr. Táirgeann na forbróirí iad, agus ní mór d'oibrithe bonneagair iad a chruthú i Kafka. Thairis sin, bhí Kafka á rialú ag roinn eile. Mar sin, bhí sé riachtanach ticéad a chruthú ionas gur chruthaigh siad 4 thopaic ann do gach api. Rinne gach duine dearmad air. Go ginearálta, bhí sé bruscar agus dramhaíl.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Cad a rinne muid ina dhiaidh sin leis? Chuireamar chuig kafka é. Níos faide ó Kafka, d'eitil leath de na lomáin go Logstash. Roinneadh an leath eile de na logaí. D'eitil cuid acu go Graylog amháin, cuid eile go Graylog. Mar thoradh air sin, d'eitil sé seo go léir isteach i mbraisle Elasticsearch amháin. Is é sin, thit an praiseach seo go léir sa deireadh ansin. Ní gá duit é sin a dhéanamh!

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Seo an chuma atá air nuair a bhreathnaítear air ó thuas. Ní gá duit é sin a dhéanamh! Anseo, tá na réimsí fadhbanna marcáilte láithreach le huimhreacha. Tá níos mó acu ann i ndáiríre, ach is cinn fhíorfhadhbacha iad 6 cinn, agus ní mór rud éigin a dhéanamh leo. Inseoidh mé mar gheall orthu ar leithligh anois.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Anseo (1,2,3) scríobhaimid comhaid agus, dá réir sin, tá trí rácaí anseo láithreach.

Is é an chéad (1) ná go gcaithfimid iad a scríobh áit éigin. Níl sé inmhianaithe i gcónaí an cumas a thabhairt do API scríobh go díreach chuig comhad. Tá sé inmhianaithe an API a leithlisiú i gcoimeádán, agus níos fearr fós, é a bheith inléite amháin. Is riarthóir córais mé, agus mar sin tá dearcadh beagán eile agam ar na rudaí seo.

Is é an dara pointe (2,3) ná go bhfuil go leor iarratas againn ag teacht chuig an API. Scríobhann an API go leor sonraí chuig comhad. Tá na comhaid ag fás. Caithfimid iad a rothlú. Mar gheall ar shlí eile ní bheidh tú in ann aon dioscaí a shábháil ann. Is olc iad a rothlú mar go ndéantar iad a atreorú tríd an bhlaosc chuig eolaire. Níl aon bhealach gur féidir linn é a rothlú. Ní féidir leat a rá leis an bhfeidhmchlár na hanlaí a athoscailt. Toisc go bhféachfaidh na forbróirí ort mar amadán: “Cén tuairisceoirí? Go ginearálta scríobhaimid chuig stdout. Na creataí rinneadh copytruncate isteach logrotate, a dhéanann ach cóip den chomhad agus trunks an bunaidh. Dá réir sin, idir na próisis chóipeála seo, ritheann spás diosca amach de ghnáth.

(4) Bhí formáidí éagsúla againn in APIanna éagsúla. Bhí siad beagán difriúil, ach b'éigean regexp a scríobh ar bhealach difriúil. Ós rud é go raibh sé á bhainistiú go léir ag Puipéad, bhí grúpa mór ranganna ann lena cockroaches féin. Ina theannta sin, d'fhéadfadh an gníomhaire TD an chuid is mó den am cuimhne a ithe, a bheith dúr, d'fhéadfadh sé ligean air féin go raibh sé ag obair agus gan faic a dhéanamh. Outwardly, bhí sé dodhéanta a thuiscint go raibh sé ag déanamh rud ar bith. Ag is fearr, beidh sé ag titim, agus beidh duine a phiocadh suas é níos déanaí. Níos cruinne, beidh foláireamh ag eitilt isteach, agus beidh duine éigin ag dul agus é a ardú lena lámha.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

(6) Agus an chuid is mó bruscar agus dramhaíola - bhí sé elasticsearch. Toisc gur seanleagan a bhí ann. Toisc nach raibh máistrí tiomnaithe againn ag an am sin. Bhí lomáin ilchineálacha againn a bhféadfadh a réimsí forluí. D'fhéadfaí logaí éagsúla d'iarratais éagsúla a scríobh leis na hainmneacha réimse céanna, ach ag an am céanna d'fhéadfadh go mbeadh sonraí éagsúla taobh istigh. Is é sin, tagann logáil amháin le Slánuimhir i réimse, mar shampla, leibhéal. Tagann logáil eile le Teaghrán sa réimse leibhéal. In éagmais léarscáilithe statach, tagann rud iontach den sórt sin amach. Más rud é, tar éis rothlú innéacs, teachtaireacht le teaghrán a tháinig ar dtús i elasticsearch, ansin mairimid de ghnáth. Agus má tháinig an chéad cheann le Slánuimhir, ansin cuirtear amach gach teachtaireacht ina dhiaidh sin a tháinig le Teaghrán. Toisc nach ionann an cineál páirce.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Thosaigh muid ag cur na ceisteanna seo. Shocraigh muid gan breathnú ar na ciontach.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Ach ní mór rud éigin a dhéanamh! Is é an rud soiléir go gcaithfimid caighdeáin a bhunú. Bhí roinnt caighdeán againn cheana féin. Roinnt thugamar beagán níos déanaí. Ar ámharaí an tsaoil, faomhadh formáid logála aonair do gach API an tráth sin cheana féin. Tá sé scríofa go díreach isteach sna caighdeáin idirghníomhaíochta seirbhíse. Dá réir sin, ba cheart dóibh siúd ar mian leo logaí a fháil iad a scríobh san fhormáid seo. Mura scríobhann duine logaí san fhormáid seo, ní ráthaimid rud ar bith.

Ina theannta sin, ba mhaith liom go mbeadh aon chaighdeán amháin ann maidir leis na modhanna chun logaí a thaifeadadh, a sheachadadh agus a bhailiú. I ndáiríre, cá háit le hiad a scríobh, agus conas iad a sheachadadh. Is é an staid idéalach nuair a úsáideann tionscadail an leabharlann chéanna. Tá leabharlann logála ar leith ann do Go, tá leabharlann ar leith ann do PHP. Gach duine atá againn, ba chóir do gach duine iad a úsáid. I láthair na huaire, déarfainn go bhfuil ag éirí linn 80 faoin gcéad. Ach leanann cuid acu ag ithe cachtais.

Agus ansin (ar an sleamhnán) is ar éigean atá an “SLA do sheachadadh log” ag tosú le feiceáil. Níl sé ann go fóill, ach táimid ag obair air. Toisc go bhfuil sé an-áisiúil nuair a deir infra, má scríobhann tú i bhformáid dá leithéid chuig áit den sórt sin agus nach mó ná N teachtaireacht in aghaidh an tsoicind, is dóichí go ndéanfaimid é a sheachadadh ansin. Tógann sé go leor tinneas cinn. Má tá CLS, ansin tá sé ach go hiontach!

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Conas a thosaigh muid ag réiteach na faidhbe? Ba le gníomhaire td an príomh-ráca. Ní raibh sé soiléir cá dtéann ár logaí. An seachadtar iad? An bhfuil siad ag dul? Cá bhfuil siad ar aon nós? Mar sin, socraíodh an chéad mhír a chur in ionad gníomhaire td. Roghanna maidir le cad is ceart a chur ina ionad, tá cur síos gairid agam anseo.

líofa. Ar an gcéad dul síos, tháinig mé trasna air ag post roimhe seo, agus thit sé ansin go tréimhsiúil freisin. Ar an dara dul síos, tá sé seo mar an gcéanna, ach amháin i bpróifíl.

buille comhad. Cén chaoi a raibh sé go maith dúinn? Ós rud é go bhfuil sé i Go, agus tá saineolas iontach againn ar Go. Dá réir sin, más rud ar bith, d'fhéadfaimis é a chur chugainn féin ar bhealach éigin. Sin an fáth nár thóg muid é. Ionas nach mbeadh aon chathú fiú tosú á athscríobh duit féin.

Is é an réiteach soiléir don sysadmin gach cineál syslogs sa chainníocht seo (syslog-ng/rsyslog/nxlog).

Nó scríobh rud éigin de do chuid féin, ach chaitheamar siar é, chomh maith le buille comhaid. Má scríobhann tú rud éigin, ansin tá sé níos fearr rud éigin úsáideach le haghaidh gnó a scríobh. Chun logs a sheachadadh, is fearr rud éigin réidh a ghlacadh.

Mar sin, ba é rogha idir syslog-ng agus rsyslog an rogha iarbhír. Lean mé i dtreo rsyslog go simplí toisc go raibh ranganna rsyslog sa Puipéad againn cheana féin, agus níor tháinig mé ar aon difríocht shoiléir eatarthu. Cad é syslog, cad é syslog. Sea, tá roinnt doiciméadú níos measa, cuid eile níos fearr. Tá a fhios aige ar an mbealach seo, agus déanann sé go difriúil é.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Agus beagán faoi rsyslog. Gcéad dul síos, tá sé fionnuar mar tá sé go leor de na modúil. Tá RainerScript atá inléite ag an duine (teanga chumraíochta nua-aimseartha) aige. Bónas iontach é go bhféadfaimis iompar an ghníomhaire td a aithris lena chuid uirlisí caighdeánacha, agus níl aon athrú tagtha ar fheidhmchláir. Is é sin, athraíonn muid td-agent go rsyslog, agus ní dhéanaimid teagmháil le gach rud eile fós. Agus láithreach faighimid seachadadh oibre. Ansin, is é mmnormalize an rud fionnuar faoi rsyslog. Ligeann sé duit logaí a pharsáil, ach ní le Grok agus regexp. Déanann sé crann comhréire teibí. Parsálann sé logaí ar an mbealach céanna a dhéanann tiomsaitheoir an cód foinse a pharsáil. Ligeann sé seo duit oibriú go han-tapa, beagán LAP a ithe, agus, go ginearálta, níl ann ach rud iontach. Tá a lán bónais eile ann. Ní bheidh mé i mo chónaí orthu.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Tá i bhfad níos mó míbhuntáistí ag rsyslog. Tá siad thart ar an gcéanna le bónais. Is iad na príomhfhadhbanna ná go gcaithfidh tú a bheith in ann é a chócaireacht, agus ní mór duit leagan a roghnú.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Shocraigh muid go scríobhfaimis logaí i soicéad unix. Agus ní i /dev/log, toisc go bhfuil praiseach de logaí córais againn, tá irisleabhair sa phíblíne seo. Mar sin scríobhaimis chuig soicéad saincheaptha. Déanfaimid é a cheangal le tacar rialacha ar leith. Ná cuirimis isteach ar rud ar bith. Beidh gach rud trédhearcach agus intuigthe. Mar sin rinne muid i ndáiríre. Tá an t-eolaire leis na soicéid seo caighdeánaithe agus curtha ar aghaidh chuig gach coimeádán. Is féidir le coimeádáin an soicéad a theastaíonn uathu a fheiceáil, a oscailt agus scríobh chuige.

Cén fáth nach comhad? Toisc go bhfuil léamh ag gach duine alt faoi Badushechka, a rinne iarracht an comhad a chur ar aghaidh chuig docker, agus fuair sé amach, tar éis rsyslog a atosú, go n-athraíonn tuairisceoir an chomhaid, agus go gcaillfidh an docker an comhad seo. Coinníonn sé ar oscailt rud éigin eile, ach ní an soicéad céanna ina scríobhann siad. Shocraigh muid go seachnófaí an fhadhb seo, agus, ag an am céanna, go seachnófaí an fhadhb blocála.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Déanann Rsyslog na gníomhartha atá léirithe ar an sleamhnán agus seolann sé logaí chuig ceachtar sealaíochta nó chuig Kafka. Leanann Kafka an seanbhealach. Rayleigh - Rinne mé iarracht rsyslog íon a úsáid chun logaí a sheachadadh. Gan Queue Teachtaireacht, ag baint úsáide as uirlisí caighdeánach rsyslog. Go bunúsach, oibríonn sé.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Ach tá nuances ann maidir le conas iad a líonadh isteach sa chuid seo níos déanaí (Logstash/Graylog/ES). Úsáidtear an chuid seo (rsyslog-rsyslog) idir datacenters. Seo nasc tcp comhbhrúite, a ligeann duit bandaleithead a shábháil agus, dá réir sin, méadú ar bhealach éigin ar an dóchúlacht go bhfaighfimid roinnt logaí ó ionad sonraí eile nuair a bhíonn an cainéal lán. Toisc go bhfuil an Indinéis againn, áit a bhfuil gach rud dona. Sin an áit a luíonn an fhadhb leanúnach.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Rinneamar machnamh ar an gcaoi a ndéanaimid monatóireacht iarbhír, agus cén dóchúlacht a bhainfidh na logaí a thaifeadamar ón bhfeidhmchlár leis an gcríoch sin? Shocraigh muid tús a chur le méadracht. Tá a modúl bailithe staitisticí féin ag Rsyslog, a bhfuil áiritheoirí de chineál éigin aige. Mar shampla, féadann sé méid na scuaine a thaispeáint duit, nó cé mhéad teachtaireacht a tháinig isteach le haghaidh beart dá leithéid. Is féidir leat rud éigin a thógáil uathu cheana féin. Ina theannta sin, tá cuntair saincheaptha aige ar féidir leat a chumrú, agus léireoidh sé duit, mar shampla, líon na dteachtaireachtaí a thaifead roinnt API. Ansin, scríobh mé rsyslog_exporter i Python, agus chuireamar go léir chuig Prometheus é agus rinneamar breacadh air. Theastaigh uainn i ndáiríre méadracht Graylog, ach go dtí seo ní raibh am againn chun iad a shocrú.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Cad iad na fadhbanna? D'eascair an fhadhb leis an bhfíric go bhfuaireamar amach (go tobann!) go scríobhann ár APInna Beo 50k teachtaireacht in aghaidh an tsoicind. Níl anseo ach Live API gan stáitse. Agus ní thaispeánann Graylog ach 12 míle teachtaireacht dúinn in aghaidh an tsoicind. Agus d’éirigh ceist réasúnta, cá bhfuil na hiarsmaí? As ar tháinig muid ar an gconclúid nach féidir le Graylog dul i ngleic go simplí. D'fhéachamar, agus, go deimhin, níor mháistir Graylog le Elasticsearch an sreabhadh seo.

Ansin, fionnachtana eile atá déanta againn feadh na slí.

Tá bac ar scríobhann chuig soicéad. Conas a tharla sé? Nuair a d'úsáid mé rsyslog le haghaidh seachadadh, ag pointe éigin bhriseamar an cainéal idir na hionaid sonraí. D'éirigh an seachadadh in áit amháin, d'éirigh an seachadadh in áit eile. Tá sé seo go léir tagtha síos go dtí meaisín le APIs a scríobhann chuig an soicéad rsyslog. Bhí scuaine ann. Ansin líonadh an scuaine chun scríobh chuig an soicéad unix, arb é 128 paicéad é de réir réamhshocraithe. Agus an chéad scríobh eile() sna bloic iarratais. Nuair a d’fhéachamar ar an leabharlann a úsáidimid in feidhmchláir Go, scríobhadh ansin go dtarlaíonn scríobh chuig an soicéad i mód neamh-bhloic. Bhí muid cinnte nach raibh aon rud bac. Toisc go bhfuil léamh againn alt faoi Badushechkaa scríobh faoi. Ach tá nóiméad ann. Bhí lúb gan teorainn timpeall ar an nglao seo freisin, ina ndearnadh iarracht leanúnach teachtaireacht a bhrú isteach sa soicéad. Níor thugamar faoi deara é. Bhí orm an leabharlann a athscríobh. Ó shin i leith, tá sé athraithe arís agus arís eile, ach anois táimid tar éis fáil réidh le glais i ngach fochóras. Dá bhrí sin, is féidir leat rsyslog a stopadh agus ní thitfidh aon rud.

Is gá monatóireacht a dhéanamh ar mhéid na scuainí, rud a chabhraíonn gan céim ar an raca seo. Gcéad dul síos, is féidir linn monatóireacht a dhéanamh nuair a thosaíonn muid teachtaireachtaí a chailleadh. Ar an dara dul síos, is féidir linn monatóireacht a dhéanamh go bhfuil fadhbanna againn go bunúsach le seachadadh.

Agus tá nóiméad míthaitneamhach eile - aimpliú 10 n-uaire in ailtireacht microservice an-éasca. Níl an oiread sin iarratas isteach againn, ach mar gheall ar an ngraf a ritheann na teachtaireachtaí seo níos faide, mar gheall ar na logaí rochtana, méadóimid an t-ualach ar na logaí thart ar dheich n-uaire. Ar an drochuair, ní raibh am agam na huimhreacha cruinn a ríomh, ach is é microservices cad atá siad. Ní mór é seo a choinneáil i gcuimhne. Tharlaíonn sé go raibh an fochóras bailiúcháin logs an chuid is mó luchtaithe i Lazada faoi láthair.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Conas fadhb elasticsearch a réiteach? Más gá duit logaí a fháil go tapa in aon áit amháin, ionas nach mbeidh tú ag rith ar fud na meaisíní go léir agus iad a bhailiú ann, bain úsáid as stóráil comhad. Tá sé seo ráthaithe a bheith ag obair. Déantar é ó aon fhreastalaí. Níl le déanamh agat ach dioscaí a ghreamú ansin agus syslog a chur. Tar éis sin, tá tú cinnte go mbeidh na logaí go léir in aon áit amháin. Ansin beifear in ann elasticsearch, graylog, nó rud éigin eile a chumrú go mall. Ach beidh na logaí go léir agat cheana féin, agus, ina theannta sin, is féidir leat iad a stóráil, chomh fada agus a bhfuil dóthain eagair diosca ann.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Ag am mo thuarascála, thosaigh an scéim ag breathnú mar seo. Stopamar beagnach ag scríobh chuig an gcomhad. Anois, is dócha, casfaimid amach na hiarsmaí. Ar mheaisíní áitiúla a ritheann an API, stopfaimid ag scríobh chuig comhaid. Gcéad dul síos, tá stóráil comhad, a oibríonn go han-mhaith. Ar an dara dul síos, tá na meaisíní seo ag rith amach as an spás i gcónaí, ní mór duit monatóireacht leanúnach a dhéanamh air.

An chuid seo le Logstash agus Graylog, soars sé i ndáiríre. Dá bhrí sin, ní mór duit fáil réidh leis. Caithfidh tú ceann a roghnú.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Shocraigh muid titim Logstash agus Kibana. Toisc go bhfuil roinn slándála againn. Cad é an ceangal? Is é an nasc ná nach gceadaíonn Kibana gan X-Pack agus gan Sciath duit cearta rochtana ar na logaí a idirdhealú. Dá bhrí sin, ghlac siad Graylog. Tá sé ar fad. Ní maith liom é, ach oibríonn sé. Cheannaigh muid crua-earraí nua, chuireamar Graylog úr isteach ann, agus bhogamar gach log le formáidí dian go Graylog ar leith. Táimid tar éis an fhadhb a réiteach le cineálacha éagsúla de na réimsí céanna go eagraíochtúil.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Cad é go díreach atá san áireamh sa Graylog nua. Scríobh muid gach rud sa docker. Ghlacamar a bunch de freastalaithe, rolladh amach trí chás Kafka, 7 freastalaí Graylog leagan 2.3 (toisc go raibh mé ag iarraidh Elasticsearch leagan 5). Ardaíodh é seo ar fad ar ruathair ón HDD. Chonaiceamar ráta innéacsaithe de suas le 100 míle teachtaireacht in aghaidh an tsoicind. Chonaiceamar an figiúr go 140 teiribít sonraí in aghaidh na seachtaine.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Agus arís raic! Tá dhá dhíolachán ag teacht suas. Táimid tar éis bogadh níos faide ná 6 mhilliún post. Níl am againn Graylog chun coganta. Ar bhealach caithfidh tú maireachtáil arís.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Seo mar a mhair muid. Cuireadh cúpla freastalaithe agus SSDanna breise leis. Faoi láthair táimid ag maireachtáil mar seo. Anois táimid ag coganta 160k teachtaireacht in aghaidh an tsoicind cheana féin. Níl an teorainn bainte amach againn go fóill, mar sin níl sé soiléir cé mhéad is féidir linn a bhaint amach go réadúil.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Seo iad ár bpleananna don todhchaí. Díobh seo, i ndáiríre, is dócha go bhfuil an ceann is tábhachtaí infhaighteacht ard. Níl sé againn fós. Socraítear roinnt carranna ar an mbealach céanna, ach go dtí seo tá gach rud ag dul trí charr amháin. Is gá am a chaitheamh chun teip a chur ar bun eatarthu.

Bailigh méadracht ó Graylog.

Déan teorainn ráta ionas go mbeidh API craiceáilte amháin againn nach maraíonn bandaleithead sinn agus gach rud eile.

Agus ar deireadh, sínigh CLS de chineál éigin le forbróirí ionas gur féidir linn freastal ar an méid sin. Má scríobhann tú níos mó, ansin tá brón orainn.

Agus scríobh doiciméadú.

Yury Bushmelev "Léarscáil de raca i réimse na logaí a bhailiú agus a sheachadadh" - tras-scríbhinn den tuarascáil

Go hachomair, torthaí gach rud a bhfuil taithí againn. Gcéad dul síos, na caighdeáin. Sa dara háit, is císte é syslog. Ar an tríú dul síos, oibríonn rsyslog go díreach mar atá sé scríofa ar an sleamhnán. Agus a ligean ar a fháil chun na ceisteanna.

ceisteanna.

Ceist: Cén fáth ar shocraigh siad gan a ghlacadh ... (filebeat?)

Freagair: Is gá scríobh chuig comhad. Níor theastaigh uaim i ndáiríre. Nuair a scríobhann do API na mílte teachtaireachtaí in aghaidh an tsoicind, fiú má rothlaíonn tú uair an chloig, ní rogha é seo fós. Is féidir leat scríobh chuig píopa. Ar chuir na forbróirí ceist orm: “Cad a tharlóidh má thiteann an próiseas ina scríobhaimid síos”? Ní bhfuair mé ach cad ba cheart iad a fhreagairt, agus dúirt: "Bhuel, ceart go leor, ná déanaimis é sin."

Ceist: Cén fáth nach scríobhann tú ach logaí chuig HDFS?

FreagairA: Is é seo an chéad chéim eile. Rinneamar machnamh air ag an tús, ach ós rud é nach bhfuil aon acmhainní ann faoi láthair chun déileáil leis, tá sé hang ar ár réiteach fadtéarmach.

Ceist: Bheadh ​​formáid colúin níos oiriúnaí.

Freagair: Tuigim. Táimid "le haghaidh" leis an dá lámh.

Ceist: Scríobhann tú chuig rsyslog. Tá an dá TCP agus UDP ar fáil ann. Ach más UDP, conas a ráthaíonn tú an seachadadh?

FreagairA: Tá dhá phointe ann. Gcéad dul síos, inis mé láithreach do gach duine nach bhfuil ráthaíocht againn go seachadadh na logaí. Mar nuair a thagann na forbróirí agus a rá: "Tosóimid ag scríobh sonraí airgeadais ann, agus cuirfidh tú áit éigin dúinn é ar eagla go dtarlóidh rud éigin," freagraimid iad, "Ar fheabhas! Tosaímid ag blocáil ar scríobh chuig an soicéad, agus é a dhéanamh in idirbhearta, ionas go mbeidh ráthaíocht agat é a chur sa soicéad dúinn agus déan cinnte go bhfuair muid é ón taobh eile. Agus ag an nóiméad seo, éiríonn gach duine láithreach gan ghá. Agus mura bhfuil, cad iad na ceisteanna atá againn? Mura bhfuil tú ag iarraidh scríobh chuig an soicéad a ráthú, cén fáth a ráthóimid an seachadadh? Táimid ag déanamh an iarracht is fearr. Déanaimid iarracht i ndáiríre an oiread agus is féidir agus is fearr a sheachadadh, ach ní thugann muid ráthaíocht 100%. Dá bhrí sin, ní gá duit sonraí airgeadais a scríobh ann. Tá bunachair shonraí idirbheartaíochta ann chuige seo.

Ceist: Nuair a ghineann an API roinnt teachtaireacht chuig an logáil isteach agus a aistríonn an rialú chuig microservices, an bhfuil tú tar éis teacht ar an bhfadhb go dtagann teachtaireachtaí ó mhicrosheirbhísí éagsúla san ord mícheart? Mar gheall air seo, eascraíonn mearbhall.

FreagairA: Is gnách go dtagann siad in ord difriúil. Caithfidh tú a bheith réidh chuige seo. Toisc nach ráthaíonn aon seachadadh líonra ordú duit, nó ní mór duit acmhainní speisialta a chaitheamh air seo. Má ghlacaimid stóráil comhad, ansin sábhálann gach API logs chuig a chomhad féin. Ina ionad sin, díscaoileann rsyslog iad in eolairí ansin. Tá a logaí féin ag gach API ann, áit ar féidir leat dul agus breathnú, agus ansin is féidir leat iad a chur i gcomparáid leis an stampa ama sa loga seo. Má théann siad chun breathnú i Graylog, ansin beidh siad curtha in eagar de réir stampa ama. Beidh gach rud go breá ann.

Ceist: Féadfaidh an stampa ama a bheith éagsúil de réir milleasoicindí.

Freagair: Gintear an stampa ama ag an API féin. Is é seo, i ndáiríre, an pointe iomlán. Tá NTP againn. Gineann an API stampa ama atá sa teachtaireacht féin cheana féin. Ní chuireann rsyslog leis.

Ceist: Níl an idirghníomhaíocht idir ionaid sonraí an-soiléir. Faoi chuimsiú an ionaid sonraí, tá sé soiléir conas a bailíodh agus a próiseáladh na logaí. Conas atá an idirghníomhaíocht idir ionaid sonraí? Nó an bhfuil a shaol féin ag gach ionad sonraí?

Freagair: Beagnach. Tá gach tír againn lonnaithe in aon ionad sonraí amháin. Níl scaipeadh againn faoi láthair, ionas go gcuirfear tír amháin in ionaid sonraí éagsúla. Dá bhrí sin, ní gá iad a chur le chéile. Laistigh de gach ionad tá Logsheachadán. Is freastalaí Rsyslog é seo. Go deimhin, dhá mheaisín bainistíochta. Socraítear iad ar an mbealach céanna. Ach faoi láthair, ní théann an trácht ach trí cheann acu. Logálann sí comhiomlán gach rud. Tá scuaine diosca aige ar eagla na heagla. Brúnn sí na logaí agus cuireann sí chuig an lárionad sonraí (Singeapór) iad, áit a bhfuil nimhiú orthu cheana féin i Graylog. Agus tá a stóráil comhad féin ag gach ionad sonraí. Ar eagla go gcaillfimid nasc, tá na logaí go léir againn ann. Fanfaidh siad ansin. Stórálfar ansin iad.

Ceist: An bhfaigheann tú logaí as sin le linn cásanna neamhghnácha?

Freagair: Is féidir leat dul ann (go dtí an stóráil comhad) agus breathnú.

Ceist: Conas a dhéanann tú monatóireacht a dhéanamh nach gcailleann tú logs?

Freagair: Táimid ag dul amú orthu i ndáiríre, agus táimid ag déanamh monatóireachta orthu. Thosaigh monatóireacht mí ó shin. Tá méadracht ag an leabharlann a úsáideann Go APIs. Is féidir léi a chomhaireamh cé mhéad uair a theip uirthi scríobh chuig an soicéad. I láthair na huaire tá heuristic tricky. Tá maolán ann. Déanann sé iarracht teachtaireacht a scríobh uaidh go soicéad. Má sháraíonn an maolán, tosaíonn sé á scaoileadh. Agus comhaireamh sé cé mhéad a thit sé iad. Má thosaíonn na cuntair ag cur thar maoil ansin, beidh a fhios againn faoi. Tá siad ag teacht go prometheus anois freisin, agus is féidir leat na graif a fheiceáil i Grafana. Is féidir leat foláirimh a shocrú. Ach níl sé soiléir fós cé chuige a gcuirfear iad.

Ceist: In elasticsearch, stórálann tú logaí le hiomarcaíocht. Cé mhéad macasamhail atá agat?

Freagair: Macasamhail amháin.

Ceist: An líne amháin é?

Freagair: Seo é an máistir agus macasamhail. Stóráiltear na sonraí i ndúblach.

Ceist: Ar tweak tú méid an mhaoláin rsyslog ar bhealach éigin?

Freagair: Scríobhaimid datagrams chuig soicéad unix saincheaptha. Cuireann sé seo teorainn láithreach de 128 cilibheart orainn. Ní féidir linn níos mó a scríobh isteach ann. Táimid tar éis é seo a scríobh isteach sa chaighdeán. Cé atá ag iarraidh dul isteach sa stóráil, scríobhann siad 128 cilibheart. Leabharlanna, ina theannta sin, a ghearradh amach, agus a chur bratach go bhfuil an teachtaireacht a ghearradh amach. Tá réimse speisialta againn i gcaighdeán na teachtaireachta féin, rud a thaispeánann cé acu ar gearradh siar é le linn taifeadta nó nár gearradh. Mar sin tá an deis againn an nóiméad seo a rianú.

Ceist: An scríobhann tú JSON briste?

Freagair: Scriosfar JSON briste le linn sealaíochta toisc go bhfuil an paicéad ró-mhór. Nó fágfar Graylog, mar ní bheidh sé in ann JSON a pharsáil. Ach tá nuances anseo nach mór a shocrú, agus tá siad ceangailte den chuid is mó le rsyslog. Tá cúpla eagrán líonta agam cheana féin, ar gá oibriú orthu fós.

Ceist: Cén fáth Kafka? An ndearna tú triail as RabbitMQ? Ní chuireann Graylog suas faoi ualaí den sórt sin?

Freagair: Ní oibríonn sé amach le Graylog. Agus tá Graylog ag tógáil cruth. Tá sé an-fadhbanna dó. Tá sé saghas rud. Agus, i ndáiríre, nach bhfuil sé ag teastáil. B'fhearr liom scríobh ó rsyslog go díreach chuig elasticsearch agus ansin féachaint ar Kibana. Ach caithfimid an cheist a réiteach leis na gardaí slándála. Is leagan féideartha é seo dár bhforbairt nuair a chaithimid Graylog amach agus úsáidimid Kibana. Ní dhéanfaidh Logstash ciall. Toisc gur féidir liom an rud céanna a dhéanamh le rsyslog. Agus tá modúl aige le scríobh chuig elasticsearch. Le Graylog táimid ag iarraidh maireachtáil ar bhealach éigin. tweaked againn fiú é beagán. Ach tá spás le feabhsú fós.

Faoi Kafka. Sin mar a tharla sé go stairiúil. Nuair a tháinig mé, bhí sé ann cheana féin, agus bhí logs á scríobh chuige cheana féin. D'ardaigh muid ár mbraisle díreach agus bhog muid logs isteach ann. Déanaimid é a bhainistiú, tá a fhios againn conas a mhothaíonn sé. Maidir le RabbitMQ... tá trioblóid againn le RabbitMQ. Agus tá RabbitMQ ag forbairt dúinn. Tá sé againn i dtáirgeadh, agus bhí fadhbanna leis. Anois, roimh an díolachán, bheadh ​​shamanized air, agus thosódh sé ag obair de ghnáth. Ach roimhe sin, ní raibh mé réidh chun é a scaoileadh isteach i dtáirgeadh. Tá pointe amháin eile ann. Is féidir le Graylog leagan AMQP 0.9 a léamh agus is féidir le rsyslog leagan AMQP 1.0 a scríobh. Agus níl aon réiteach amháin ann ar féidir leis an dá cheann a dhéanamh sa lár. Tá ceachtar ceann amháin nó an ceann eile. Mar sin, go dtí seo ach Kafka. Ach tá nuances ann freisin. Toisc gur féidir le omkafka den leagan de rsyslog a úsáidimid an maolán teachtaireachta iomlán a bhain sé as rsyslog a chailleadh. Chomh fada agus a chuir muid suas leis.

Ceist: An bhfuil tú ag úsáid Kafka mar bhí sé agat? Nach n-úsáidtear chun aon chríche eile?

Freagair: Kafka, a d'úsáid an fhoireann Eolaíochta Sonraí. Is tionscadal go hiomlán ar leith é seo, nach féidir liom, ar an drochuair, aon rud a rá faoi. Níl a fhios agam. Bhí sí á reáchtáil ag an bhfoireann Eolaíochta Sonraí. Nuair a thosaigh na logaí, chinn siad é a úsáid, ionas nach gcuirfí a gcuid féin. Anois tá Graylog nuashonraithe againn, agus chailleamar comhoiriúnacht, toisc go bhfuil seanleagan de Kafka ann. Bhí orainn ár gcuid féin a dhéanamh. Ag an am céanna, fuair muid réidh leis na ceithre ábhar seo do gach API. Rinneamar barr leathan amháin do gach duine beo, barr leathan amháin do gach stáitse agus níl le déanamh againn ach gach rud a lámhach ann. Casann Graylog seo go léir amach ag an am céanna.

Ceist: Cén fáth a bhfuil gá againn leis an shamanism seo le soicéid? An ndearna tú iarracht an tiománaí logála syslog a úsáid le haghaidh coimeádáin.

Freagair: Ag an am nuair a chuireamar an cheist seo, bhí caidreamh aimsir againn leis an docker. Docker 1.0 nó 0.9 a bhí ann. Bhí Docker féin aisteach. Ar an dara dul síos, má chuireann tú logaí isteach ann freisin ... tá amhras orm nach bhfuil deimhnithe go dtéann sé na logaí go léir tríd féin, tríd an deamhan docker. Má tá API amháin againn ag dul ar mire, ansin rachaidh an chuid eile de na APIanna isteach sa chaoi is nach féidir leo stdout agus stderr a sheoladh. Níl a fhios agam cá rachaidh sé seo. Tá amhras orm faoin leibhéal mothaithe nach bhfuil sé riachtanach an tiománaí docker syslog a úsáid san áit seo. Tá a braisle Graylog féin ag ár roinn tástála feidhme le logaí. Úsáideann siad tiománaithe logáil docker agus is cosúil go bhfuil gach rud go breá ann. Ach scríobhann siad GELF láithreach chuig Graylog. I láthair na huaire nuair a thosaigh muid seo go léir, bhí sé de dhíth orainn ach a bheith ag obair. B'fhéidir níos déanaí, nuair a thagann duine agus a deir go bhfuil sé ag obair de ghnáth ar feadh céad bliain, déanfaimid iarracht.

Ceist: Seachadann tú idir ionaid sonraí ag baint úsáide as rsyslog. Cén fáth nach bhfuil tú ar Kafka?

Freagair: Déanaimid é seo, agus seo mar atá sé i ndáiríre. Ar dhá chúis. Má tá an cainéal go hiomlán marbh, ansin ní bheidh ár logs go léir, fiú i bhfoirm chomhbhrúite, dreapadh tríd. Agus ligeann kafka dóibh go simplí a chailleadh sa phróiseas. Ar an mbealach seo, déanaimid réidh leis na logaí seo a ghreamú. Nílimid ach ag baint úsáide as Kafka sa chás seo go díreach. Má tá cainéal maith againn agus más mian linn é a shaoradh, bainimid úsáid as a rsyslog. Ach i ndáiríre, is féidir leat é a shocrú ionas go dtiteann sé an méid nach bhfuair sé tríd. Faoi láthair táimid ag baint úsáide as seachadadh rsyslog díreach áit éigin, áit éigin Kafka.

Foinse: will.com

Add a comment