Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O ogalaau o se vaega taua o le faiga, e mafai ai ona e malamalama o loʻo galue (pe leai) e pei ona faʻamoemoeina. I totonu o se faʻataʻitaʻiga microservice, o le galue i ogalaau e avea ma se aʻoga ese mo se Olimipeka faʻapitoa. Ole tele o fesili e manaʻomia ona foia ile taimi e tasi:

  • auala e tusi ai ogalaau mai se talosaga;
  • o fea e tusi ai ogalaau;
  • auala e momoli atu ai ogalaau mo le teuina ma le fa'agaioiina;
  • fa'afefea ona fa'agaoioi ma teu fa'amaumauga.

O le faʻaogaina o tekonolosi faʻapipiʻi lauiloa i le taimi nei e faʻaopoopoina ai le oneone i luga o le rake i le fanua o filifiliga mo le foia o le faʻafitauli.

O le mea tonu lea o le faʻamatalaga o le lipoti a Yuri Bushmelev "Map of rakes i le fanua o le aoina ma le tuʻuina atu o ogalaau" e uiga i.

O ai e popole, faamolemole i lalo o le pusi.

O loʻu igoa o Yuri Bushmelev. Ou te faigaluega i Lazada. O le asō o le a ou talanoa e uiga i le auala na matou faia ai a matou ogalaau, pe na faapefea ona matou aoina, ma mea matou te tusia ai iina.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O fea tatou te sau ai? O ai i tatou? O Lazada o le Numera 1 fa'atau oloa i luga o le initaneti i atunu'u e ono i Asia i Sautesasae. O nei atunuu uma o loʻo tufatufa atu i totonu o matou nofoaga autu o faʻamatalaga. O lo'o i ai i le taimi nei nofoaga autu fa'amaumauga e 4. Aisea e taua ai lenei mea? Ona o nisi o faaiuga na mafua ona o le mea moni o loʻo i ai se sootaga vaivai tele i le va o nofoaga tutotonu. E iai la matou fa'ata'ita'iga microservice. Na ou ofo ina ua ou iloa ua uma ona i ai le 80 microservices. Ina ua ou amataina le galuega i ogalaau, sa na o le 20. Ma o loʻo i ai se vaega tele o le PHP talatuu, lea e tatau foi ona ou ola ai ma faʻafeiloaʻi. O nei mea uma o loʻo gaosia i le taimi nei e sili atu i le 6 miliona feʻau i le minute mo le faiga atoa. O le isi o le a ou faʻaalia le auala o loʻo tatou taumafai ai e ola i lenei mea, ma pe aisea ua faʻapea ai.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

E tatau ona e ola i nei 6 miliona feʻau. O le a se mea e tatau ona tatou faia ia i latou? 6 miliona feʻau e te manaʻomia:

  • lafo mai le app
  • talia mo le tilivaina
  • avatu mo au'ili'iliga ma teuina.
  • iloilo
  • teuina i se auala.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Ina ua aliali mai le tolu miliona savali, sa ou foliga tutusa lava. Aua na matou amata i ni nai pene. E manino lava o lo'o tusia iina tusi talosaga. Mo se faʻataʻitaʻiga, e le mafai ona ou faʻafesoʻotaʻi i le database, na mafai ona ou faʻafesoʻotaʻi i le database ae le mafai ona ou faitau i se mea. Ae e le gata i lea, e tusia foi e a tatou microservices se log avanoa. O talosaga uma e o'o mai i le microservice o lo'o fa'amaumauina i le ogalaau. Aisea ua tatou faia ai lenei mea? E manaʻo tagata atiaʻe e mafai ona suʻe. O fa'amaumauga ta'itasi ta'itasi o lo'o iai se fanua fa'asinomaga, e fa'aogaina ai e se fa'aoga fa'apitoa e fa'amavae ai le filifili atoa ma fa'aali matagofie le fa'asologa. O le fa'asologa o lo'o fa'aalia ai le auala na alu ai le talosaga, ma e fesoasoani lea i a tatou atina'e e fa'atautaia vave so'o se lapisi e le'i iloa.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

E fa'afefea ona ola i lenei mea? O lenei o le a ou faʻamatala puupuu le fanua o filifiliga - pe faʻafefea ona foia lenei faʻafitauli. E faʻafefea ona foia le faʻafitauli o le aoina, faʻasalalau ma le teuina o ogalaau.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

E faʻafefea ona tusi mai se talosaga? E manino lava e eseese auala. Aemaise lava, o loʻo i ai faʻataʻitaʻiga sili ona lelei, e pei ona taʻu mai e a tatou uo masani. E lua ituaiga a’oga tuai, e pei ona ta’u mai e o tatou tama matutua ia i tatou. E iai isi auala.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O le tulaga i le aoina o ogalaau e toetoe lava tutusa. E le tele ni filifiliga mo le foia o lenei vaega faapitoa. Ua tele naua, ae e lei toatele naua.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Ae faʻatasi ai ma le tuʻuina atu ma suʻesuʻega mulimuli ane, o le numera o fesuiaiga e amata ona pa. O le a ou le faamatalaina filifiliga taitasi i le taimi nei. Ou te manatu o filifiliga autu e iloa lelei e tagata uma e fiafia i le autu.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O le a ou faʻaali atu ia te oe le auala na matou faia ai i Lazada, ma pe faʻapefea ona amata uma.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

