Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Logsku waa qayb muhiim ah oo ka mid ah nidaamka, taas oo kuu ogolaanaysa inaad fahamto in uu shaqaynayo (ama aanu shaqaynayn) sidii la filayay. Qaab dhismeedka microservice-ka, ku shaqaynta logu waxay noqonaysaa anshax gaar ah Olympiad gaar ah. Su'aalo farabadan ayaa u baahan in la xalliyo hal mar:

  • sida loo qoro logyada codsiga;
  • meesha lagu qoro qoryo;
  • sida loo keeno logu kaydinta iyo habaynta;
  • sida loo farsameeyo loona kaydiyo loga

Isticmaalka tignoolajiyada weelaynta ee caanka ah ee hadda caan ku ah waxay ku dartaa ciid korka sare ee qaadka beerta fursadaha xalinta dhibaatada.

Tani waa dhab ahaan waxa qoraalka warbixinta Yuri Bushmelev ku saabsan yahay "Khariidadda rakes ee berrinkii ururinta iyo keenista logyada".

Yaa dan leh, fadlan bisadda hoosteeda.

Magacaygu waa Yuri Bushmelev. Waxaan ka shaqeeyaa Lazada. Maanta waxaan ka hadli doonaa sidaan u samaynay logayada, sidaan u ururinay, iyo waxa aan ku qorno.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Xagee ka nimid? Yaan nahay? Lazada waa tafaariiqda 1-aad ee internetka ee lix waddan oo ku yaal Koonfur-bari Aasiya. Dhammaan wadamadan waxaa loo qaybiyay xarumahayada xogta. Hadda waxa jira 4 xarumood oo xog ah maxay tani muhiim u tahay? Sababtoo ah go'aamada qaarkood waxaa sabab u ahaa xaqiiqda ah in uu jiro xiriir aad u daciif ah oo ka dhexeeya xarumaha. Waxaan leenahay qaab dhismeedka microservice. Waxaan la yaabay markii aan ogaaday in aan horey u haysanay 80 adeeg yar yar. Markii aan hawsha ku bilaabay qoraallo, waxaa jiray 20 ka mid ah oo keliya, Plus waxaa jira qayb weyn oo ka mid ah dhaxalka PHP, kaas oo aan sidoo kale ku qasbannahay inaan la noolaado oo aan la qabsado. Waxaas oo dhami waxay hadda abuuraan in ka badan 6 milyan oo farriimo daqiiqaddii nidaamka guud ahaan. Marka xigta waxaan tusi doonaa sida aan isku dayeyno inaan ula noolaano tan, iyo sababta ay tani sidaas tahay.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Waa inaad si uun ula noolaato fariimahan 6 milyan ah. Maxaan ku samaynaa? 6 milyan oo fariimo waxaad u baahan tahay:

  • ka soo dir app
  • aqbal dhalmada
  • gaadhsiin falanqaynta iyo kaydinta.
  • falanqee
  • si uun u kaydi.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Markii ay soo baxeen saddex milyan oo farriimo, waxaan eegay isku mid. Sababtoo ah waxaan ku bilownay dhowr dinaar. Way caddahay in diiwaanka codsigu halkaas ku qoran yahay. Tusaale ahaan, ma aan xidhi karin kaydka xogta, waxa aan awooday in aan ku xidho kaydka xogta laakiin waxba ma akhriyi karin. Laakiin tan ka sokow, mid kasta oo ka mid ah adeegyadeena yar-yar ayaa sidoo kale qoraa diiwaanka gelitaanka. Codsi kasta oo yimaadda adeeg-yaraha waxa lagu diiwaangeliyaa diiwaanka. Maxaynu tan u samaynaynaa? Horumariyayaashu waxay rabaan inay awoodaan inay raad raacaan. Log kasta oo gelitaanku waxa uu ka kooban yahay goob raad-raaceed, iyada oo la isticmaalayo is-dhexgal gaar ah ka dibna ka furaya dhammaan silsiladda oo si qurux badan u soo bandhigaysa raadadka. Raad-raacu waxa uu tusinayaa sida codsigu u dhacay, tanina waxa ay ka caawisaa horumariyeyaasheena in ay si degdeg ah wax uga qabtaan qashin kasta oo aan la aqoonsan.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Sidee loola noolaadaa tan? Hadda waxaan si kooban u sharxi doonaa goobta fursadaha - sida dhibaatadan guud ahaan loo xalliyo. Sida loo xalliyo dhibaatada ururinta, gudbinta iyo kaydinta logyada.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Sidee wax looga qoraa codsi? Waxaa cad in ay jiraan siyaabo kala duwan. Gaar ahaan, waxaa jira hab-dhaqanka ugu fiican, sida asxaabteena moodada ah ay noo sheegaan. Waxa jira laba nooc oo dugsi hore ah, sida ay awoowayaasheen noo sheegeen. Waxaa jira siyaabo kale.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Xaaladda ururinta geedaha waa isku mid. Ma jiraan doorashooyin badan oo lagu xallinayo qaybtan gaarka ah. Waxaa jira in badan oo iyaga ka mid ah, laakiin aan aad u badan weli.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Laakiin keenista iyo falanqaynta ku xigta, tirada kala duwanaanshuhu waxay bilaabaan inay qarxaan. Hadda ma qeexi doono ikhtiyaar kasta. Waxaan u maleynayaa in xulashooyinka ugu muhiimsan ay si fiican u yaqaanaan qof kasta oo xiiseynaya mawduuca.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Waxaan ku tusi doonaa sida aan ugu sameynay Lazada, iyo sida ay runtii ku bilaabatay.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Sanad ka hor waxaan imid Lazada waxaana la ii diray mashruuc ku saabsan geedaha. Waxay ahayd wax sidan oo kale ah. Diiwaanka arjiga waxaa loo qoray stdout iyo stderr. Wax walba waxaa loo sameeyay qaab moodada ah. Laakiin markaa horumariyayaashu waxay ka tuureen socodka caadiga ah, ka dibna si uun khabiirada kaabayaasha ayaa ogaan doona. Inta u dhaxaysa kuwa ku takhasusay kaabayaasha iyo horumarinta, waxaa sidoo kale jira sii-deeyayaal dhahay: "Haah... okay, aan ku duubno fayl qolof leh, waana taas." Oo maadaama waxaas oo dhami ay ku jireen weel, waxay si toos ah ugu duubeen weelka laftiisa, oo ay sawireen buuggii gudaha oo ay dhigeen halkaas. Waxaan u maleynayaa inay aad u caddahay qof walba waxa ka yimid.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Aynu hadda wax yar ka sii eegno. Sideen u geynay geedahaas? Qof ayaa doortay td-wakiil, kaas oo run ahaantii faseexa ah, laakiin aan si fiican u faseexayn. Wali ma fahmin xidhiidhka ka dhexeeya labadan mashruuc, laakiin waxay u muuqdaan inay isku mid yihiin. Oo tan si faseexa leh, oo ku qoran Ruby, akhri faylalka log-ga, ku kala jeexjeexay JSON iyada oo la adeegsanayo nooc ka mid ah joogtada ah. Ka dib waxaan u diray Kafka. Waxaa intaa dheer, Kafka waxaan ku haynay 4 mawduuc oo kala duwan API kasta. Waa maxay sababta 4? Sababtoo ah waxaa jira nolol, waxaa jira diyaargarow, iyo sababtoo ah waxaa jira stdout iyo stderr. Horumariyayaashu iyaga ayaa abuura, horumariyayaashuna waa inay ku abuuraan Kafka. Waxaa intaa dheer, Kafka waxaa gacanta ku hayay waax kale. Sidaa darteed, waxay ahayd lagama maarmaan in la sameeyo tigidh si ay u abuuraan 4 mawduucyo api kasta. Qof kastaa wuu illoobay. Guud ahaan, waxaa jiray qashin iyo buuq.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Maxaan ku samaynay tan? Kafka ayaan u dirnay. Ka dibna kala badh ka mid ah qoryihii Kafka ayaa u duulay Logstash. Qaybtii kale ee geedaha ayaa la qaybsaday. Qaar waxay u duuleen hal Graylog, qaarna waxay u duuleen Graylog kale. Natiijo ahaan, waxaas oo dhami waxay galeen hal koox Elasticsearch. Taasi waa, dhammaan kharibantaan ayaa halkaas ku dhammaaday. Ha samayn taas!

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Tani waa sida ay u egtahay haddii aad ka eegto xagga sare. Ha samayn taas! Halkan meelaha dhibaatadu ka jirto ayaa isla markiiba lagu calaamadeeyay tirooyin. Dhab ahaantii way badan yihiin, laakiin 6 waa kuwa dhib badan oo u baahan in wax laga qabto. Si gooni ah ayaan hadda kaaga sheegi doonaa.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Halkan (1,2,3) waxaanu ku qornaa faylal, sidaas awgeed, waxa halkan hal mar ku jira saddex raf.

