U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Amalogi ayingxenye ebalulekile yesistimu, ekuvumela ukuthi uqonde ukuthi iyasebenza (noma ayisebenzi) njengoba bekulindelekile. Ngaphansi kwezimo ze-microservice architecture, ukusebenza ngamalogi kuba yisiyalo esihlukile se-Special Olympiad. Kunezinkinga eziningi okufanele zibhekwe:

  • indlela yokubhala izingodo kusuka kuhlelo lokusebenza;
  • lapho kubhalwa khona izingodo;
  • indlela yokuletha izingodo ukuze zigcinwe futhi zicutshungulwe;
  • indlela yokucubungula nokugcina izingodo.

Ukusetshenziswa kobuchwepheshe be-containation obudumile njengamanje kwengeza isihlabathi phezu kwerela emkhakheni wezinketho zokuxazulula izinkinga.

Cishe lokhu kungumbhalo wombiko ka-Yuri Bushmelev "Imephu yereki emkhakheni wokuqoqa nokudiliva izingodo"

Ubani onendaba, ngicela ngaphansi kwekati.

Igama lami nginguYuri Bushmelev. Ngisebenzela uLazada. Namuhla ngizokhuluma ngendlela esazenza ngayo izingodo zethu, ukuthi saziqoqa kanjani, nokuthi sibhalani lapho.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Sivelaphi? Singobani? I-Lazada ingumthengisi we-inthanethi ongu-#1 emazweni ayisithupha eNingizimu-mpumalanga ye-Asia. Wonke lawa mazwe asatshalaliswa phakathi kwezikhungo zedatha. Manje sekunezikhungo zedatha ezi-4 sezizonke. Kungani lokhu kubalulekile? Ngoba ezinye izinqumo zazibangelwa ukuthi kukhona ukuxhumana okubuthakathaka kakhulu phakathi kwezikhungo. Sine-microservice architecture. Ngimangele ukuthola ukuthi sesivele sinama-microservices angama-80. Lapho ngiqala umsebenzi ngezingodo, kwakukhona kuphela angu-20. Futhi, kukhona ingxenye enkulu yefa le-PHP, okufanele futhi ngiphile nayo futhi ngiyibekezelele. Konke lokhu kusikhiqizela okwamanje imilayezo engaphezu kwezigidi eziyisi-6 ngomzuzu wohlelo lonke. Okunye ngizokukhombisa ukuthi sizama kanjani ukuphila nalokhu, nokuthi kungani lokhu kunjalo.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Kufanele uphile nale miyalezo eyizigidi eziyisi-6 ngandlela thize. Yini okufanele siyenze ngabo? 6 million imilayezo edingekayo:

  • thumela ngohlelo lokusebenza
  • vuma ukulethwa
  • hambisa ukuze kuhlaziywe futhi kugcinwe.
  • hlaziya
  • gcina ngandlela thize.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Lapho kunemiyalezo eyizigidi ezintathu, ngangicishe ngifane. Ngoba siqale ngamasenti. Kuyacaca ukuthi izingodo zohlelo lokusebenza zibhalwe lapho. Isibonelo, ayikwazanga ukuxhuma kusizindalwazi, ingaxhumeka kusizindalwazi, kodwa ayikwazanga ukufunda okuthile. Kodwa ngaphandle kwalokhu, i-microservices yethu ngayinye ibhala nelogi yokufinyelela. Isicelo ngasinye esifika ku-microservice siwela kulogi. Kungani senza lokhu? Onjiniyela bafuna ukukwazi ukulandelela. Ilogi ngalinye lokufinyelela liqukethe inkambu ye-traceid, ngokuya ngokuthi isixhumi esibonakalayo esikhethekile bese sikhulula lonke iketango futhi sibonisa kahle umkhondo. Ukulandelela kubonisa ukuthi isicelo sihambe kanjani, futhi lokhu kusiza onjiniyela bethu ukuthi babhekane nanoma yimuphi udoti ongaziwa ngokushesha.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Ungaphila kanjani nayo? Manje ngizochaza kafushane insimu yezinketho - ukuthi le nkinga ixazululwa kanjani ngokujwayelekile. Indlela yokuxazulula inkinga yokuqoqa, ukudlulisa nokugcina izingodo.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Ungabhala kanjani kusuka kuhlelo lokusebenza? Kuyacaca ukuthi kunezindlela ezahlukene. Ikakhulukazi, kukhona umkhuba ongcono kakhulu, njengoba amaqabane asemfashini esitshela. Zimbili izinhlobo zesikole esidala, njengoba kusho okhokho. Kukhona ezinye izindlela.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Ngokuqoqwa kwamalogi, isimo sicishe sifane. Azikho izinketho eziningi zokuxazulula le ngxenye ethile. Ziningi zazo, kodwa azikabi maningi.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Kodwa ngokulethwa nokuhlaziywa okulandelayo, inani lokuhlukahluka liqala ukuqhuma. Ngeke ngichaze inketho ngayinye manje. Ngicabanga ukuthi izinketho eziyinhloko zaziwa yiwo wonke umuntu owayenesithakazelo esihlokweni.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Ngizokukhombisa ukuthi sikwenze kanjani eLazada nokuthi konke kwaqala kanjani.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Ngonyaka odlule, ngafika eLazada futhi ngathunyelwa kuphrojekthi yelogi. Kwaba kanje lapho. Ilogi elisuka kuhlelo lokusebenza libhalelwe ku-stdout ne-stderr. Konke kwakwenziwa ngendlela esemfashinini. Kodwa-ke abathuthukisi bayiphonsa ngaphandle kokusakaza okujwayelekile, bese kuthi ochwepheshe bengqalasizinda bayithole ngandlela thile. Phakathi kochwepheshe bengqalasizinda nabathuthukisi, kukhona nabakhululi abathi: "eh ... kahle, ake siwabophe ngefayela elinegobolondo, futhi yilokho." Futhi njengoba konke lokhu kusesitsheni, basisonga ngqo esitsheni uqobo, babala uhla lwemibhalo ngaphakathi balubeka lapho. Ngicabanga ukuthi kusobala kuwo wonke umuntu okwenzekile.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Ake sibheke phambili kancane. Sizihambise kanjani lezi zingodo. Othile ukhethe i-td-ejenti, ekwazi kahle kodwa engakwazi kahle. Angikabuqondi ubudlelwano balawa maphrojekthi womabili, kodwa abonakala emayelana nento eyodwa. Futhi lokhu okushelelayo, okubhalwe ngo-Ruby, kufunde amafayela welogi, kwawahlukanisela ku-JSON kusetshenziswa izinkulumo ezivamile. Ngemva kwalokho bathunyelwa eKafka. Ngaphezu kwalokho, e-Kafka, sibe nezihloko ezi-4 ezihlukene ze-API ngayinye. Kungani 4? Ngoba kukhona okubukhoma, kukhona isiteji, futhi ngoba kukhona i-stdout ne-stderr. Onjiniyela bayawakhiqiza, futhi abasebenzi bengqalasizinda kufanele bawadale e-Kafka. Ngaphezu kwalokho, i-Kafka yayilawulwa omunye umnyango. Ngakho-ke, kwakudingeka ukudala ithikithi ukuze bakhe izihloko ezi-4 lapho nge-api ngayinye. Wonke umuntu wakhohlwa ngakho. Ngokuvamile, kwakuwudoti nokumosha.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Senzeni ngokulandelayo ngayo? Siyithumele e-kafka. Ukusuka eKafka, ingxenye yezingodo indize yaya e-Logstash. Enye ingxenye yezingodo yabiwe. Ezinye zandizela kwenye iGreylog, ezinye zaya kwenye iGreylog. Ngenxa yalokho, konke lokhu kwandizela kuqoqo elilodwa le-Elasticsearch. Okusho ukuthi, yonke le nxushunxushu yawela ekugcineni lapho. Awudingi ukwenza lokho!

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Yile ndlela ebukeka ngayo uma ibhekwa phezulu. Awudingi ukwenza lokho! Lapha, izindawo zenkinga ziphawulwa ngokushesha ngezinombolo. Empeleni ziningi zazo, kodwa eziyisi-6 ziyinkinga ngempela, okumele kwenziwe okuthile ngazo. Ngizokhuluma ngabo ngokwehlukana manje.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Lapha (1,2,3) sibhala amafayela futhi, ngokufanelekile, kukhona amaraki amathathu lapha ngesikhathi esisodwa.