I le tausaga talu ai na ou sau ai i Lazada ma auina atu i se galuega faatino e uiga i ogalaau. O se mea faapenei. O le tusi talosaga na tusia i stdout ma stderr. Sa faia mea uma i se faiga masani. Ae na lafoaʻi e le au atiaʻe mai le faʻasologa masani, ona faʻataʻitaʻiina lea e le au faʻapitoa faʻapitoa. I le va o tagata faʻapitoa faʻapitoa ma atinaʻe, o loʻo i ai foi tagata faʻamalolo na fai mai: "uh ... lelei, seʻi o tatou afifiina i se faila ma se atigi, ma o le mea lena." Ma talu ai o nei mea uma sa i totonu o se atigipusa, sa latou afifiina saʻo i totonu o le atigipusa lava ia, faʻafanua le lisi i totonu ma tuʻu ai iina. Ou te manatu e matua manino lava i tagata uma le mea na maua mai ai.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Sei o tatou vaavaai teisi atu mo le taimi nei. Na fa'apefea ona matou tu'uina atu nei ogalaau? Na filifilia e se tasi le td-agent, lea e matua lelei lava, ae e le o lelei. Ou te le o malamalama lava i le sootaga i le va o nei poloketi e lua, ae e foliga mai e tutusa lava. Ma o lenei fluentd, tusia i Ruby, faitau faila ogalaau, faʻapipiʻi i totonu o le JSON e faʻaaoga ai se ituaiga masani. Ona ou auina atu lea i Kafka. E le gata i lea, i Kafka e 4 a matou mataupu eseese mo API taʻitasi. Aisea 4? Ona o loʻo i ai le ola, o loʻo i ai le faʻatulagaina, ma ona o loʻo i ai le stdout ma le stderr. E faia e le au atinaʻe, ma e tatau i tagata atinaʻe atinaʻe ona fausia i latou i Kafka. E le gata i lea, na pulea Kafka e se isi matagaluega. O le mea lea, na tatau ai ona faia se pepa ulufale ina ia mafai ai ona latou fatuina 4 autu mo api taitasi. Na galo i tagata uma. I se tulaga lautele, sa i ai lapisi ma vevesi.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O le a le isi mea na matou faia i lenei mea? Na matou auina atu i Kafka. Ona lele atu lea o le afa o ogalaau mai Kafka i Logstash. O le isi afa o ogalaau sa vaevaeina. O nisi na felelei i le tasi Graylog, o isi i le isi Graylog. O se taunuuga, o nei mea uma na alu i totonu o le tasi Elasticsearch cluster. O lona uiga, na i'u ai i'ina nei mea leaga uma. Aua le faia lena mea!

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O le mea lea e foliga mai pe a e tilotilo i ai mai luga. Aua le faia lena mea! O i'inei o fa'afitauli e vave fa'ailogaina i numera. E moni lava e tele atu, ae 6 o ni faʻafitauli faʻafitauli e manaʻomia ona fai i ai. O le a ou taʻu atu ia te oe e uiga ia i latou i le taimi nei.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O iinei (1,2,3) matou te tusia faila ma, e tusa ai, e tolu rake iinei i le taimi e tasi.

Muamua (1) e tatau ona tatou tusia i se mea. E le o taimi uma e manaʻomia le tuʻuina atu i le API le tomai e tusi saʻo i se faila. E mana'omia le fa'aesea o le API i totonu o se atigipusa, pe sili atu fo'i, ia na'o le faitau. O aʻu o se pule faʻatonu, o lea e iai laʻu vaaiga faʻapitoa i nei mea.

O le mea lona lua (2,3) o loʻo i ai le tele o a matou talosaga e oʻo mai i le API. E tusia e le API le tele o faʻamatalaga i se faila. Ua faatupulaia faila. E tatau ona tatou fesuia'i. Aua a leai o le a le mafai ona e teuina i luga o soʻo se tisiki iina. O le fesuia'i o latou e leaga ona e faia e ala i le toe fa'asaga atu i le atigi i le lisi. E leai se auala e mafai ai ona tatou toe iloiloina. E le mafai ona e fai atu i le talosaga e toe tatala au. Aua o le a vaʻavaʻai mai le au atinaʻe ia te oe e pei o oe o se vale: "O a faʻamatalaga? E masani ona matou tusi atu ia stdout.” Na faia e le au atina'e atina'e le copytruncate e logrotate, e na'o le faia o se kopi o le faila ma fa'aliliu le ulua'i. E tusa ai, i le va o nei faiga kopi e masani ona uma le avanoa o le disk.

(4) E eseese a matou faatulagaga i API eseese. E fai sina eseesega, ae o le regexp e tatau ona ese le tusia. Talu ai o nei mea uma sa pulea e Papeti, sa i ai le tele o vasega ma a latou lava moa. Ma le isi, o le tele o taimi e mafai ai e le td-agent ona 'ai le manatua, faʻavalevalea, e mafai ona faʻafoliga o loʻo galue ae leai se mea. Mai fafo e le mafai ona malamalama e leai se mea na te faia. O le mea sili, o le a paʻu o ia ma o le a toe siiina o ia e se tasi mulimuli ane. E sili atu le saʻo, o le a oʻo mai se mataala, ma o le a alu se tasi e sii i luga i ona lima.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