Midka ugu horreeya (1) waa inaan u baahanahay inaan ku qorno meel. Had iyo jeer ma noqon doonto mid la jeclaysan karo in API-ga la siiyo awood uu si toos ah ugu qoro fayl. Waa suurad wacan in API lagu go'doomiyo weel, ama xitaa ka sii fiican, in uu ahaado mid akhriya oo keliya. Waxaan ahay maamulaha nidaamka, marka waxaan leeyahay aragti ka duwan arrimahan.

Qodobka labaad (2,3) waa in aan hayno codsiyo badan oo imanaya API-ga. API waxay u qortaa xog badan faylka. Faylasha ayaa koraya Waxaan u baahanahay inaan isku shaandheynno. Sababtoo ah haddii kale ma awoodi doontid inaad ku kaydiso wax disk ah halkaas. Wareegiddooda waa xun sababtoo ah waxaa lagu sameeyaa iyada oo loo sii marayo qolofka ilaa hagaha. Ma jirto si aan dib ugu eegno. Ma sheegi kartid codsiga in dib loo furo gacmaha Sababtoo ah horumariyayaashu waxay kuugu eegi doonaan sida inaad tahay doqon: "Maxay sharraxayaan? Guud ahaan waxaan u qornaa stdout." Horumarinta kaabayaasha ayaa sameeyay nuqul ka mid ah logrotate, kaas oo si fudud u sameeya nuqul ka mid ah faylka oo nuqul ka dhigaya asalka. Sidaas awgeed, inta u dhaxaysa hababkan koobiyeynta, booska diskooga inta badan wuu dhammaanayaa.

(4) Waxaan lahaa qaabab kala duwan oo API-yo kala duwan ah. Waxoogaa way kala duwanaayeen, laakiin regexp waxay ahayd in si kale loo qoro. Maadaama waxaas oo dhan ay gacanta ku haysay Puppet, waxaa jiray kooxo farabadan oo leh baranbaro iyaga u gaar ah. Waxaa dheer, inta badan td-wakiil wuxuu cuni karaa xusuusta, doqon ahaan, wuxuu iska dhigi karaa inuu shaqeynayo oo uusan waxba qaban. Banaanka laga soo bilaabo waa wax aan macquul aheyn in la fahmo in uusan waxba qaban. Sida ugu fiican, wuu dhici doonaa oo qof ayaa soo qaadi doona mar dambe. Si aad u saxan, digniin ayaa iman doonta, oo qof ayaa tagi doona oo gacmihiisa kor ugu qaadi doona.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