Okokuqala (1) ukuthi sidinga ukuwabhala ndawana thize. Akusoloko kufiseleka ukunikeza i-API ikhono lokubhala ngokuqondile efayeleni. Kuyafiseleka ukuthi i-API ibekwe yodwa esitsheni, futhi okungcono kakhulu, ukuthi ifundeke kuphela. Ngingumlawuli wesistimu, ngakho nginombono ohlukile kancane walezi zinto.

Iphuzu lesibili (2,3) ukuthi sinezicelo eziningi eziza ku-API. I-API ibhala idatha eningi efayeleni. Amafayela ayakhula. Kudingeka siwajike. Ngoba uma kungenjalo ngeke ukwazi ukulondoloza noma yimaphi amadiski lapho. Ukuzizungezisa kubi ngoba ziqondiswa kabusha ngegobolondo kuhla lwemibhalo. Ayikho indlela esingayizungeza ngayo. Awukwazi ukutshela uhlelo lokusebenza ukuthi liphinde livule izibambo. Ngoba abathuthukisi bazokubuka njengesiwula: “Iziphi izincazelo? Ngokuvamile sibhalela i-stdout. Izinhlaka zenza i-copytruncate ibe yi-logrotate, okwenza ikhophi yefayela bese ifaka iziqu kube elokuqala. Ngakho, phakathi kwalezi zinqubo zokukopisha, isikhala sediski ngokuvamile siyaphela.

(4) Sibe namafomethi ahlukene kuma-API ahlukene. Ayehluke kancane, kodwa i-regexp bekufanele ibhalwe ngendlela ehlukile. Njengoba wonke wawuphethwe nguPuppet, kwakunenqwaba yamakilasi enamaphela awo. Ngaphezu kwalokho, i-td-agent isikhathi esiningi ingadla inkumbulo, ibe isiphukuphuku, ikwazi ukwenza sengathi uyasebenza futhi akenzi lutho. Ngaphandle, kwakungenakwenzeka ukuqonda ukuthi wayengenzi lutho. Okungcono kakhulu, uzowa, futhi omunye uzomlanda kamuva. Ngokunembayo, isexwayiso sizondiza, futhi othile uzohamba asiphakamise ngezandla zakhe.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