(6) Ma o le tele o lapisi ma otaota o elasticsearch. Aua o se lomiga tuai. Aua e lei i ai ni o matou matai tuuto i lena taimi. Sa i ai a matou ogalaau eseese e mafai ona felavasa'i fanua. O ogalaau eseese mai tusi talosaga eseese e mafai ona tusia i igoa tutusa o fanua, ae atonu e eseese fa'amaumauga i totonu. O lona uiga, e tasi le ogalaau e sau ma le Integer i le fanua, mo se faʻataʻitaʻiga, tulaga. O le isi ogalaau e sau ma String i le tulaga maualuga. I le leai o se faafanua tumau, o se mea manaia tele lea. Afai, pe a uma ona sui le faasinoupu i le elasticsearch, o se feʻau ma se manoa e taunuu muamua, ona tatou ola masani ai lea. Ae afai na taunuu mai le mea muamua mai le Integer, ona lafoai uma lea o feʻau mulimuli ane na taunuu mai String. Aua e le fetaui le ituaiga fanua.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Na amata ona matou fai atu nei fesili. Na matou filifili e aua neʻi vaavaai mo i latou e tuuaʻia.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Ae e iai se mea e tatau ona fai! O le mea manino e tatau ona tatou faʻatulagaina tulaga. Ua uma ona i ai ni a matou tulaga faatonuina. Sa matou amata i sina taimi mulimuli ane. O le mea e lelei ai, e tasi le faʻasologa o faʻamaumauga mo API uma ua uma ona faʻamaonia i lena taimi. O lo'o tusia sa'o i totonu o fa'atonuga mo fegalegaleaiga i le va o tautua. E tusa ai, oi latou e fia maua ogalaau e tatau ona tusia i latou i lenei faatulagaga. Afai e le tusia e se tasi ni ogalaau i lenei faatulagaga, matou te le faʻamaonia se mea.

O le isi, ou te manaʻo e fatuina se tulaga faʻatasi mo metotia o le pueina, tuʻuina atu ma le aoina o ogalaau. O le mea moni, o fea e tusi ai, ma pe faʻapefea ona tuʻuina atu. O le tulaga e sili ona lelei pe a fa'aogaina e poloketi le faletusi e tasi. O lo'o i ai se faletusi tu'ueseese mo Go, ma se isi faletusi mo PHP. O tagata uma ua ia i tatou e tatau ona faʻaaogaina. I le taimi nei, ou te fai atu e 80 pasene le manuia i lenei mea. Ae o nisi tagata e faʻaauau pea ona 'ai cacti.

Ma o iina (i luga o le faʻasolo) o le "SLA mo le tuʻuina atu o ogalaau" tau amata ona aliali mai. E le'i iai, ae o lo'o matou galulue i ai. Aua e faigofie tele pe a fai mai le atinaʻe e faapea afai e te tusia i sea ma sea faatulagaga i lea ma lea nofoaga ma e le sili atu i le N feʻau i le sekone, o le a sili atu ona matou tuʻuina atu i lea ma lea nofoaga. O lenei mea e faʻamalolo ai le tele o tiga ulu. Afai ei ai se SLA, o lona uiga e matua matagofie!

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Na faapefea ona tatou foia le faafitauli? O le fa'afitauli autu o le td-agent. E le o manino po o fea na alu i ai a matou ogalaau. Po'o tu'uina atu ea i latou? Pe o latou o? O fea o iai i latou? O le mea lea, o le manatu muamua na filifili e sui le td-agent. Ua ou otootoina faapuupuu filifiliga mo mea e sui ai iinei.

Fluentd. Muamua, sa ou feiloai ia te ia i se galuega talu ai, ma sa ia pa'u foi i lea taimi ma lea taimi. Lona lua, o le mea lava lea e tasi, naʻo le talaaga.

Filebeat. Na faapefea ona faigofie mo i matou? Aua o lo'o i totonu o le Go, ma e tele a matou tomai i le Go. O lea la, afai e tupu se mea, e mafai ona tatou faaopoopo i ai mo i tatou lava. O le mea lena na matou le aveina ai. Ina ia leai se faʻaosoosoga e amata toe tusi mo oe lava ia.

O le fofo manino mo le pule o le polokalama o ituaiga uma o syslogs i lenei aofaiga (syslog-ng/rsyslog/nxlog).

Pe tusi sau oe lava mea, ae na matou lafoaia lenei mea, faapea foi ma le filebeat. Afai e te tusia se mea, e sili atu le tusi o se mea aoga mo pisinisi. Ina ia tuʻuina atu ogalaau, e sili atu le ave o se mea ua saunia.

O le mea lea, o le filifiliga na oʻo mai i lalo i le filifiliga i le va o syslog-ng ma rsyslog. Na ou faʻalagolago i le rsyslog ona ua uma a matou vasega mo le rsyslog i Puppet, ma ou te leʻi mauaina se eseesega manino i lo latou va. O le a le syslog, o le a le syslog. Ioe, o nisi e sili atu le leaga o faʻamaumauga, o nisi e sili atu. O le tasi e mafai ona faia i lenei auala, ae o le isi e mafai ona faia i se auala ese.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Ma sina mea itiiti e uiga i rsyslog. Muamua lava, e manaia ona e tele naua modules. E iai le RainerScript e mafai ona faitau e tagata (se gagana fa'aonaponei fa'aonaponei). O se ponesi mataʻutia e mafai ona tatou faʻataʻitaʻia le amio a td-agent faʻaaogaina meafaigaluega masani, ma e leai se mea na suia mo talosaga. O lona uiga, matou te suia le td-agent i le rsyslog, ma tuʻu mea uma naʻo mo le taimi nei. Ma e vave ona matou maua galuega tilivaina. Le isi, mmnormalize o se mea mataʻina i rsyslog. E faʻatagaina oe e faʻasalalau ogalaau, ae le faʻaaogaina Grok ma regexp. E faia ai se la'au fa'aupuga. E fa'avasegaina ogalaau i le auala lava e tasi e pei ona fa'avasega e le tagata fa'apipi'i puna'oa. Ole mea lea e mafai ai ona e galue vave, faʻaalu sina PPU, ma, i se tulaga lautele, o se mea manaia tele. O loʻo i ai le tele o isi ponesi. O le a ou le mafaufau i ai.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