(6) Qashinka iyo qashinka ugu badana wuxuu ahaa elasticsearch. Sababtoo ah waxay ahayd nooc hore. Maxaa yeelay, wakhtigaas maynaan lahayn sayidyo u go'ay. Waxaan haysanay alwaaxyo kala duwan oo beerahoodu is dul saaran karaan. Qoraallo kala duwan oo codsiyo kala duwan ah ayaa lagu qori karaa magacyo isku mid ah, laakiin waxaa jiri kara xog kala duwan oo gudaha ah. Taasi waa, hal log oo la socda Integer garoonka dhexdiisa, tusaale ahaan, heerka. Log kale ayaa la socda String gudaha garoonka heerka. Maqnaanshaha khariidaynta taagan, tani waa shay cajiib ah. Haddii, ka dib marka la beddelo tusaha elasticsearch, farriin leh xadhig ay marka hore timaado, markaa si caadi ah ayaan u noolnahay. Laakiin haddii tii ugu horreysay ay ka timaaddo Integer, markaas dhammaan fariimaha xiga ee ka yimid String si fudud ayaa loo tuuray. Sababtoo ah nooca garoonku kuma habboona.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Waxaan bilownay inaan weydiinno su'aalahan. Waxaan go'aansanay inaanan raadin kuwa eedda.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Laakiin wax loo baahan yahay in la sameeyo! Shayga cad ayaa ah inaan u baahanahay inaan dejino halbeegyo. Waxaan horey u haysanay halbeegyo. Wax yar ka dib ayaanu bilownay. Nasiib wanaag, hal qaab log oo dhammaan API-yada ayaa mar hore la ansixiyay wakhtigaas. Waxay si toos ah ugu qoran tahay heerarka isdhexgalka ka dhexeeya adeegyada. Sidaas darteed, kuwa doonaya in ay helaan logu waa in ay u qoraan qaabkan. Haddii qof aanu ku qorin buugaagta qaabkan, markaa ma dammaanad qaadayno waxba.

Marka xigta, waxaan jeclaan lahaa in aan sameeyo halbeeg midaysan hababka duubista, gaarsiinta iyo ururinta logyada. Dhab ahaantii, meesha lagu qoro, iyo sida loo dhiibo. Xaaladda ugu habboon waa marka mashruucyadu isticmaalaan maktabad isku mid ah. Waxaa jira maktabad u gaar ah Go, iyo maktabad gaar ah oo PHP ah. Qof kasta oo aan haysanno waa inuu isticmaalo. Waqtigan xaadirka ah, waxaan dhihi lahaa boqolkiiba 80 waan ku guuleysanay arrintan. Laakiin dadka qaarkiis waxay sii wadaan inay cunaan cacti.

Oo halkaas (boodhka dushiisa) "SLA ee geynta logyada" ayaa si dirqi ah u bilaabmaya inay soo baxaan. Weli ma jirto, laakiin waan ka shaqaynaynaa. Sababtoo ah aad bay ugu habboon tahay marka kaabayaasha dhaqaalaha ay yiraahdaan haddii aad ku qorto qaabkan iyo qaabkan oo kale iyo meel caynkaas ah oo aan ka badnayn fariimaha N ee ilbiriqsi kasta, markaa waxay u badan tahay inaan gaarsiinno meel noocaas ah. Tani waxay nasisaa madax xanuun badan. Haddii ay jirto SLA, markaa tani gabi ahaanba waa cajiib!

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Sideen ku bilownay in aan dhibaatada xalino? Dhibaatada ugu weyni waxay ahayd wakiilka td. Ma cadda halka ay geed-gooyadayadu aadeen. Ma la geeyaa? miyay socdaan? Aaway si kastaba? Sidaa darteed, qodobka ugu horreeya ayaa la go'aamiyay in la beddelo wakiilka td. Waxaan si kooban u qeexay fursadaha waxa lagu bedeli karo halkan.

Fluentd Ugu horrayn, waxa aan kula kulmay shaqo hore, isaga oo weliba si joogto ah halkaas ugu dhacay. Marka labaad, tani waa isku mid, kaliya profile.

Filebeat Sidee noogu habboonayd? Sababtoo ah waxay ku taal Go, waxaanan ku leenahay khibrad badan oo Go. Sidaas awgeed, haddii ay wax dhacaan, waxaynu si uun ugu dari karnaa nafteena. Taasi waa sababta aan u qaadan waynay. Si aysan xitaa u dhicin wax tijaabin ah inaad dib u qorto naftaada.

Xalka muuqda ee maamulaha nidaamka waa dhammaan noocyada syslogs ee tiradan (syslog-ng/rsyslog/nxlog).

Ama qor wax adiga kuu gaar ah, laakiin waan tuurnay kan, iyo sidoo kale garaacista. Haddii aad wax qorto, waxaa fiican inaad qorto wax faa'iido u leh ganacsiga. Si aad u geyso logyada, waxaa fiican inaad qaadato wax diyaarsan.

Sidaa darteed, doorashadu waxay dhab ahaantii hoos ugu dhacday doorashada u dhaxaysa syslog-ng iyo rsyslog. Waxaan u janjeersaday dhanka rsyslog si fudud sababtoo ah waxaan horey ugu haysanay fasalo rsyslog gudaha Puppet, manaan helin farqi muuqda oo u dhexeeya. Waa maxay syslog, waa maxay syslog. Haa, qaar waxay haystaan ​​dukumeenti ka sii xun, qaarna way ka fiican yihiin. Midkani sidan ayuu u samayn karaa, ka kalena si kale ayuu u samayn karaa.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Iyo wax yar oo ku saabsan rsyslog. Marka hore, way fiicantahay sababtoo ah waxay leedahay modules badan. Waxay haysataa RainerScript-ka biniaadmigu akhriyi karo (luqad qaabayn casri ah). Waa gunno cajiib ah oo aan ku dayan karno dhaqanka td-wakiilka iyadoo la adeegsanayo aaladaha caadiga ah, oo aan waxba iska beddelin codsiyada. Taasi waa, waxaan u beddelnaa td-wakiilka rsyslog, oo wax kasta oo kale ka tagno hadda. Oo isla markiiba waxaan helnaa gaarsiin shaqo. Marka xigta, mmnormalize waa shay cajiib ah oo ku jira rsyslog. Waxay kuu ogolaanaysaa inaad kala-soocdo diiwaannada, laakiin aadan isticmaalin Grok iyo regexp. Waxay samaysaa geed isku-duubni ah. Si la mid ah sida uu isu-dubariduhu u kala saaro ilaha. Tani waxay kuu ogolaaneysaa inaad si dhakhso ah u shaqeyso, isticmaasho CPU yar, iyo, guud ahaan, waa shay aad u fiican. Waxaa jira gunnooyin kale oo farabadan. Ma sii joogi doono iyaga.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