(6) Futhi udoti kanye nemfucuza kakhulu - kwaba elasticsearch. Ngoba kwakuyinguqulo endala. Ngoba sasingenabo amakhosi azinikele ngaleso sikhathi. Besinezingodo ezihlukene izinkambu zazo ezazikwazi ukweqa. Amalogi ahlukene wezinhlelo zokusebenza ezahlukene angabhalwa ngamagama enkambu efanayo, kodwa ngesikhathi esifanayo kungase kube nedatha ehlukile ngaphakathi. Okusho ukuthi, ilogi eyodwa iza ne-Integer ensimini, isibonelo, izinga. Enye i-log iza ne-String emkhakheni wezinga. Uma kungekho mephu emile, into enhle kangaka iyavela. Uma, ngemva kokujikeleza kwenkomba, umlayezo onochungechunge ufike kuqala ku-elasticsearch, khona-ke siphila ngokujwayelekile. Futhi uma eyokuqala ifika ne-Integer, yonke imilayezo elandelayo efike ne-String imane ilahlwe. Ngoba uhlobo lwenkundla alufani.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Saqala ukubuza le mibuzo. Sanquma ukuthi singababheki abanecala.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Kodwa kukhona okumele kwenziwe! Okusobala ukuthi sidinga ukusungula izindinganiso. Besesivele sinezindinganiso ezithile. Ezinye silethe kamuva. Ngenhlanhla, ifomethi yelogi eyodwa yawo wonke ama-API yayisivele igunyaziwe ngaleso sikhathi. Ibhalwe ngokuqondile kumazinga wokusebenzelana kwesevisi. Ngokunjalo, abafuna ukuthola amalogi kufanele bawabhale ngale ndlela. Uma othile engabhali izingodo ngale fomethi, ngakho-ke asiqinisekisi lutho.

Ngaphezu kwalokho, ngingathanda ukuba nezinga elilodwa lezindlela zokurekhoda, ukudiliva kanye nokuqoqa izingodo. Empeleni, kufanele uzibhale kuphi, futhi uzilethe kanjani. Isimo esikahle yilapho amaphrojekthi esebenzisa umtapo wolwazi ofanayo. Kukhona umtapo wolwazi wokugawula ohlukile we-Go, kukhona umtapo wezincwadi ohlukile we-PHP. Wonke umuntu esinawo, wonke umuntu kufanele awasebenzise. Okwamanje, ngingasho ukuthi siphumelela ngamaphesenti angu-80. Kodwa abanye bayaqhubeka nokudla i-cacti.

Futhi lapho (kuslayidi) “i-SLA yokulethwa kwelogi” ayisaqali ukuvela. Ayikakabi khona, kodwa siyayilungisa. Ngoba kulula kakhulu uma i-infra ithi uma ubhala ngefomethi enjalo naleyo endaweni enjalo futhi ungabi ngaphezu kwemilayezo engu-N ngomzuzwana, khona-ke cishe sizoyiletha lapho. Kususa amakhanda amaningi. Uma kukhona i-SLA, kuhle nje!

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Saqala kanjani ukuxazulula inkinga? Ireki eyinhloko yayine-td-ejenti. Bekungacaci ukuthi izingodo zethu zishonaphi. Ingabe zilethiwe? Bayahamba? Bakuphi vele? Ngakho-ke, kunqunywe ukuthi esikhundleni se-td-ejenti kufakwe into yokuqala. Izinketho zokuthi yini ozoyishintshanisa, ngichaze kafushane lapha.

Ukwazi kahle. Okokuqala, ngahlangana naye emsebenzini wangaphambili, futhi wayewela lapho ngezikhathi ezithile. Okwesibili, lokhu kuyafana, kuphrofayili kuphela.

i-filebeat. Bekukuhle kanjani kithi? Iqiniso lokuthi uku-Go, futhi sinolwazi olukhulu ku-Go. Ngakho-ke, uma kukhona, singasengeza kithi ngandlela thize. Yingakho singayithathanga. Ukuze kungabikho ngisho isilingo sokuqala ukuzibhalela kabusha.

Isixazululo esisobala se-sysadmin yizo zonke izinhlobo zama-syslog kuleli nani (syslog-ng/rsyslog/nxlog).

Noma bhala okuthile okwakho, kodwa sikulahlile, kanye ne-filebeat. Uma ubhala okuthile, kungcono ukubhala okuthile okuwusizo ebhizinisini. Ukuze ulethe izingodo, kungcono ukuthatha okuthile osekwenziwe.

Ngakho-ke, ukukhetha kwehlele ekukhetheni phakathi kwe-syslog-ng ne-rsyslog. Ngancika ku-rsyslog ngoba nje sase sinamakilasi e-rsyslog kuPuppet, futhi angizange ngithole umehluko osobala phakathi kwawo. Iyini i-syslog, iyini i-syslog. Yebo, amanye amadokhumenti mabi kakhulu, amanye angcono. Uyazi ngale ndlela, futhi ukwenza ngendlela ehlukile.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Futhi kancane mayelana ne-rsyslog. Okokuqala, kuhle ngoba inamamojula amaningi. Ine-RainerScript efundeka umuntu (ulimi lokucushwa lwesimanje). Ibhonasi emangalisayo ukuthi singalingisa ukuziphatha kwe-td-ejenti ngamathuluzi ayo ajwayelekile, futhi akukho okushintshile ezinhlelweni zokusebenza. Okusho ukuthi, sishintsha i-td-ejenti iye ku-rsyslog, futhi singayithinti yonke enye into okwamanje. Futhi ngokushesha sithola ukulethwa okusebenzayo. Okulandelayo, i-mmnormalize yinto epholile nge-rsyslog. Ikuvumela ukuthi uhlukanise izingodo, kodwa hhayi nge-Grok ne-regexp. Kwenza isihlahla se-syntax esingabonakali. Ihlaziya izingodo ngendlela efanayo naleyo umdidiyeli ahlaziya ngayo ikhodi yomthombo. Lokhu kukuvumela ukuthi usebenze ngokushesha okukhulu, udle i-CPU encane, futhi, ngokuvamile, kuyinto epholile kakhulu. Kunenqwaba yamanye amabhonasi. ngeke ngigxile kuzo.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