rsyslog e tele isi fa'aletonu. E tutusa lava ma ponesi. O faʻafitauli autu e tatau ona e iloa le kukaina, ma e tatau ona e filifilia le faʻasologa.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Na matou filifili o le a matou tusia ni ogalaau i se socket unix. Ae le o totonu / dev / log, aua o iina o loʻo i ai a matou faʻalavelave o ogalaau faʻapipiʻi, journald o loʻo i totonu o lenei paipa. Se'i o tatou tusi atu i se socket masani. O le a matou faʻapipiʻiina i se isi tulafono. Aua tatou te faalavelave i se mea. O mea uma o le a manino ma malamalama. O le mea tonu lena na matou faia. O le lisi o lo'o i ai sockets ua fa'avasegaina ma tu'uina atu i koneteina uma. O pusa e mafai ona va'aia le socket latou te mana'omia, tatala ma tusi i ai.

Aisea e le fai ai se faila? Aua e faitau e tagata uma tala e uiga ia Badushechka, lea na taumafai e tuʻuina atu se faila i le docker, ma na maua ai ina ua uma ona toe amataina le rsyslog, ua suia le faila faila, ma ua leiloa le faila. O lo'o tatala pea se isi mea, ae le o le fa'amau o lo'o latou tusitusi ai. Na matou filifili o le a matou foia lenei faafitauli, ma i le taimi lava e tasi, o le a matou foia le faafitauli o le poloka.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

E faia e Rsyslog gaioiga o loʻo faʻaalia i luga o le faʻataʻitaʻiga ma auina atu ogalaau i le relay poʻo Kafka. Kafka e mulimuli i le ala tuai. Relay - Na ou taumafai e faʻaaoga le rsyslog mama e momoli ai ogalaau. A aunoa ma le Message Queue, fa'aaoga meafaigaluega rsyslog masani. O le mea moni, e aoga.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Ae o loʻo i ai faʻamatalaga i le auala e tuleia ai i latou i lenei vaega (Logstash / Graylog / ES). O lenei vaega (rsyslog-rsyslog) o loʻo faʻaaogaina i le va o nofoaga autu o faʻamatalaga. O se fesoʻotaʻiga tcp faʻapipiʻi, lea e mafai ai ona matou faʻasaoina le bandwidth ma, e tusa ai, faʻateleina le avanoa e maua ai ni ogalaau mai se isi nofoaga autu o faʻamatalaga pe a poloka le alalaupapa. Aua e iai a tatou Initonesia, lea e leaga mea uma. O i inei e taoto ai le faafitauli faifaipea.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Na matou mafaufau pe faʻapefea ona matou mataʻituina pe faʻapefea ona oʻo atu i le iʻuga o ogalaau na matou faamaumauina mai le talosaga? Na matou filifili e fai fua. O le rsyslog e iai lana lava fa'amaumauga o le aoina o fuainumera, o lo'o iai nisi ituaiga fa'atau. Mo se faʻataʻitaʻiga, e mafai ona faʻaali atu ia te oe le tele o le laina, poʻo le tele o feʻau na oʻo mai i sea ma sea gaioiga. Ua mafai ona e ave se mea mai ia i latou. E le gata i lea, o loʻo i ai faʻamaumauga masani e mafai ona faʻatulagaina, ma o le a faʻaalia ai oe, mo se faʻataʻitaʻiga, le numera o feʻau na faʻamauina e nisi API. Na sosoo ai, na ou tusia le rsyslog_exporter i le Python, ma matou lafoina uma i Prometheus ma fausia kalafi. Matou te manaʻo moni lava Graylog metrics, ae matou te leʻi maua se taimi e faʻatulaga ai.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O a ni faafitauli? Na aliaʻe faʻafitauli ina ua matou iloa (FAʻAVAE!) o matou Live API o loʻo tusia le 50k feʻau i le sekone. Ua na'o le Live API e aunoa ma le fa'atulagaina. Ma e fa'aali mai e Graylog na'o le 12 afe fe'au i le sekone. Ma sa tulai mai se fesili talafeagai: o fea oi ai toega? Mai le mea na matou faʻamaonia ai e le mafai e Graylog ona taulimaina. Na matou tilotilo, ma, ioe, e le mafai e Graylog ma Elasticsearch ona taulimaina lenei tafe.

Na sosoo ai, o isi mea na matou mauaina i le ala.