rsyslog waxay leedahay faa'iidooyin kale oo badan. Waxay la mid yihiin gunnada. Dhibaatooyinka ugu waaweyn ayaa ah inaad u baahan tahay inaad ogaato sida loo kariyo, oo aad u baahan tahay inaad doorato nooca.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Waxa aanu go'aansanay in aanu ku qori doono loga-gashiga godka unix. Oo aan ku jirin /dev/log, sababtoo ah halkaas waxaan ku haynaa khariidad diiwaanka nidaamka, joornaalka ayaa ku jira dhuumahaan. Markaa aan u qorno godad caadadii ah. Waxaan ku soo lifaaqi doonaa xeer gaar ah. Waxba yaan la faragelin. Wax walba waxay noqon doonaan kuwo hufan oo la fahmi karo. Taasi waa waxa aanu samaynay. Hagaha leh saldhigyadan waa la jaangooyay waxaana loo gudbiyaa dhammaan weelasha. Konteenarada waxay arki karaan godka ay u baahan yihiin, fur oo u qori karaan.

Waa maxay sababta aan file? Sababtoo ah qof kastaa wuu akhriyay maqaal ku saabsan Badushechka, kaas oo isku dayay in uu u gudbiyo fayl-ga docker, waxaana la ogaaday in ka dib markii uu dib u bilaabay rsyslog, faylka qeexaya uu bedelay, docker-kuna uu lumay faylkan. Wax kale ayay ka dhigtaa mid furan, laakiin ma aha godka ay wax ku qorayaan. Waxaan go'aansannay inaan ka shaqeyno dhibaatadan, isla markaana, aan ka shaqeyno sidii loo xallin lahaa dhibaatada xannibista.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Rsyslog waxa uu fuliyaa ficilada lagu tilmaamay bogga oo wuxuu u soo diraa diiwaannada mid ka mid ah gudbinta ama Kafka. Kafka waxay raacdaa jidkii hore. Relay - Waxaan isku dayay in aan isticmaalo rsyslog saafi ah si aan u gudbiyo logyada. La'aanteed Safka Fariimaha, adigoo isticmaalaya qalabka rsyslog ee caadiga ah. Asal ahaan, way shaqeysaa.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Laakiin waxaa jira nuances sida loo riixo qaybtan (Logstash/Graylog/ES). Qaybtan (rsyslog-rsyslog) waxa loo isticmaalaa inta u dhaxaysa xarumaha xogta. Halkan waxaa ah isku xirka tcp ee isku dhafan, kaas oo noo ogolaanaya inaan badbaadino xajmiyada iyo, sidaas awgeed, si uun kor loogu qaado suurtogalnimada inaan ka heli karno qaar ka mid ah diiwaannada xarun kale oo xog ah marka kanaalka la xiro. Sababtoo ah waxaan leenahay Indonesia, halkaas oo wax walba ay xun yihiin. Tani waa meesha dhibaatada joogtada ah ay taallo.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Waxaan ka fikirnay sida aan dhab ahaantii ula socon karno sida ay u badan tahay in diiwaannada aan ka duubnay arjiga ay gaari doonaan dhammaadka? Waxaan go'aansanay inaan abuurno cabbir. rsyslog waxa ay leedahay cutubka ururinta tirokoobyada u gaar ah, kaas oo ka kooban nooc ka mid ah xisaabiyeyaasha. Tusaale ahaan, waxay ku tusi kartaa cabbirka safka, ama inta farriimo ee soo gaadhay ficilkan iyo sida. Waxaad horeba wax uga qaadan kartaa. Intaa waxaa dheer, waxay leedahay xisaabiyeyaasha gaarka ah oo la habeyn karo, waxayna ku tusi doontaa, tusaale ahaan, tirada fariimaha API-ga qaarkood duubay. Marka xigta, waxaan ku qoray rsyslog_exporter Python, waxaanan u dirnay dhammaan Prometheus oo aan dhisnay garaafyo. Waxaan runtii rabnay cabbirada Graylog, laakiin ma aynaan helin wakhti aan ku dejino wali.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Dhibaatadu maxay ahaayeen? Dhibaatooyinku waxay soo baxeen markii aanu ogaanay (SI kedis ah!) in API-yadayada Live API ay qorayaan 50k farriimo ilbiriqsi kasta. Kani waa API Live ah oo keliya iyada oo aan habayn Graylog-na wuxuu ina tusayaa 12 kun oo farriimo ilbiriqsikiiba. Waxaana ka dhashay su'aal macquul ah oo ah: aaway haraadigii? Taas oo aan ku soo gabagabeynay in Graylog uusan si fudud ula qabsan karin. Waanu eegnay, oo, runtii, Graylog iyo Elasticsearch way xamili waayeen socodkan.

Marka xigta, daahfuryo kale ayaannu ku samaynay jidka.