I-rsyslog inokungalungi okuningi. Acishe afane namabhonasi. Izinkinga eziyinhloko ukuthi udinga ukwazi ukuyipheka, futhi udinga ukukhetha inguqulo.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Sinqume ukuthi sizobhala izingodo kwisokhethi ye-unix. Futhi hhayi ku-/dev/log, ngoba lapho sinezinkinga zamalogi wesistimu, kukhona okushicilelwe kuleli payipi. Ngakho-ke ake sibhalele isokhethi yangokwezifiso. Sizoyinamathisela kusethi yemithetho ehlukile. Masingaphazamisi lutho. Konke kuzoba obala futhi kuqondakala. Ngakho senza ngempela. Uhla lwemibhalo olunalawa masokhethi luyamiswa futhi ludluliselwe kuzo zonke iziqukathi. Iziqukathi ziyakwazi ukubona isokhethi ezizidingayo, zivule bese zibhalela kuyo.

Kungani lingelona ifayela? Ngoba wonke umuntu ufundile isihloko mayelana Badushechka, ezame ukudlulisa ifayela ku-docker, futhi yathola ukuthi ngemva kokuqala kabusha i-rsyslog, isichazi sefayela siyashintsha, futhi i-docker ilahlekelwa yileli fayela. Ulokhu evula enye into, kodwa hhayi isokhethi efanayo lapho bebhala khona. Sinqume ukuthi sizoyidlula le nkinga, futhi, ngesikhathi esifanayo, sidlule inkinga yokuvimbela.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

I-Rsyslog yenza izenzo ezikhonjiswe kusilayidi futhi ithumela izingodo ku-relay noma ku-Kafka. I-Kafka ilandela indlela endala. Rayleigh - Ngizame ukusebenzisa i-rsyslog ehlanzekile ukuletha izingodo. Ngaphandle komugqa womlayezo, kusetshenziswa amathuluzi ajwayelekile we-rsyslog. Ngokuyisisekelo, iyasebenza.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Kodwa kunama-nuances okuthi ungawafaka kanjani kamuva kule ngxenye (Logstash/Graylog/ES). Le ngxenye (rsyslog-rsyslog) isetshenziswa phakathi kwama-datacenters. Nasi isixhumanisi esicindezelwe se-tcp, esikuvumela ukuthi ulondoloze umkhawulokudonsa futhi, ngokufanele, ngandlela-thile wandise amathuba okuthi sithole amalogi athile avela kwesinye isikhungo sedatha lapho isiteshi sigcwele. Ngoba sine-Indonesia, lapho yonke into imbi. Kulapho inkinga ehlala ikhona.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Sicabange ukuthi siqapha kanjani ngempela, yimaphi amathuba okuthi amalogi esiwaqophe ohlelweni afinyelela lokho? Sinqume ukuqala amamethrikhi. I-Rsyslog inemojula yayo yokuqoqa izibalo, enezinhlobo ezithile zokubala. Isibonelo, ingakubonisa usayizi womugqa, noma ukuthi mingaki imilayezo engenile yesenzo esinjalo nesinjalo. Ungakwazi kakade ukuthatha okuthile kubo. Futhi, inezibali zangokwezifiso ongazilungiselela, futhi izokubonisa, isibonelo, inani lemilayezo i-API ethile erekhodwe. Okulandelayo, ngabhala i-rsyslog_exporter ePython, futhi sayithumela yonke ku-Prometheus futhi sakha itulo. Besiwafuna ngempela amamethrikhi e-Greylog, kodwa kuze kube manje asikabi naso isikhathi sokuwasetha.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Ziyini izinkinga? Inkinga ivele ngokuthi sithole (KUSHESHA!) ukuthi ama-Live APIs abhala imilayezo engu-50k ngomzuzwana. Lena i-Live API kuphela ngaphandle kwesiteji. Futhi uGreylog usikhombisa kuphela imilayezo eyizinkulungwane ezingu-12 ngomzuzwana. Futhi kwaphakama umbuzo onengqondo, iphi insali? Kusuka lapho saphetha ngokuthi uGreylog akakwazi ukubhekana nakho. Sibheke, futhi, ngempela, iGreylog ene-Elasticsearch ayizange ikwazi lokhu kugeleza.

Okulandelayo, okunye okutholakele esikutholile endleleni.