Tusi i le socket ua poloka. Na faapefea ona tupu? A o ou faʻaogaina le rsyslog mo le tuʻuina atu, i se taimi na malepe ai le auala i le va o faʻamaumauga. Na tu le tiliva i se tasi nofoaga, na tu le tiliva i se isi nofoaga. O nei mea uma ua oʻo i le masini ma API e tusi i le rsyslog socket. Sa i ai se laina iina. Ona fa'atumu lea o le laina mo le tusitusi i le unix socket, lea e le mafai ona fa'aaogaina e 128 pepa. Ma o le isi tusi () i le talosaga ua poloka. Ina ua matou vaʻavaʻai i le faletusi matou te faʻaogaina i Go applications, na tusia ai iina o le tusitusi i le socket e tupu i le le poloka poloka. Sa matou mautinoa e leai se mea na poloka. Aua tatou te faitau tala e uiga ia Badushechkao ai na tusia e uiga i ai. Ae o loo i ai se taimi. Sa i ai foi se matasele le i'u faataamilo i lenei valaau, lea sa i ai se taumafaiga faifaipea e tulei se savali i totonu o le socket. Matou te lei iloaina o ia. Sa tatau ona ou toe tusia le faletusi. Talu mai lena taimi ua suia i le tele o taimi, ae o lea ua tatou aveesea le poloka i totonu o subsystems uma. O le mea lea, e mafai ona e taofia rsyslog, ma e leai se mea e paʻu.

E tatau ona mataʻituina le tele o laina, lea e fesoasoani e aloese mai le laa i luga o lenei rake. Muamua, e mafai ona tatou mataʻituina pe a amata ona leiloa savali. Lona lua, e mafai ona matou mataʻituina o loʻo i ai a matou faʻafitauli i le tuʻuina atu.

Ma o le isi taimi le fiafia - faʻateleina i le 10 taimi i totonu o le microservice architecture e matua faigofie lava. E le tele ni a matou talosaga o loʻo oʻo mai, ae ona o le kalafi o loʻo malaga atili ai nei feʻau, ona o faʻamaumauga avanoa, matou te faʻateleina le uta ogalaau pe a ma le sefulu taimi. Ae paga lea, e leʻi maua se taimi e faʻatatau ai numera saʻo, ae o microservices o mea ia. E tatau ona manatua lenei mea. E aliali mai i le taimi nei o le vaega o le aoina o ogalaau e sili ona utaina i Lazada.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

E faʻafefea ona foia faʻafitauli elasticsearch? Afai e te manaʻomia le vave maua o ogalaau i se nofoaga e tasi, ina ia aua neʻi tamoe solo i masini uma ma aoina iina, faʻaoga faila faila. E mautinoa e aoga. E mafai ona faia mai soʻo se server. Na'o lou mana'omia e tu'u ai tisiki iina ma fa'apipi'i syslog. A maeʻa lenei, e faʻamaonia e te maua uma ogalaau i se nofoaga e tasi. Ona mafai lea ona e fetuutuunai lemu elasticsearch, graylog, ma se isi mea. Ae o le a uma ona e maua uma ogalaau, ma, e le gata i lea, e mafai ona e teuina i latou pe a lava le tele o faʻasologa o disk.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

I le taimi o laʻu lipoti, na amata ona foliga faʻapea le polokalame. Sa toetoe lava a le toe tusitusi i le faila. O lenei, e foliga mai, o le a tatou tape le vaega o totoe. I luga o masini faʻapitonuʻu o loʻo faʻaogaina le API, o le a matou taofi le tusitusi i faila. Muamua, o loʻo i ai faila faila, lea e aoga tele. Lona lua, o nei masini o loʻo faʻaumatia pea le avanoa; e manaʻomia le mataʻituina pea.

Le vaega lea ma Logstash ma Graylog, e matua alu ese lava. O lea la, e tatau ona tatou aveesea. E tatau ona e filifilia se mea se tasi.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Na matou filifili e lafo i fafo Logstash ma Kibana. Aua e iai le matou matagaluega o puipuiga. O le a le sootaga? O le feso'ota'iga o le Kibana e aunoa ma le X-Pack ma le leai o se Talita e le fa'atagaina oe e fa'a'ese'ese ai aia tatau i ogalaau. O le mea lena na matou ave ai Graylog. E i ai uma. Ou te le fiafia i ai, ae e aoga. Na matou fa'atauina ni meafaigaluega fou, fa'apipi'i le Graylog fou iina ma fa'aliliu uma ogalaau fa'atasi ai ma fa'atonuga sa'o i se isi Graylog. Na matou foia le faʻafitauli i ituaiga eseese o fanua tutusa faʻalapotopotoga.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O le a tonu le mea o loʻo aofia i le Graylog fou. Na'o matou tusia mea uma i le docker. Na matou ave le tele o 'auʻaunaga, taʻavale tolu Kafka faʻataʻitaʻiga, 7 Graylog servers version 2.3 (aua na matou mananaʻo i le Elasticsearch version 5). O nei mea uma na pikiina i le taimi o osofaʻiga mai le HDD. Sa matou vaaia se fua faatatau o le faasino igoa e oo atu i le 100 afe savali i le sekone. Na matou vaʻaia le fuainumera e 140 terabytes o faʻamaumauga i le vaiaso.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

Ma toe foi le salu! E lua a matou fa'atauga o lo'o o'o mai. Na matou siitia i tua atu o le 6 miliona feʻau. E leai se taimi o Graylog e lamu ai. I se isi itu e tatau ona tatou toe ola.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O le auala lea na matou ola ai. Na matou fa'aopoopoina nisi 'au'aunaga ma SSD. I le taimi nei tatou te ola ai i lenei auala. O lea la ua matou lamuina le 160k fe'au i le sekone. Matou te leʻi oʻo i le tapulaʻa, o lea e le o manino pe o le a le tele e mafai ona tatou maua mai ai.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