Qoraallada godka ayaa xannibmay. Sidee ku dhacday? Markii aan isticmaalayey rsyslog si aan u keeno, mar uun kanaalka u dhexeeya xarumaha xogta ayaa jabay. Gaadhidii hal meel ayaa la joojiyey, meel kale ayaa la geeyey. Waxaas oo dhami waxay gaadheen mishiinka leh API-yada u qora godka rsyslog. Halkaas ayaa saf loo galay. Kadibna safka loogu talagalay in lagu qoro godka unix, kaas oo sida caadiga ah uu yahay 128 baakidh, ayaa la buuxiyay. Oo qor () xiga ee codsiga waa la xannibay. Markii aan eegnay maktabadda aan ku isticmaalno codsiyada Go, waxaa halkaas lagu qoray in qorista godka ay ku dhacdo qaab aan xannibin. Waxaan hubnay in aan waxba la xannibin. Sababtoo ah waan akhrinay maqaal ku saabsan Badushechkayaa wax ka qoray. Laakiin waxaa jira daqiiqad. Waxa kale oo jiray wareeg aan dhammaad lahayn oo ku wareegsan wicitaankan, kaas oo ay jirtay isku day joogto ah oo lagu riixayo farriinta godka. Annagu maanu dareensanayn isaga. Waxay ahayd inaan dib u qoro maktabadda. Wixii markaas ka dambeeyay dhowr jeer ayaa isbedelay, laakiin hadda waxaan ka takhalusnay xannibaadda dhammaan nidaamyada hoose. Sidaa darteed, waxaad joojin kartaa rsyslog, waxna ma dhicin.

Waa lagama maarmaan in la kormeero cabbirka safafka, taas oo ka caawisa in laga fogaado in lagu tallaabsado raafkan. Marka hore, waxaan la socon karnaa marka aan bilowno luminta fariimaha. Marka labaad, waxaan la socon karnaa inaan dhibaato kala kulanno dhalmada.

Iyo daqiiqad kale oo aan fiicneyn - kordhinta 10 jeer ee qaab dhismeedka microservice waa mid aad u fudud. Ma hayno codsiyo badan oo soo gala, laakiin sababta oo ah garaafka ay fariimahani ku sii socdaan, sababtoo ah diiwaannada gelitaanka, waxaan dhab ahaantii kordhineynaa culeyska log ilaa toban jeer. Nasiib darro, ma haysan wakhti aan ku xisaabiyo tirooyinka saxda ah, laakiin adeeg-yaraha ayaa ah waxa ay yihiin. Tani waa in maskaxda lagu hayaa. Waxa soo baxday in wakhtigan la joogo nidaamka hoosaadka ururinta logu uu yahay kan ugu badan ee Lazada.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Sida loo xalliyo dhibaatada elasticsearch? Haddii aad u baahan tahay inaad si deg deg ah u hesho logyada hal meel, si aadan ugu ordi dhammaan mishiinnada oo aad halkaas ku ururiso, isticmaal kaydinta faylka. Tani waa la dammaanad qaaday inay shaqeyso. Waxaa laga samayn karaa server kasta. Kaliya waxaad u baahan tahay inaad ku dhejiso saxanadaha oo aad rakibto syslog. Taas ka dib, waxaa laguu dammaanad qaadayaa inaad ku haysato dhammaan diiwaannada hal meel. Markaa si tartiib ah ayaad u habayn kartaa elasticsearch, graylog, iyo shay kale. Laakiin waxaad horey u haysan doontaa dhammaan diiwaannada, iyo, intaa dheer, waxaad ku kaydin kartaa ilaa inta ay jiraan qalabyo disk ah oo ku filan.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Waqtiga warbixintayda, nidaamku wuxuu bilaabay inuu u ekaado sidan. Waxaan si dhab ah u joojinay qoraalka faylka. Hadda, waxay u badan tahay, waan damin doonaa inta soo hartay. Mashiinnada maxalliga ah ee ku shaqeeya API-ga, waxaan joojin doonnaa qorista faylasha. Marka hore, waxaa jira kaydinta faylka, kaas oo si fiican u shaqeeya. Marka labaad, makiinadahani waxay si joogto ah u socdaan meel bannaan oo ay u baahan yihiin in si joogto ah loola socdo.

Qaybtan oo leh Logstash iyo Graylog, runtii way iska baxaysaa. Sidaa darteed, waxaan u baahanahay inaan ka takhalusno. Waa inaad doorataa hal shay.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Waxaan go'aansanay inaan tuurno Logstash iyo Kibana. Sababtoo ah waxaan leenahay waax amniga. Xiriirkee? Xidhiidhku waa in Kibana aan lahayn X-Pack iyo gaashaan la'aantu aanay kuu oggolaanayn inaad kala soocdo xuquuqda gelitaanka logyada. Taasi waa sababta aan u qaadanay Graylog. Way wada leedahay. Ma jecli, laakiin way shaqeysaa. Waxa aanu soo iibsanay qalab cusub, waxaanu ku rakibnay Graylog cusub waxaanan u wareejinay dhamaan qoraalada qaabab adag leh Graylog gaar ah. Waxaan ku xallinay dhibaatada noocyo kala duwan oo goobo isku mid ah si abaabulan.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Maxaa sida saxda ah loogu daray Graylog-ka cusub. Wax walba waxaanu ku qornay docker. Waxaan qaadnay farabadan oo adeegayaal ah, waxaan soo saarnay seddex tusaale oo Kafka ah, 7 nooc server-ka Graylog 2.3 (maxaa yeelay waxaan rabnay nooca Elasticsearch 5). Waxaas oo dhan waxaa la soo qaaday intii ay socdeen duullaannada HDD. Waxaan aragnay heerka tusmaynta ilaa 100 kun farriimaha ilbiriqsikiiba. Waxaan aragnay tirada in 140 terabytes oo xog ah todobaadkii.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Oo haddana qaadkii! Waxaan haynaa laba iib oo soo socda. Waxaan ka gudubnay 6 milyan oo fariimo ah. Graylog ma haysto wakhti uu wax ku calaliyo. Si uun waa inaan mar kale badbaadno.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Sidan ayaan ku badbaadnay. Waxaan ku darnay dhowr server iyo SSDs. Waqtigan xaadirka ah waxaan u nool nahay habkan. Hadda waxaan horay u ruugnay 160k farriimaha ilbiriqsikiiba. Weli maanu gaadhin xadka, markaa ma cadda inta aan dhab ahaantii ka bixi karno tan.

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Kuwani waa qorshayaashayada mustaqbalka. Kuwaas, waxa ugu muhiimsan malaha waa helitaan sare. Weli ma hayno. Dhowr baabuur ayaa si isku mid ah loo habeeyey, laakiin ilaa hadda wax kastaa waxay maraan hal baabuur. Waxay qaadataa wakhti in la sameeyo is-afgaranwaa dhexdooda ah.