Ukubhala esokhethi kuvinjiwe. Kwenzeke kanjani? Lapho ngisebenzisa i-rsyslog ukulethwa, ngesinye isikhathi siphule isiteshi phakathi kwezikhungo zedatha. Ukudiliva kukhuphuke endaweni eyodwa, ukudiliva kukhuphuke kwenye indawo. Konke lokhu kwehlele emshinini onama-API abhalela isokhethi le-rsyslog. Bekunomugqa. Bese umugqa wokubhalela isokhethi le-unix ugcwale, okuthi ngokuzenzakalelayo kube amaphakethe angu-128. Futhi okulandelayo bhala () kumabhulokhi wohlelo lokusebenza. Uma sibheka umtapo wezincwadi esiwusebenzisa kuzinhlelo zokusebenza ze-Go, kwakubhalwe lapho ukuthi ukubhalela isokhethi kwenzeka ngendlela engavimbeli. Sasiqiniseka ukuthi akukho lutho oluvinjiwe. Ngoba sesifundile isihloko mayelana Badushechkaowabhala ngakho. Kodwa kukhona isikhashana. Kuphinde kwaba ne-loop engapheli kule kholi, lapho kwakukhona umzamo oqhubekayo wokuphusha umlayezo kusokhethi. Asizange simqaphele. Kwadingeka ngibhale kabusha umtapo wolwazi. Kusukela lapho, sekushintshe izikhathi eziningana, kodwa manje sesilahle izingidi kuzo zonke izinhlelo ezingaphansi. Ngakho-ke, ungamisa i-rsyslog futhi akukho okuzowa.

Kudingeka ukuqapha ubukhulu bemigqa, okusiza ukuthi unganyatheli kuleli hhala. Okokuqala, singakwazi ukuqapha lapho siqala ukulahlekelwa imilayezo. Okwesibili, singaqapha ukuthi sinezinkinga ngokudiliva.

Futhi omunye umzuzu ongemnandi - ukukhulisa izikhathi eziyi-10 ekwakhiweni kwe-microservice kulula kakhulu. Asinazo izicelo eziningi ezingenayo, kodwa ngenxa yegrafu lapho le milayezo iqhubeka khona, ngenxa yamalogi okufinyelela, empeleni sandisa umthwalo kulogi cishe izikhathi eziyishumi. Ngeshwa, angizange ngibe nesikhathi sokubala izinombolo eziqondile, kodwa ama-microservices ayilokho ayikho. Lokhu kumele kukhunjulwe. Kuvele ukuthi okwamanje uhlelo olungaphansi lokuqoqwa kwelogi yilona olulayishwe kakhulu eLazada.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Ungayixazulula kanjani inkinga ye-elasticsearch? Uma udinga ukuthola ngokushesha izingodo endaweni eyodwa, ukuze ungagijimi kuyo yonke imishini futhi uyiqoqe lapho, sebenzisa isitoreji sefayela. Lokhu kuqinisekisiwe ukusebenza. Kwenziwa kunoma iyiphi iseva. Udinga nje ukunamathisela amadiski lapho futhi ubeke i-syslog. Ngemuva kwalokho, uqinisekisiwe ukuthi uzoba nazo zonke izingodo endaweni eyodwa. Ngemuva kwalokho kuzokwazi ukulungisa kancane kancane i-elasticsearch, i-graylog, noma enye into. Kodwa uzobe usunawo wonke amalogi, futhi, ngaphezu kwalokho, ungawagcina, kuze kube yilapho kukhona ama-disk array okwanele.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Ngesikhathi ngibika, uhlelo lwaqala ukubukeka kanje. Sesiyeke nokubhalela ifayela. Manje, cishe, sizocisha izinsalela. Emishinini yendawo esebenzisa i-API, sizoyeka ukubhalela amafayela. Okokuqala, kukhona ukugcinwa kwefayela, okusebenza kahle kakhulu. Okwesibili, le mishini ihlale iphelelwa isikhala, udinga ukuyiqapha njalo.

Le ngxenye ene-Logstash ne-Greylog, iyandiza ngempela. Ngakho-ke, udinga ukuyisusa. Kufanele ukhethe eyodwa.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Sanquma ukulahla i-Logstash ne-Kibana. Ngoba sinomnyango wezokuphepha. Kuyini ukuxhumana? Ukuxhuma ukuthi i-Kibana ngaphandle kwe-X-Pack futhi ngaphandle kwe-Shield ayikuvumeli ukuthi uhlukanise amalungelo okufinyelela kulogi. Ngakho-ke, bathatha Graylog. Inakho konke. Angiyithandi, kodwa iyasebenza. Sithenge izingxenyekazi zekhompuyutha ezintsha, safaka i-Greylog entsha lapho, futhi sahambisa wonke amalogi anamafomethi aqinile ku-Greylog ehlukile. Sixazulule inkinga ngezinhlobo ezahlukene zezinkambu ezifanayo ngokuhlelekile.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Yini ngempela efakwe kuGreylog entsha. Sisanda kubhala yonke into edokodweni. Sithathe inqwaba yamaseva, sakhipha izikhathi ezintathu ze-Kafka, inguqulo engu-7 ye-Greylog yenguqulo engu-2.3 (ngoba bengifuna inguqulo 5 ye-Elasticsearch). Konke lokhu kwaphakanyiswa ekuhlaselweni kwe-HDD. Sibone izinga lokukhomba lemiyalezo efika ezinkulungwaneni eziyi-100 ngomzuzwana. Sibone isibalo sokuthi ama-terabytes angu-140 edatha ngeviki.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Futhi iraki! Sinezindali ezimbili ezizayo. Sesidlulele kokuthunyelwe okuyizigidi ezingu-6. Thina Graylog asinaso isikhathi sokuhlafuna. Ngandlela-thile kufanele usinde futhi.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Sasinda kanje. Kwengezwe amanye amaseva ambalwa nama-SSD. Njengamanje siphila kanje. Manje sesivele sihlafuna imilayezo engu-160k ngomzuzwana. Okwamanje asikafiki emkhawulweni, ngakho-ke akucaci ukuthi kungakanani esingakuthola kukho.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Lezi izinhlelo zethu zekusasa. Kulezi, empeleni, okubaluleke kakhulu cishe ukutholakala okuphezulu. Asikabi nayo. Izimoto eziningi zisethwe ngendlela efanayo, kodwa kuze kube manje yonke into ihamba ngemoto eyodwa. Kuyadingeka ukuchitha isikhathi ukusetha i-faillover phakathi kwabo.