O a tatou fuafuaga ia mo le lumanai. O nei mea, o le mea sili ona taua atonu o le maualuga o avanoa. E le'i maua lava. E tele taavale o loʻo faʻatulagaina i le auala lava e tasi, ae o le taimi nei o loʻo alu mea uma i le tasi taavale. E mana'omia le taimi e fa'atulaga ai le failover i lo latou va.

Ao mai metric mai Graylog.

Fai se faʻatapulaʻaina o le tau ina ia maua ai se tasi API valea e le faʻaumatia ai a matou bandwidth ma isi mea uma.

Ma le mea mulimuli, sainia se ituaiga SLA ma le au atiaʻe ina ia mafai ai ona matou tautua tele. Afai e te tusia nisi mea, ou te faamalie atu.

Ma tusi faʻamaumauga.

Yuri Bushmelev "Map of rake i luga o le fanua o le aoina ma le tuʻuina atu o ogalaau" - faʻamatalaga o le lipoti

I se faapuupuuga, o taunuuga o mea uma na matou oo i ai. Muamua, tulaga faatonuina. Lona lua, o le syslog o le keke. Lona tolu, rsyslog galue tonu e pei ona tusia i luga o le fa'ase'e. Ma sei o tatou agai atu i fesili.

Au fesili.

Lau fesili: Aisea na e filifili ai e aua le aveina ... (filebeat?)

Tali: Matou te manaʻomia le tusi i se faila. Ou te matua le manao lava. Pe a tusia e lau API le faitau afe o feʻau i le sekone, e tusa lava pe e te fesuiaʻi tasi i le itula, e le o se filifiliga. E mafai ona e tusi i le paipa. Na fesili mai le au atiaʻe ia te aʻu: "O le a le mea e tupu pe a paʻu le faagasologa o loʻo matou tusia?" Sa na ona ou le mauaina le mea e tali atu ai ia i latou, ma fai atu: “Ia, ua lelei, aua ne’i o tatou faia lena mea.”

Lau fesili: Aisea e te le tusia ai na o ogalaau i le HDFS?

Tali: O le isi laasaga lea. Na matou mafaufau i ai i le amataga, ae talu ai i le taimi nei e leai ni punaoa e faia ai lenei mea, o loʻo tautau i la matou fofo umi.

Lau fesili: O le a sili atu ona fetaui le faatulagaga o koluma.

Tali: Ou te malamalama. Matou te mo i ai ma lima uma e lua.

Lau fesili: O lo'o e tusi atu i le rsyslog. O iina e mafai ona e faʻaogaina uma TCP ma UDP. Ae afai o le UDP, e faʻafefea ona e faʻamaonia le tuʻuina atu?

Tali: E lua manatu. Muamua, ou te taʻu atu i tagata uma i le taimi lava lena matou te le faʻamaonia le tuʻuina atu o ogalaau. Aua a o mai le au atinaʻe ma fai mai: "Seʻi o tatou amata tusia faʻamatalaga tau tupe iina, ma o le ae tuʻuina i se mea mo i matou neʻi tupu se mea," matou te tali atu ia i latou, "Manaia! Tatou amata poloka i le tusitusi i le socket, ma faia lenei mea i fefaʻatauaiga, ina ia mautinoa e te tuʻuina i luga o le socket mo i matou ma mautinoa matou te mauaina mai le isi itu. Ma i le taimi nei, e le toe manaʻomia e tagata uma. Afai e le talafeagai, o a la fesili e tatau ona tatou fesili ai? Afai e te le manaʻo e faʻamaonia le tusitusi i se socket, aisea la e manaʻomia ai ona matou faʻamaonia le tuʻuina atu? O loo matou faia le mea sili matou te mafaia. Matou te taumafai moni lava e momoli atu i le tele e mafai ai ma i le auala sili e mafai ai, ae matou te le tuʻuina atu se faʻamaoniga 100%. O le mea lea, e leai se manaʻoga e tusi ai faʻamatalaga tau tupe iina. O loʻo i ai faʻamaumauga ma fefaʻatauaiga mo lenei mea.

Lau fesili: Pe a faʻatupuina e le API se feʻau i totonu o le ogalaau ma faʻafeiloaʻi le pule i microservices, pe na e feagai ma le faʻafitauli o feʻau mai microservices eseese e taunuu i le faʻatonuga sese? E mafua ai le le mautonu.

Tali: E masani ona o mai i ni fa'atonuga eseese. E tatau ona e sauni mo lenei mea. Ona o soʻo se faʻasalalauga fesoʻotaʻiga e le faʻamaonia le faʻatonuga, pe e tatau ona e faʻaaluina punaoa faʻapitoa i lenei mea. Afai matou te ave faila faila, ona faʻasaoina lea e API taʻitasi ogalaau i lana lava faila. Pe sili atu, o loʻo i ai le rsyslog e faʻavasegaina i latou i faʻamaumauga. O API ta'itasi e iai a latou lava ogalaau, e mafai ona e alu i ai ma va'ai, ona mafai lea ona e fa'atusaina i latou i le fa'aogaina o le timetamp i lenei ogalaau. Afai latou te o e su'e i le Graylog, ona fa'avasega lea iina e ala i faailoga taimi. O le a lelei mea uma iina.

Lau fesili: Fa'ailoga taimi e ono fesuisuia'i ile miliseconds.