Halbeegyada ka soo ururi Graylog.

Samee xadka si aan u helno hal API waalan oo aan dilin xajmigeena iyo wax kasta oo kale.

Ugu dambeyntiina, la saxiix nooc ka mid ah SLA horumariyeyaasha si aan ugu adeegno wax badan. Haddii aad wax badan qorto, markaa waan ka xumahay.

Oo qor dukumeenti

Yury Bushmelev "Khariidadda rake ee berrinkii ururinta iyo bixinta logyada" - qoraalka warbixinta

Si kooban, natiijada wax kasta oo aan la kulannay. Marka hore, heerarka. Marka labaad, syslog waa keega. Marka saddexaad, rsyslog wuxuu u shaqeeyaa sida saxda ah ee loogu qoray bogga. Oo aan u gudubno su'aalaha.

Su'aalahaada.

Su'aashaada: Maxaad u go'aansatay inaadan qaadan... (filebeat?)

Jawaab: Waxaan u baahanahay inaan u qorno fayl. Runtii ma rabin. Marka API-gaagu uu qoro kumanaan farriimo ilbiriqsikii, xitaa haddii aad beddesho hal mar saacaddii, tani wali ikhtiyaar maaha. Waxaad ku qori kartaa tuubo. Taas oo horumariyayaashu ay i waydiiyeen: "Maxaa dhacaya haddii habka aanu wax u qorayno uu burburo?" Kaliya ma aan helin waxaan ugu jawaabo, oo waxaan ku idhi: "Hagaag, ok, yeynan samayn taas."

Su'aashaada: Waa maxay sababta aad kaliya u qori la'aan logyada HDFS?

Jawaab: Tani waa marxaladda xigta. Waanu ka fikirnay bilawgii hore, laakiin maadaama wakhtigan xaadirka ah aanay jirin wax dhaqaale ah oo tan lagu sameeyo, waxay ku xidhan tahay xalkeena mustaqbalka fog.

Su'aashaada: Habka safka ayaa noqon lahaa mid ku habboon.

Jawaab: waan fahmay. Labada gacmoodba waanu u joognaa.

Su'aashaada: Waxaad wax u qoraysaa rsyslog. Halkaas waxaad isticmaali kartaa TCP iyo UDP labadaba. Laakiin haddii UDP, markaa sidee u dammaanad qaadayaa keenista?

Jawaab: Laba qodob ayaa jira. Marka hore, waxaan isla markiiba u sheegayaa qof walba in aanan dammaanad qaadin keenista geedaha. Sababtoo ah marka horumariyayaashu yimaadaan oo ay yiraahdaan: "Aan ku bilowno qorista xogta maaliyadeed halkaas, waxaadna meel noogu dhigi doontaa haddii ay wax dhacaan," waxaan ugu jawaabnaa, "Weyn! Aynu bilowno xannibaadda qoraalka ku saabsan godka, oo tan ku samee wax kala beddelasho, si aad dammaanad ugu noqoto inaad godka noogu dhejiso oo aad hubiso inaan ka helno dhinaca kale. Haddana, qof walba isla markiiba uma baahna. Haddii aysan lagama maarmaan ahayn, su'aalo noocee ah ayaan weydiineynaa? Haddii aadan rabin inaad dammaanad qaaddo qorista godka, markaa maxaan ugu baahanahay inaan dammaanad qaadno gaarsiinta? Waxaan sameyneynaa dadaalkayaga ugu wanaagsan. Waxaan runtii isku dayeynaa inaan gaarsiino inta ugu badan ee suurtogalka ah iyo sida ugu macquulsan, laakiin ma siineyno dammaanad 100% ah. Sidaa darteed, looma baahna in halkaas lagu qoro xogta maaliyadeed. Waxaa jira xog ururin la macaamiloon tan.

Su'aashaadaMarka API uu soo saaro qayb fariin ah oo ku jirta log-ka oo uu u wareejiyo kontoroolka adeegaha yar yar, miyaad la kulantay dhibaatada in fariimaha ka imanaya adeeg yar yar ay u yimaadaan nidaam khaldan? Tani waxay keenaysaa jahwareer.

Jawaab: Waa iska caadi in ay u kala amar qaataan. Waxaad u baahan tahay inaad tan u diyaargarowdo. Sababtoo ah gaarsiinta shabakad kasta ma dammaanad qaadayso nidaamka, ama waa inaad ku bixisaa agab gaar ah tan. Haddii aan qaadno kaydinta faylalka, markaas API kastaa wuxuu kaydiyaa diiwaannada faylalkiisa. Ama taa beddelkeeda, waxaa jira rsyslog u kala soocaa hagayaasha. API kastaa wuxuu leeyahay qoraallo u gaar ah, halkaas oo aad tagi karto oo aad eegi karto, ka dibna waxaad barbardhigi kartaa iyaga oo isticmaalaya shaambada wakhtiga ee logn. Haddii ay u fiirsadaan Graylog, ka dib waxaa lagu kala soocaa meesha wakhtiga shaambada. Wax walba halkaas ayey ku fiicnaan doonaan.