Qoqa amamethrikhi ku-Greylog.

Yenza umkhawulo wesilinganiso ukuze sibe ne-API eyodwa ehlanyayo engasibulali umkhawulokudonsa nakho konke okunye.

Futhi ekugcineni, sayina uhlobo oluthile lwe-SLA nabathuthukisi ukuze sisebenze kangako. Uma ubhala okwengeziwe, ke sorry.

Bese ubhala amadokhumenti.

U-Yury Bushmelev "Imephu ye-rake emkhakheni wokuqoqa nokudiliva izingodo" - umbhalo wombiko

Kafushane, imiphumela yakho konke esiye sabhekana nakho. Okokuqala, izindinganiso. Okwesibili, i-syslog ikhekhe. Okwesithathu, i-rsyslog isebenza ncamashi njengoba ibhaliwe kusilayidi. Ake sifinyelele emibuzweni.

Imibuzo yakho.

Umbuzo wakho: Kungani benqume ukungathathi ... (i-filebeat?)

Impendulo: Kudingeka ubhalele ifayela. Ngangingafuni ngempela. Uma i-API yakho ibhala izinkulungwane zemilayezo ngomzuzwana, ngisho noma uzungezisa kanye ngehora, lokhu kusengaseyona inketho. Ungabhalela ipayipi. Lapho abathuthukisi bangibuza khona: “Kuzokwenzekani uma inqubo esibhala ngayo iwela phansi”? Angizange ngithole ukuthi ngizobaphendula ngithini, ngathi: "Hhayi-ke, masingakwenzi lokho."

Umbuzo wakho: Kungani ungavele ubhale izingodo ku-HDFS?

ImpenduloA: Lesi isinyathelo esilandelayo. Sacabanga ngakho ekuqaleni, kodwa njengoba zingekho izinsiza zokubhekana nakho okwamanje, kulenga esixazululweni sethu sesikhathi eside.

Umbuzo wakho: Ifomethi yekholomu izofaneleka kakhulu.

Impendulo: Ngiyaqonda. "Singaba" ngazo zombili izandla.

Umbuzo wakho: Ubhalela ku-rsyslog. Kokubili i-TCP ne-UDP kuyatholakala lapho. Kodwa uma i-UDP, ungaqinisekisa kanjani ukulethwa?

ImpenduloA: Kunamaphuzu amabili. Okokuqala, ngokushesha ngitshela wonke umuntu ukuthi asiqinisekisi ukulethwa kwezingodo. Ngoba lapho abathuthukisi beza bathi: "Asiqale ukubhala idatha yezezimali lapho, futhi uzosibeka endaweni ethile uma kwenzeka okuthile," siyabaphendula, "Kuhle! Ake siqale ukuvimba ekubhaleni isokhethi, futhi sikwenze ekuthengiseni, ukuze uqinisekiswe ukuthi uzosifaka kusokhethi futhi uqiniseke ukuthi siyitholile kolunye uhlangothi. Futhi ngalesi sikhathi, wonke umuntu ngokushesha uba ngokungadingekile. Futhi uma kungenjalo, yimiphi imibuzo esinayo? Uma ungafuni ukuqinisekisa ukubhala kusokhethi, kungani-ke singaqinisekisa ukulethwa? Senza umzamo ongcono kakhulu. Sizama ngempela ukuletha okuningi ngangokunokwenzeka nangokungcono kakhulu ngangokunokwenzeka, kodwa asinikezi isiqinisekiso esingu-100%. Ngakho-ke, awudingi ukubhala idatha yezezimali lapho. Kunemininingwane yokwenziwayo yalokhu.

Umbuzo wakho: Uma i-API ikhiqiza umlayezo othile kulogi futhi idlulisela ukulawula kuma-microservices, ingabe uhlangabezane nenkinga yokuthi imilayezo evela kuma-microservices ahlukene ifika ngokulandelana okungalungile? Ngenxa yalokhu, kuvela ukudideka.

ImpenduloIMP: Kujwayelekile ukuthi ziza ngendlela ehlukile. Kufanele ukulungele lokhu. Ngoba noma yikuphi ukulethwa kwenethiwekhi akuqinisekisi i-oda kuwe, noma udinga ukusebenzisa izinsiza ezikhethekile kulokhu. Uma sithatha ukugcinwa kwamafayela, i-API ngayinye igcina amalogi kufayela layo. Kunalokho, i-rsyslog iwahlukanisa abe uhla lwemibhalo lapho. I-API ngayinye inamalogi ayo lapho, lapho ongaya khona futhi ubheke, bese ungawaqhathanisa usebenzisa isitembu sesikhathi kule log. Uma beyobheka ku-Greylog, khona-ke bazohlungwa ngesitembu sesikhathi. Konke kuzolunga lapho.