Tali: Timestamp e gaosia e le API lava ia. O le mea moni, o le manatu atoa lea. E iai le matou NTP. O le API e fa'atupuina se fa'ailoga taimi i le fe'au lava ia. rsyslog e le fa'aopoopoina.

Lau fesili: O le fegalegaleaiga i le va o nofoaga autu o faʻamatalaga e leʻo manino. I totonu o le nofoaga autu o faʻamatalaga, o loʻo manino le auala na aoina ma faʻatautaia ai ogalaau. E fa'apefea ona fai le fegalegaleai i le va o nofoaga autu o fa'amaumauga? Po'o fa'amautu fa'amaumauga ta'itasi e ola i lona lava olaga?

Tali: Toeitiiti lava. I totonu o lo tatou atunuu, o atunuu taʻitasi o loʻo i totonu o le nofoaga autu e tasi. I le taimi nei, e leai se matou faʻasalalauga ina ia tasi le atunuʻu o loʻo tu i nofoaga faʻamaumauga eseese. O le mea lea, e le manaʻomia le tuʻufaʻatasia. E tofu le nofoaga tutotonu ma se Log Relay i totonu. Ole Rsyslog server lea. O le mea moni e lua masini pulega. E tutusa o la uiga. Ae mo le taimi nei, o feoaiga na o le ui atu i se tasi o latou. E fa'apotopoto uma ogalaau. E i ai lana tisiki tisiki mo le tulaga. Na te siiina mai ogalaau ma auina atu i le nofoaga autu o faamaumauga (Singapore), lea e auina atu ai i Graylog. Ma o nofoaga autu taʻitasi e iai lana lava faila faila. A fa'apea ua motusia la tatou feso'ota'iga, o lo'o iai uma ogalaau iina. O le a latou nonofo ai pea. O le a teuina iina.

Lau fesili: I tulaga e le masani ai, e te mauaina mai ni ogalaau mai iina?

Tali: E mafai ona e alu iina (i le teuina o faila) ma vaai.

Lau fesili: E fa'afefea ona e mata'ituina e le o leiloa ni ogalaau?

Tali: O le mea moni o loʻo matou leiloloa, ma o loʻo matou mataʻituina. Na fa'alauiloa le mata'ituina i le masina talu ai. O le faletusi o loʻo faʻaogaina e Go API e iai fua. E mafai ona ia faitauina pe faafia ona le mafai ona ia tusi i se socket. O lo'o i ai nei se fa'amanino atamai iina. O loʻo i ai se paʻu iina. E taumafai e tusi se fe'au mai ai i le socket. Afai e taumasuasua le pa, e amata ona pa'u. Ma sa ia faitauina pe toafia i latou na ia faapauina. Afai e amata ona tafe mai mita iina, o le a tatou iloa. Ua latou o mai foi i le prometheus, ma e mafai ona e vaʻai i kalafi i Grafana. E mafai ona e seti fa'aaliga. Ae e le o manino po o ai e auina atu i ai.

Lau fesili: I le elasticsearch e te teuina ogalaau ma le toe faʻaaogaina. E fia au kopi o iai?

Tali: Tasi laina.

Lau fesili: Pe na'o le tasi lea laina?

Tali: O le matai lea ma le fa'atusa. O fa'amaumauga o lo'o teuina i ni kopi se lua.

Lau fesili: Na e fetuutuuna'i le tele o le rsyslog buffer?

Tali: Matou te tusia fa'amaumauga i se socket unix masani. O lenei mea e vave fa'atupuina ai se tapulaa o le 128 kilobytes ia i matou. E le mafai ona matou tusi atili i ai. Ua matou tusia lenei mea i le tulaga faatonuina. O i latou e fia alu i totonu o le teuina e tusi 128 kilobytes. O faletusi, e le gata i lea, ua tipi ese, ma ua tuu se fuʻa e tipi ese ai le feʻau. O la tatou tulaga mo le feʻau lava ia e iai se fanua faʻapitoa e faʻaalia ai pe na tipi ese i le taimi o le pueina pe leai. O lea ua tatou maua le avanoa e siaki ai foi lenei taimi.

Fesili: E te tusia JSON malepe?

Tali: O le JSON malepe o le a lafoa'i a le o le taimi e fa'asalalau ai ona e telē tele le afifi. Po'o le Graylog o le a lafoa'i ona e le mafai ona fa'asalaina JSON. Ae o loʻo i ai nuances e manaʻomia ona faʻaleleia, ma e tele lava ina nonoa i le rsyslog. Ua uma ona ou faatumuina nisi o mataupu iina, o loʻo manaʻomia pea ona galue i ai.

Fesili: Aisea Kafka? Ua e taumafai i le RabbitMQ? E toilalo Graylog i lalo o ia avega?

Tali: E le o aoga mo i matou ma Graylog. Ma o Graylog o loʻo faʻaalia mo i tatou. E matua fa'afitauli lava. O ia o se mea uiga ese. Ma, o le mea moni, e le manaʻomia. Ou te manaʻo e tusi saʻo mai le rsyslog i elasticsearch ona tilotilo lea i Kibana. Ae e tatau ona tatou foia le mataupu ma leoleo. O se filifiliga talafeagai lea mo la tatou atinaʻe, pe a tatou lafo ese Graylog ma faʻaoga Kibana. E leai se aoga i le faʻaaogaina o Logstash. Aua e mafai ona ou faia le mea lava e tasi i le rsyslog. Ma o loʻo i ai se module mo le tusitusi i le elasticsearch. O loʻo matou taumafai e ola faʻatasi ma Graylog. Sa oo lava ina matou si'iina i luga teisi. Ae o loo i ai pea le avanoa e faaleleia atili ai.