Su'aashaadaJadwalka wakhtiga wuxuu ku kala duwanaan karaa millise seconds.

JawaabJadwalka wakhtiga waxa soo saaray API laftiisa. Tani waa, dhab ahaantii, dhammaan barta. Waxaan leenahay NTP. API-gu waxa uu farriinta laftiisa ku abuuraa shaambad wakhti ah. rsyslog kuma darin.

Su'aashaada: Isdhexgalka ka dhexeeya xarumaha xogtu aad uma cadda. Gudaha xarunta xogta, waxay ku caddahay sida loo ururiyay iyo habka loo habeeyay. Sidee buu u dhacaa isdhexgalka xarumaha xogta? Mise xarun kasta oo xogeed ayaa nolosheeda ku nool?

Jawaab: Ku dhawaad Waddankeena, waddan kastaa wuxuu ku yaal hal xarun xogeed. Waqtigan xaadirka ah, ma hayno faafin si hal waddan uu ku yaal xarumo xogeed oo kala duwan. Sidaa darteed, looma baahna in la isku daro. Xarun kastaa waxay ku leedahay gudaha Log Relay. Kani waa adeegaha Rsyslog. Dhab ahaantii laba mishiin maamulka. Waxay leeyihiin dabeecad isku mid ah. Laakiin hadda, taraafiggu waxa uu maraa mid ka mid ah. Waxay isu geyneysaa dhammaan lo'da. Waxay haysataa saf saxan haddii ay dhacdo. Waxay soo dejisaa logyada waxayna u dirtaa xarunta dhexe ee xogta (Singapore), halkaasoo loo diro Graylog. Xarun walbana waxay leedahay kayd faylal u gaar ah. Haddii ay dhacdo in xiriirkayagu lumo, waxaan ku haynaa dhammaan diiwaannada halkaas. Halkaas ayay ku sii sugnaan doonaan. Halkaas ayaa lagu kaydin doonaa.

Su'aashaada: Haddii ay dhacdo xaalado aan caadi ahayn, ma waxaad ka heshaa qoraallo halkaas?

Jawaab: Waxaad aadi kartaa halkaas (halkaa kaydinta faylka) oo fiiri.

Su'aashaadaSideed ula socotaa inaadan lumin log-yada?

Jawaab: Runtii waanu luminaynaa, waanan la soconaa. Kormeerka ayaa la bilaabay bil ka hor. Maktabadda ay Go APIs isticmaalaan waxay leedahay cabbirro. Waxay tiri kartaa inta jeer ee ay awoodi wayday inay wax ku qorto godad. Hadda waxa jira heuristic xariif ah. Meeshaas waxaa yaal meel kayd ah. Waxay isku daydaa inay farriin ka qorto godka. Haddii kaydku buuxdhaafo, waxay bilaabataa inay tuurto iyaga. Wuuna tirinayaa inta uu tuuray. Haddii mitiradu ay bilaabaan inay ku qulqulaan halkaas, waan ogaan doonaa. Waxay hadda sidoo kale u imanayaan prometheus, oo waxaad arki kartaa garaafyada Grafana. Waxaad samayn kartaa digniino. Balse ilaa hadda ma cadda cidda loo dirayo.

Su'aashaada: Baaritaanka elasticsearch waxaad ku kaydinaysaa logyada iyadoo aan la badnayn. Immisa nuqul ayaad haysaa?

Jawaab: Hal xariiq.

Su'aashaadaKani ma hal sadar baa?

JawaabKani waa sayidkii iyo nuqulkii. Xogta waxa lagu kaydiyaa laba koobi.

Su'aashaada: Si uun ma u hagaajisay cabbirka kaydka rsyslog?

Jawaab: Waxaan ku qornaa datagrams godka unix ee caadada u ah. Tani waxay isla markiiba nagu soo rogtay xadka 128 kilobytes. Wax badan uma qori karno. Tan waxaan u qornay heerka caadiga ah. Kuwa doonaya inay kaydiyaan waxay qoraan 128 kilobytes. Maktabadaha, weliba, waa la gooyay, oo calan la saaray in farriinta la gooyo. Halbeeggeena fariinta lafteeda ayaa leh meel gaar ah oo tusinaysa in la jaray intii la duubayay iyo in kale. Markaa waxaan haysanaa fursad aan ku raadino waqtigan sidoo kale.

Su'aalMa qortaa JSON jaban?

JawaabJSON jabay midna waa la tuurayaa inta lagu guda jiro gudbinta sababtoo ah baakidhku aad buu u weyn yahay. Ama Graylog waa la tuurayaa sababtoo ah ma kala saari karo JSON. Laakiin waxaa jira nuances u baahan in la hagaajiyo, waxayna inta badan ku xiran yihiin rsyslog. Dhowr arrimood ayaan horey halkaas ugu soo buuxiyey, kuwaas oo weli u baahan in laga shaqeeyo.

Su'aal: Waa maxay sababta Kafka? Ma isku dayday RabbitMQ? Graylog miyuu ku guuldareystaa culeysyadan oo kale?

Jawaab: Annagu naguma shaqaynayso Graylog. Graylog-na wuu inoo qaabaynayaa. Runtii waa dhibaato Waa shay gaar ah. Iyo, dhab ahaantii, looma baahna. Waxaan doorbidi lahaa inaan si toos ah uga soo qoro rsyslog oo aan u diro elasticsearch ka dibna aan eego Kibana. Laakiin waxaan u baahanahay in aan arrinta ku xalino ilaalada. Tani waa ikhtiyaarka suurtagalka ah ee horumarkayaga, marka aan tuurno Graylog oo aan isticmaalno Kibana. Ma jirto wax faa'iido ah oo ku saabsan isticmaalka Logstash. Sababtoo ah waxaan ku samayn karaa wax la mid ah rsyslog. Waxayna leedahay moduleka wax loogu qoro elasticsearch. Waxaan isku dayeynaa inaan si uun ula noolaano Graylog. Xataa in yar ayaan hagaajinnay. Laakin wali waxaa jirta meel lagu hagaajin karo.