Umbuzo wakho: Isitembu sesikhathi singahluka ngama-millisecond.

Impendulo: Isitembu sesikhathi sikhiqizwa i-API ngokwayo. Lokhu, empeleni, iphuzu lonke. Sine-NTP. I-API ikhiqiza isitembu sesikhathi esivele sikumlayezo ngokwawo. Ayengezwa nge-rsyslog.

Umbuzo wakho: Ukusebenzisana phakathi kwezikhungo zedatha akucaci kahle. Ngaphakathi kohlaka lwesikhungo sedatha, kuyacaca ukuthi amalogi aqoqwe futhi acutshungulwa kanjani. Kunjani ukusebenzisana phakathi kwezikhungo zedatha? Noma ingabe isikhungo sedatha ngasinye siphila impilo yaso?

Impendulo: Cishe. Sinezwe ngalinye elisendaweni eyodwa yedatha. Okwamanje asinakho ukusabalala, ukuze izwe elilodwa libekwe ezikhungweni zedatha ezihlukene. Ngakho-ke, asikho isidingo sokuwahlanganisa. Ngaphakathi kwesikhungo ngasinye kukhona i-Log Relay. Lena iseva ye-Rsyslog. Eqinisweni, imishini yokuphatha emibili. Amiswe ngendlela efanayo. Kodwa okwamanje, ithrafikhi idlula kwenye yazo. Uhlanganisa yonke into. Inomugqa wediski uma kwenzeka. Ucindezela izingodo futhi azithumele esikhungweni sedatha esimaphakathi (eSingapore), lapho esevele efakwe ubuthi eGreylog. Futhi isikhungo sedatha ngasinye sinesitoreji saso sefayela. Uma kwenzeka silahlekelwe ukuxhumana, sinawo wonke amalogi lapho. Bazohlala lapho. Azogcinwa khona.

Umbuzo wakho: Ingabe uthola izingodo lapho ngezimo ezingavamile?

Impendulo: Ungaya lapho (ekugcineni kwefayela) futhi ubheke.

Umbuzo wakho: Uqapha kanjani ukuthi awulahlekelwa izingodo?

Impendulo: Empeleni siyabalahlekelwa, futhi siyakuqapha. Ukuqapha kuqale enyangeni edlule. Ilabhulali esetshenziswa ama-Go APIs inamamethrikhi. Angabala ukuthi wehluleka kangaki ukubhalela isokhethi. Lapho okwamanje kukhona i-heuristic ekhohlisayo. Kukhona i-buffer lapho. Izama ukubhala umlayezo usuka kuyo uye kusokhethi. Uma i-buffer igcwele, iqala ukuwayeka. Futhi ubala ukuthi zingaki aziwise. Uma izibali ziqala ukuchichima lapho, sizokwazi ngakho. Manje nabo beza e-prometheus, futhi ungabona amagrafu eGrafana. Ungasetha izexwayiso. Kodwa akukacaci ukuthi uzozithumela kubani.

Umbuzo wakho: Ku-elasticsearch, ugcina izingodo ngokuphindaphinda. Zingaki izifaniso onazo?

Impendulo: Isifaniso esisodwa.

Umbuzo wakho: Ingabe umugqa owodwa nje?

Impendulo: Lona okuyinhloko kanye nesifaniso. Idatha igcinwa iyimpinda.

Umbuzo wakho: Ingabe uye walungisa usayizi webhafa ye-rsyslog ngandlela thile?

Impendulo: Sibhala ama-datagrams kusokhethi sangokwezifiso se-unix. Lokhu kubeka ngokushesha umkhawulo wamakhilobhayithi angu-128 kithi. Asikwazi ukubhala okwengeziwe kuyo. Sikubhalile lokhu kuzinga. Ubani ofuna ukungena kwisitoreji, babhala ama-kilobytes angu-128. Imitapo yolwazi, ngaphezu kwalokho, inqamule, bese ifaka ifulegi ukuthi umlayezo unqanyuliwe. Sinenkambu ekhethekile ezingeni lomlayezo ngokwawo, obonisa ukuthi unqanyulwe ngesikhathi sokurekhoda noma cha. Ngakho sinethuba lokulandelela lesi sikhathi.

Umbuzo: Ingabe ubhala i-JSON ephukile?

Impendulo: I-JSON ephukile izolahlwa ngesikhathi sokudluliselana ngoba iphakethe likhulu kakhulu. Noma i-Greylog izokwehliswa, ngoba ngeke ikwazi ukuncozulula i-JSON. Kepha kukhona ama-nuances lapha adinga ukulungiswa, futhi aboshwe kakhulu ku-rsyslog. Sengike ngawagcwalisa amakhophi ambalwa lapho, okusamele kusetshenzwe ngawo.

Umbuzo: Kungani Kafka? Uke wazama i-RabbitMQ? I-Greylog ayihlanganisi ngaphansi kwemithwalo enjalo?