E uiga ia Kafka. O le mea lea na tupu i le talafaasolopito. Ina ua ou taunuu, ua uma ona i ai iina, ma ua uma ona tusi i ai ni ogalaau. Na ona si'i a'e la matou fuifui ma ave i totonu ogalaau. O matou o lana pulega, matou te iloa ona lagona. Ae mo RabbitMQ ... e le aoga mo i matou i le RabbitMQ. Ma o RabbitMQ o loʻo faʻaalia mo i tatou. Ua matou maua i le gaosiga, ma sa i ai faafitauli i ai. I le taimi nei, aʻo leʻi faʻatau atu, latou te faʻamalosi ia te ia, ma o le a amata ona galue masani. Ae muamua atu ou te leʻi sauni e tuʻuina atu i le gaosiga. E tasi le isi manatu. E mafai e Graylog ona faitau le AMQP 0.9, ma e mafai e le rsyslog ona tusia le AMQP 1.0. Ma e leai se fofo se tasi i le ogatotonu e mafai ona faia uma. O le tasi po o le isi. O le mea lea, i le taimi nei na o Kafka. Ae e iai foi ona lava nuances. Ona o le omkafka o le lomiga o le rsyslog matou te faʻaaogaina e mafai ona leiloa atoa le feʻau faʻapipiʻi na sau mai le rsyslog. Mo le taimi nei ua matou onosaia.

Fesili: O e fa'aaogaina Kafka ona ua uma ona e mauaina? Le toe fa'aaogaina mo so'o se fa'amoemoe?

Tali: Kafka, lea sa i ai, o loʻo faʻaaogaina e le vaega Faʻasaienisi Faʻamatalaga. O se galuega e matua'i ese lava, e uiga i ai, o le mea e leaga ai, e le mafai ona ou fai atu se mea. Ou te leiloa. Sa fa'atautaia e le vaega Fa'asaienisi Fa'amatalaga. Ina ua faia ia ogalaau, na matou filifili e faʻaaogaina ina ia aua neʻi faʻapipiʻi a matou lava. O lea ua matou faʻafouina Graylog, ma ua matou leiloa le fesoʻotaʻiga ona o loʻo i ai se kopi tuai o Kafka. Sa tatau ona amata la matou lava mea. I le taimi lava e tasi, na matou faʻaumatia nei autu e fa mo API taʻitasi. Na matou faia se tasi autu lautele mo tagata ola uma, tasi le lautele lautele autu mo faʻataʻitaʻiga uma ma naʻo le tuʻuina o mea uma iina. O Graylog e va'aia nei mea uma i le tutusa.

Fesili: Aisea tatou te manaomia ai lenei shamanism ma sockets? Na e taumafai e fa'aoga le syslog log driver mo koneteina?

Tali: I le taimi na matou fesiligia ai lenei fesili, o le ma mafutaga ma le au fai fale sa le mautonu. O le docker 1.0 poʻo le 0.9. Docker lava ia e ese. Lona lua, afai e te tuleia foi ogalaau i totonu ... E i ai soʻu masalosaloga e le faʻamaonia e pasi uma ia ogalaau ia te ia lava, e ala i le docker daemon. Afai e valea le tasi API, ona pipii lea o isi API i le mea moni e le mafai ona latou lafoina stdout ma stderr. Ou te le iloa po o fea e oo i ai lenei mea. E i ai loʻu masalosalo i le tulaga o le lagona e leai se manaʻoga e faʻaaoga le Docker syslog avetaʻavale i lenei nofoaga. O la matou matagaluega su'esu'e fa'atino e iai lana lava fuifui Graylog fa'atasi ai ma ogalaau. Latou te faʻaaogaina taʻavale ogalaau Docker ma e foliga mai o loʻo lelei mea uma iina. Ae latou te vave tusi GELF ia Graylog. I le taimi na matou amataina ai nei mea uma, naʻo matou manaʻomia e galue ai. Atonu mulimuli ane, pe a sau se tasi ma faapea mai ua selau tausaga o galue lelei, ona tatou taumafai lea.

Fesili: E te faia le tuʻuina atu i le va o nofoaga autu o faʻamatalaga e faʻaaoga ai le rsyslog. Aisea e le o Kafka?

Tali: Matou te faia mea uma e lua. Mo mafuaaga e lua. Afai ua mate atoa le ala, ona le totolo uma ai lea o a tatou ogalaau, e oo lava ile faiga oomi. Ma o Kafka e faʻatagaina oe e naʻo le leiloa i latou i le faagasologa. O le auala lea tatou te aveese ai nei ogalaau ua pipii. O loʻo matou faʻaogaina saʻo Kafka i lenei tulaga. Afai e iai sa matou auala lelei ma manaʻo e faʻasaʻoloto, ona matou faʻaogaina lea o latou rsyslog. Ae o le mea moni, e mafai ona e faʻatulagaina ina ia faʻaumatia e ia lava le mea e le fetaui. I le taimi nei, matou te faʻaaogaina saʻo le rsyslog i se mea, ma Kafka i se mea.

puna: www.habr.com

Faaopoopo i ai se faamatalaga