Ku saabsan Kafka. Sidan ayay u dhacday taariikh ahaan. Markii aan imid, horeba waa u jirtay, oo qoryo ayaa hore loogu qoray. Waxaan si fudud kor ugu qaadnay kooxdayada oo aan u guurnay geedo. Waxaan nahay maamulkiisa, waan ognahay sida uu dareemayo. Xagga RabbitMQ... noogama shaqayn RabbitMQ. RabbitMQ-na wuu inoo qaabaynayaa. Waxaan ku haynaa wax-soo-saar, dhibaatooyin ayaana ka jiray. Hadda, iibka ka hor, way soo jiidan jireen, oo wuxuu bilaabi jiray inuu si caadi ah u shaqeeyo. Laakiin ka hor diyaar uma ahayn inaan u sii daayo wax soo saarka. Waxaa jira hal dhibic oo kale. Graylog waxa uu akhriyi karaa AMQP nooca 0.9, rsyslog-na waxa uu qori karaa nooca AMQP 1.0. Mana jiro hal xal oo dhexda ka jira oo labadaba qaban kara. Waa mid ama mid kale. Sidaa darteed, hadda kaliya Kafka. Laakiin sidoo kale waxay leedahay nuances u gaar ah. Sababtoo ah omkafka ee nooca rsyslog ee aan isticmaalno waxay lumin kartaa dhammaan fariinta kaydisa ee ay ka soo saartay rsyslog. Inta aan u dulqaadanayno.

Su'aal: Ma waxaad isticmaashaa Kafka sababtoo ah mar hore ayaad haysatay? Looma isticmaalin ujeedo kasta?

JawaabKafka, taas oo ahayd, ay isticmaalaan kooxda Sayniska Xogta. Tani waa mashruuc gebi ahaanba gooni ah, kaas oo, nasiib daro, waxba ma odhan karo. Ma garanayo. Waxaa waday kooxda Sayniska Xogta. Markii la sameeyay logyada, waxaan go'aansanay inaan isticmaalno si aan u rakibin annaga. Hadda waxaan dib u cusbooneysiinay Graylog, waxaana luminay iswaafajinta sababtoo ah waxay leedahay nooc hore oo Kafka ah. Waxay ahayd in aan iskaa u bilowno. Isla mar ahaantaana, waxaan ka takhalusnay afartan mawduuc API kasta. Waxa aanu samaynay hal mawduuc oo balaadhan oo dhamaan nool ah, hal mawduuc oo balaadhan oo loogu talagalay dhammaan diyaarinta oo wax walba halkaa dhig. Graylog ayaa waxaas oo dhan u xoqay si barbar socda.

Su'aal: Maxaan ugu baahanahay shamanism-ka leh saldhigyada? Ma isku dayday inaad u isticmaasho darawalka syslog log ee weelasha?

Jawaab: Wakhtiga aan weydiinay su'aashan, xiriirka naga dhexeeya docker-ka wuxuu ahaa mid kacsan. Waxay ahayd docker 1.0 ama 0.9. Docker lafteedu waxay ahayd yaab. Marka labaad, haddii aad sidoo kale riixdo logyada gudaha ... Waxaan qabaa shaki aan la xaqiijin oo ah in ay dhaafto dhammaan logyada lafteeda, iyada oo loo marayo docker daemon. Haddii hal API uu waalan yahay, markaa inta kale ee API-yada waxay ku xayiran yihiin xaqiiqda ah inaysan soo diri karin stdout iyo stderr. Ma garanayo meesha ay tani horseedi doonto. Waxaan qabaa shaki heerka dareenka ah inaan loo baahnayn isticmaalka darawalka syslog ee Docker meeshan. Waaxdayada imtixaanada shaqaynaysa waxay leedahay kutlada Graylog-ga oo u gaar ah oo leh logyo. Waxay adeegsadaan darawallada log Docker wax walbana waxay u muuqdaan inay halkaas ku fiican yihiin. Laakiin isla markiiba waxay u qoraan GELF Graylog. Waqtigaas oo aan bilownay waxaas oo dhan, waxaan u baahneyn kaliya inay shaqeyso. Waxaa laga yaabaa in hadhow, marka qof yimaado oo uu yiraahdo boqol sano ayay si fiican u shaqaynaysay, waanu isku dayi doonaa.

Su'aal: Waxaad u gudbinaysaa xarumaha xogta adoo isticmaalaya rsyslog. Waa maxay sababta Kafka?

Jawaab: Labadeenaba run ahaantii waan samaynaa. Laba sababood dartood. Haddii kanaalka uu gabi ahaanba dhintay, markaa dhammaan diiwaannadayada, xitaa qaab isku dhafan, ma dhex gurguuran doonaan. Kafkana wuxuu kuu ogolaanayaa inaad si fudud u lumiso habka. Sidan ayaanu uga takhalusnaa geedahaan ku dheggan. Kaliya waxaan u isticmaaleynaa Kafka si toos ah kiiskan. Haddii aan haysano kanaal wanaagsan oo aan rabno inaan xoreyno, markaa waxaan isticmaalnaa rsyslog. Laakiin dhab ahaantii, waad u habayn kartaa si ay lafteedu u dhacdo waxa aan ku habboonayn. Waqtigan xaadirka ah, waxaan si toos ah u isticmaalnaa gaarsiinta rsyslog meel, iyo Kafka meel.

Source: www.habr.com

Add a comment