Impendulo: Ayisebenzi ngeGreylog. Futhi uGreylog uyakhula. Kuyinkinga ngempela kuye. Uluhlobo lwento. Futhi, empeleni, ayidingeki. Ngingathanda ukubhala ngisuka ku-rsyslog ngiye ku-elasticsearch bese ngibuka i-Kibana. Kodwa udaba kumele silulungise nonogada. Lokhu ukuhluka okungenzeka kwentuthuko yethu lapho silahla i-Greylog futhi sisebenzisa i-Kibana. I-Logstash ngeke ibe nengqondo. Ngoba ngingenza okufanayo nge-rsyslog. Futhi inemojula yokubhalela elasticsearch. Nge-Graylog sizama ukuphila ngandlela thize. Saze sayilungisa kancane. Kodwa isekhona indawo yokuthuthukisa.

Mayelana ne-Kafka. Kwenzeka kanjalo ngokomlando. Lapho ngifika, yayivele ikhona, futhi kwase kubhalwe izingodo kuyo. Sisanda kuphakamisa iqoqo lethu futhi sahambisa izingodo kulo. Siyamphatha, siyayazi indlela azizwa ngayo. Mayelana noRabbitMQ... sinenkinga neRabbitMQ. Futhi i-RabbitMQ iyasithuthukela. Sinayo ekukhiqizeni, futhi kube nezinkinga ngayo. Manje, ngaphambi kokudayiswa, wayezobe enziwe i-shamanized, futhi wayezoqala ukusebenza ngokujwayelekile. Kodwa ngaphambi kwalokho, bengingakalungeli ukuyikhulula ukuze ikhiqize. Kukhona elinye iphuzu. I-Greylog ingafunda inguqulo ye-AMQP 0.9 futhi i-rsyslog ingabhala inguqulo ye-AMQP 1.0. Futhi asikho isisombululo esisodwa esingenza kokubili phakathi. Kukhona eyodwa noma enye. Ngakho-ke okwamanje kuphela i-Kafka. Kodwa kukhona futhi ama-nuances. Ngoba i-omkafka yenguqulo ye-rsyslog esiyisebenzisayo ingalahlekelwa yiyo yonke ibhafa yomlayezo ethathwe ku-rsyslog. Inqobo nje uma sibekezelela.

Umbuzo: Ingabe usebenzisa i-Kafka ngoba ubunayo? Ayisetshenziselwa enye inhloso?

Impendulo: I-Kafka, eyasetshenziswa ithimba le-Data Science. Lena iphrojekthi ehluke ngokuphelele, mina, ngeshwa, angikwazi ukusho lutho. Angazi. Ubephethwe yithimba le-Data Science. Lapho izingodo ziqala, banquma ukuzisebenzisa, ukuze bangazibeki ezabo. Manje sibuyekeze i-Greylog, futhi silahlekelwe ukuhambisana, ngoba kukhona inguqulo yakudala ye-Kafka. Kwadingeka sizenzele okwethu. Ngesikhathi esifanayo, silahle lezi zihloko ezine ze-API ngayinye. Senze itop eyodwa ebanzi yabo bonke abaphilayo, itop eyodwa ebanzi ebanzi yazo zonke isiteji futhi sivele sidubule yonke into lapho. UGreylog ukhipha konke lokhu ngokuhambisana.

Umbuzo: Kungani sidinga lobu shamanism namasokhethi? Uke wazama ukusebenzisa umshayeli welogi we-syslog weziqukathi.

Impendulo: Ngesikhathi sibuza lo mbuzo, sasinobudlelwane obuqinile nedokodo. Kwakuyi-docker 1.0 noma i-0.9. I-Docker ngokwayo yayiyinqaba. Okwesibili, uma futhi uhlohla izingodo kuyo ... Nginokusola okungaqinisekisiwe ukuthi idlula zonke izingodo ngokwayo, ngokusebenzisa i-docker daemon. Uma sine-API eyodwa ezohlanya, amanye ama-API azongena eqinisweni lokuthi awakwazi ukuthumela i-stdout ne-stderr. Angazi ukuthi lokhu kuzoholelaphi. Nginokusola ezingeni lokuzwa ukuthi akudingekile ukusebenzisa umshayeli we-docker syslog kule ndawo. Umnyango wethu wokuhlola osebenzayo uneqoqo lawo leGreylog elinamalogi. Basebenzisa abashayeli be-docker log futhi konke kubonakala kuhamba kahle lapho. Kodwa ngokushesha babhala i-GELF kuGreylog. Ngesikhathi siqala konke lokhu, besikudinga ukuthi kusebenze nje. Mhlawumbe kamuva, lapho kufika othile futhi ethi sekuyiminyaka eyikhulu isebenza ngendlela evamile, sizozama.

Umbuzo: Uletha phakathi kwezikhungo zedatha usebenzisa i-rsyslog. Kungani ungekho eKafka?

Impendulo: Senza lokhu, futhi lena indlela ngempela. Ngenxa yezizathu ezimbili. Uma isiteshi sifile ngokuphelele, khona-ke zonke izingodo zethu, ngisho nefomu elicindezelweyo, ngeke zikhuphuke ngalo. Futhi i-kafka ibavumela ukuthi balahlekelwe yinqubo. Ngale ndlela, sisusa ukunamathela kwalezi zingodo. Sisebenzisa i-Kafka kuleli cala ngokuqondile. Uma sinesiteshi esihle futhi sifuna ukusikhulula, sisebenzisa i-rsyslog yabo. Kodwa empeleni, ungayisetha ukuze yehlise lokho engazange idlule kukho. Okwamanje sisebenzisa ukulethwa kwe-rsyslog ngqo ndawana thize, endaweni ethile eKafka.

Source: www.habr.com

Engeza amazwana