Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Ny logs dia ampahany manan-danja amin'ny rafitra, mamela anao hahatakatra fa miasa (na tsy mandeha) araka ny nantenaina. Eo ambanin'ny fepetra momba ny maritrano microservice, ny fiasana amin'ny hazo dia lasa fitsipi-pifehezana manokana amin'ny Olympiad manokana. Betsaka ny olana mila vahana:

  • ny fomba fanoratana logs avy amin'ny fampiharana;
  • aiza no hanoratana diary;
  • ny fomba hanaterana lozisialy ho fitehirizana sy fanodinana;
  • ny fomba fikarakarana sy fitehirizana logs.

Ny fampiasana ny teknolojia containerization malaza amin'izao fotoana izao dia manampy fasika eo an-tampon'ny rake amin'ny sehatry ny safidy hamahana ny olana.

Izany indrindra no resahin'ny rakitsoratry ny tatitra nataon'i Yuri Bushmelev "Sarintanin'ny rakes eo amin'ny sehatry ny fanangonana sy fanaterana hazo".

Iza no mikarakara, azafady eo ambanin'ny saka.

Yuri Bushmelev no anarako. Miasa ao amin'ny Lazada aho. Androany aho dia hiresaka momba ny fomba nanaovanay ny diantsika, ny fomba nanangonantsika azy ireo, ary ny zavatra soratanay ao.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Avy aiza isika? Iza moa isika? Lazada no mpivarotra an-tserasera #1 any amin'ny firenena enina any Azia Atsimo Atsinanana. Ireo firenena rehetra ireo dia zaraina amin'ny foibe data. Misy foibe data 4 ankehitriny. Nahoana no zava-dehibe izany? Satria ny fanapahan-kevitra sasany dia noho ny fisian'ny fifandraisana tena malemy eo amin'ireo foibe. Manana maritrano microservice izahay. Gaga aho nahita fa efa manana microservices 80 izahay. Rehefa nanomboka ny asa tamin'ny hazo aho dia tsy nisy afa-tsy 20 izy ireo. Plus, misy ampahany lehibe amin'ny PHP lova, izay tsy maintsy iainako sy iaretako ihany koa. Izany rehetra izany dia miteraka hafatra mihoatra ny 6 tapitrisa isa-minitra ho antsika amin'izao fotoana izao ho an'ny rafitra manontolo. Hasehoko koa ny fomba fiezahantsika hiaina amin'izany, ary nahoana no toy izany.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Tsy maintsy miaina miaraka amin'ireo hafatra 6 tapitrisa ireo ianao. Inona no tokony hataontsika amin'izy ireo? Hafatra 6 tapitrisa ilainao:

  • alefaso avy amin'ny app
  • manaiky ny fanaterana
  • fanaterana ho an'ny fanadihadiana sy fitahirizana.
  • hamakafaka
  • mitahiry na inona na inona.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Rehefa nisy hafatra telo tapitrisa dia nitovy ny fijery ahy. Satria nanomboka tamin'ny vola kely izahay. Mazava fa voasoratra ao ny log de application. Ohatra, tsy afaka mifandray amin'ny angon-drakitra, afaka mifandray amin'ny angon-drakitra, fa tsy afaka namaky zavatra. Saingy ankoatr'izany, ny tsirairay amin'ireo microservices dia manoratra diary fidirana ihany koa. Ny fangatahana tsirairay tonga amin'ny microservice dia miditra ao anaty log. Nahoana isika no manao izany? Tian'ny developer ho afaka trace. Ny lozisialy fidirana tsirairay dia misy ny saha traceid, izay ahafahan'ny interface manokana manafoana ny rojo manontolo ary mampiseho tsara ny trace. Ny dian dia mampiseho ny fandehan'ny fangatahana, ary izany dia manampy ny mpamorona anay hiatrika haingana ny fako tsy fantatra.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Ahoana ny fomba fiaina miaraka aminy? Ankehitriny aho dia mamaritra fohifohy ny sehatry ny safidy - ny fomba hamahana ity olana ity amin'ny ankapobeny. Ahoana ny famahana ny olana amin'ny fanangonana, famindrana ary fitehirizana hazo.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Ahoana ny fanoratana avy amin'ny fampiharana? Mazava fa misy fomba samihafa. Indrindra indrindra, misy ny fanao tsara indrindra, araka ny lazain'ireo mpiara-dia amin'ny lamaody. Misy karazany roa ny sekoly tranainy, hoy ny raibe. Misy fomba hafa.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Mitovy ihany ny zava-misy amin'ny fanangonana hazo. Tsy misy safidy maro hamahana ity ampahany manokana ity. Efa betsaka izy ireo, saingy mbola tsy dia maro loatra.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Saingy miaraka amin'ny fanaterana sy ny famakafakana manaraka dia manomboka mipoaka ny isan'ny fiovaovana. Tsy hilazalaza ny safidy tsirairay aho izao. Heveriko fa ny safidy lehibe dia fantatry ny rehetra izay liana tamin'ilay lohahevitra.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Hasehoko anao ny fomba nanaovanay izany tao amin'ny Lazada sy ny nanombohan'izany rehetra izany.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Herintaona lasa izay, tonga tany Lazada aho ary nalefa tany amin'ny tetikasa log. Toy izany tany izany. Ny log avy amin'ny fampiharana dia nosoratana tamin'ny stdout sy stderr. Ny zava-drehetra dia natao tamin'ny fomba lamaody. Saingy avy eo dia noroahin'ny mpamorona avy amin'ny renirano mahazatra izany, ary avy eo ireo manam-pahaizana momba ny fotodrafitrasa dia hamantatra izany. Eo anelanelan'ny manam-pahaizana manokana momba ny fotodrafitrasa sy ny mpamorona, dia misy ihany koa ny mpanafaka izay nilaza hoe: "eh ... eny, andeha hofonosintsika anaty rakitra miaraka amin'ny akorandriaka izy ireo, dia izay ihany." Ary satria ao anaty kaontenera izany rehetra izany, dia nofonosiny tao anaty kaontenera mihitsy ilay izy, nanao sarintany ny lahatahiry tao anatiny ary napetrany tao. Heveriko fa mazava ho an'ny rehetra ny zava-nitranga.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Andeha isika hijery lavitra. Ahoana no nanaterana ireo diary ireo. Nisy olona nifidy td-agent, izay tena mahay tsara nefa tsy tena mahay. Mbola tsy azoko ny ifandraisan'ireo tetikasa roa ireo, saingy toa mitovy ihany izy ireo. Ary ity fluentd ity, nosoratana tamin'ny Ruby, dia namaky ny rakitra log, namaky azy ireo tao amin'ny JSON tamin'ny fampiasana karazana fanehoan-kevitra mahazatra. Nalefa tany Kafka izy ireo avy eo. Ankoatra izany, tao Kafka, nanana lohahevitra 4 misaraka ho an'ny API tsirairay izahay. Nahoana no 4? Satria misy mivantana, misy fampisehoana, ary satria misy stdout sy stderr. Mamokatra azy ireo ny mpamorona, ary tsy maintsy mamorona azy ireo ao Kafka ny mpiasan'ny fotodrafitrasa. Ambonin'izany, ny Kafka dia nofehezin'ny departemanta hafa. Noho izany dia nilaina ny namorona tapakila mba hamoronana lohahevitra 4 ho an'ny api tsirairay. Adinon’ny rehetra izany. Amin'ny ankapobeny dia fako sy fako izany.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Inona no nataonay nanaraka izany? Nalefanay tany kafka. Avy any Kafka, ny antsasaky ny hazo dia nanidina nankany Logstash. Nozaraina ny antsasany hafa. Ny sasany dia nanidina nankany amin'ny Graylog iray, ny sasany nankany amin'ny Graylog iray hafa. Vokatr'izany dia nanidina tao anaty cluster Elasticsearch iray izany rehetra izany. Izany hoe, nianjera tamin’ny farany teo ireo korontana rehetra ireo. Tsy voatery hanao izany ianao!

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Toy izao ny endriny rehefa jerena avy any ambony. Tsy voatery hanao izany ianao! Eto, ireo faritra misy olana dia voamarika avy hatrany amin'ny isa. Raha ny marina dia maro kokoa izy ireo, fa ny 6 no tena manahirana, izay tokony hatao. Hiresaka momba azy ireo aho izao.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Eto (1,2,3) dia manoratra rakitra izahay ary, araka izany, misy rake telo eto indray mandeha.

Ny voalohany (1) dia mila manoratra azy ireo any ho any. Tsy ilaina foana ny manome API fahafahana manoratra mivantana amin'ny rakitra iray. Irina ny hitoka-monina ao anaty fitoeran-javatra iray ny API, ary tsara kokoa aza, mba ho vakiana fotsiny. Administrator rafitra aho, noho izany dia manana fomba fijery hafa kely momba ireo zavatra ireo aho.

Ny teboka faharoa (2,3) dia ny hoe manana fangatahana be dia be amin'ny API izahay. Ny API dia manoratra angona betsaka amin'ny rakitra iray. Mitombo ny rakitra. Mila manodina azy ireo isika. Satria raha tsy izany dia tsy afaka mitahiry kapila ao ianao. Ratsy ny fihodinana azy ireo satria alefa amin'ny alàlan'ny akorany mankany amin'ny lahatahiry iray. Tsy misy fomba ahafahantsika manodina azy. Tsy azonao atao ny milaza amin'ny fampiharana hanokatra indray ny tantana. Satria ny mpamorona dia hijery anao toy ny adala: "Famaritana inona? Matetika izahay dia manoratra amin'ny stdout. Ny rafitra dia nanao copytruncate ho logrotate, izay manao dika mitovy amin'ny rakitra ary mametraka ny tany am-boalohany. Noho izany, eo anelanelan'ireo dingana fanaovana kopia ireo, matetika dia lany ny habaka kapila.

(4) Nanana endrika samihafa izahay tamin'ny API samihafa. Hafa kely izy ireo, saingy tsy maintsy hafa ny fanoratana regexp. Koa satria saribakoly no nitantana izany rehetra izany, dia nisy kilasy maromaro niaraka tamin'ny kalalaony manokana. Ambonin'izany, ny td-agent matetika dia afaka mihinana fahatsiarovana, ho adala, afaka mody miasa fotsiny izy fa tsy manao na inona na inona. Ety ivelany dia tsy azo takarina hoe tsy nanao na inona na inona izy. Raha ny tsara indrindra dia hianjera izy, ary hisy haka azy any aoriana. Ny marimarina kokoa, hisy fanairana hiditra, ary hisy olona handeha hanainga izany amin'ny tanany.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

(6) Ary ny fako sy fako indrindra - dia ny elasticsearch. Satria dikan-teny taloha ilay izy. Satria tsy nanana tompo voatokana izahay tamin’izany. Nanana logs heterogène izahay izay mety hifanindry ny saha. Mety ho soratana miaraka amin'ny anaran'ny saha mitovy ny diarin'ny fampiharana samihafa, saingy mety hisy angona hafa ao anatiny. Izany hoe, ny log iray dia tonga miaraka amin'ny Integer amin'ny saha iray, ohatra, ny haavony. Log iray hafa dia tonga miaraka amin'ny String ao amin'ny sehatra ambaratonga. Amin'ny tsy fisian'ny sarintany static dia misy zavatra mahafinaritra toy izany. Raha, aorian'ny fihodinan'ny index, misy hafatra misy tady tonga voalohany amin'ny elasticsearch, dia miaina ara-dalàna isika. Ary raha tonga miaraka amin'ny Integer ilay voalohany, dia ariana tsotra izao ny hafatra rehetra tonga miaraka amin'ny String. Satria tsy mifanaraka ny karazana saha.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Nanomboka nametraka ireo fanontaniana ireo izahay. Nanapa-kevitra ny tsy hitady izay meloka izahay.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Misy zavatra tokony hatao anefa! Ny zavatra mazava dia mila mametraka fenitra isika. Efa nanana fenitra izahay. Ny sasany nentinay taty aoriana kely. Soa ihany fa efa nankatoavina tamin'izany fotoana izany ny endrika log iray ho an'ny API rehetra. Voasoratra mivantana ao amin'ny fenitry ny fifandraisan'ny serivisy izany. Noho izany, ireo izay te-handray dia tokony hanoratra izany amin'ny endrika ity. Raha misy olona tsy manoratra logs amin'ity endrika ity dia tsy miantoka na inona na inona izahay.

Fanampin'izay, tiako ny hanana fenitra tokana ho an'ny fomba fandraketana, fanaterana ary fanangonana diary. Raha ny marina, aiza no hanoratana azy ireo, ary ny fomba hanaterana azy ireo. Ny toe-javatra mety indrindra dia rehefa mampiasa tranomboky mitovy ny tetikasa. Misy trano famakiam-boky mitokana ho an'ny Go, misy tranomboky mitokana ho an'ny PHP. Izay rehetra ananantsika, ny tsirairay dia tokony hampiasa azy ireo. Amin'izao fotoana izao dia lazaiko fa mahomby amin'ny 80 isan-jato isika. Saingy ny sasany dia manohy mihinana cacti.

Ary eo (eo amin'ny slide) dia zara raha manomboka miseho ny "SLA ho an'ny fandefasana log". Mbola tsy ao izany fa eo am-panaovana izany izahay. Satria tena mety rehefa miteny ny infra fa raha manoratra amin'ny endrika toy izao ianao amin'ny toerana toy izao ary tsy mihoatra ny hafatra N isan-tsegondra, dia azo inoana fa any no hanaterana azy. Manala aretin'andoha be izany. Raha misy SLA dia tena tsara!

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Ahoana no nanombohantsika namaha ny olana? Ny rake lehibe dia niaraka td-agent. Tsy fantatra mazava hoe aiza no alehan'ny kitay. Aterina ve izy ireo? Handeha ve izy ireo? Aiza izy ireo? Noho izany dia nanapa-kevitra ny hanolo td-agent amin'ny singa voalohany. Safidy amin'izay hanoloana azy, nosoratako fohifohy teto.

Fluentd. Voalohany, nifanena taminy tamin'ny asa teo aloha aho, ary nianjera teo koa izy indraindray. Faharoa, zavatra mitovy ihany io, ao amin'ny profil ihany.

filebeat. Ahoana no nahasoa antsika? Ny zava-misy fa ao amin'ny Go izy, ary manana fahaiza-manao lehibe amin'ny Go izahay. Noho izany, raha misy, dia afaka manampy izany amin'ny tenantsika. Izay no tsy noraisinay. Mba tsy hisian'ny fakam-panahy hanomboka hanoratra izany ho anao.

Ny vahaolana mazava ho an'ny mpitantana ny rafitra dia ny karazana syslogs rehetra amin'ity isa ity (syslog-ng/rsyslog/nxlog).

Na manoratra zavatra ho anao manokana, fa narianay ity, ary koa ny filebeat. Raha manoratra zavatra ianao dia tsara kokoa ny manoratra zavatra mahasoa ho an'ny orinasa. Mba hanaterana hazo dia tsara kokoa ny maka zavatra efa vita.

Noho izany, ny safidy dia tonga amin'ny safidy eo amin'ny syslog-ng sy rsyslog. Niantehitra tamin'ny rsyslog fotsiny aho satria efa nanana kilasy ho an'ny rsyslog tao amin'ny Puppet izahay, ary tsy nahita fahasamihafana mazava teo amin'izy ireo aho. Inona ny syslog, inona ny syslog. Eny, ratsy kokoa ny antontan-taratasy sasany, tsara kokoa ny sasany. Mahalala izany fomba izany izy, ary tsy mitovy ny fomba fanaony.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Ary kely momba ny rsyslog. Voalohany, mangatsiatsiaka satria manana modules maro izy. Manana RainerScript (fitenim-pandaminana maoderina) izy io. Ny tombony mahafinaritra dia ny ahafahantsika maka tahaka ny fitondran-tenan'ny td-agent miaraka amin'ny fitaovana mahazatra azy, ary tsy misy fiovana ho an'ny fampiharana. Izany hoe, manova ny td-agent ho rsyslog isika, ary mbola tsy hikasika ny zavatra hafa rehetra. Ary avy hatrany dia mahazo fanaterana miasa izahay. Manaraka, mmnormalize no zavatra mahafinaritra momba ny rsyslog. Mamela anao hamakivaky logs, fa tsy amin'ny Grok sy regexp. Manamboatra hazo syntax abstract izy io. Izy io dia mamaha ny logs amin'ny fomba mitovy amin'ny fanaparitahana ny code source. Izany dia ahafahanao miasa haingana be, mihinana CPU kely, ary, amin'ny ankapobeny, zavatra tena mahafinaritra. Misy karazana bonus hafa. Tsy hieritreritra azy ireo aho.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

rsyslog dia manana fatiantoka maro hafa. Mitovy amin'ny bonus ihany izy ireo. Ny tena olana dia ny hoe mila mahafantatra ny fomba fahandro azy, ary mila mifidy ny dikan.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Nanapa-kevitra izahay fa hanoratra logs amin'ny socket unix. Ary tsy ao amin'ny / dev / log, satria misy fikorontanan'ny logs system, misy diary ao amin'ity fantsona ity. Andao àry hanoratra amin'ny socket mahazatra. Ampifandraisinay amin'ny fitsipika mitokana izany. Aoka isika tsy hitsabaka na inona na inona. Ho mangarahara sy ho takatry ny saina ny zava-drehetra. Ka tena nanao izany izahay. Ny lahatahiry misy ireo faladia ireo dia manara-penitra ary alefa any amin'ny kaontenera rehetra. Ny kaontenera dia afaka mahita ny socket ilainy, misokatra ary manoratra azy.

Nahoana no tsy misy rakitra? Satria efa namaky ny rehetra lahatsoratra momba an'i Badushechka, izay nanandrana nandefa ilay rakitra tany amin'ny docker, ary nahita fa taorian'ny nanombohan'ny rsyslog dia niova ny mpamoritra rakitra, ary very ity rakitra ity. Manokatra zavatra hafa izy, fa tsy ny socket izay anoratana azy. Nanapa-kevitra izahay fa handalo ity olana ity, ary, miaraka amin'izay koa, handalo ny olana amin'ny fanakanana.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Rsyslog dia manao ireo hetsika voalaza ao amin'ny slide ary mandefa logs amin'ny relay na Kafka. Kafka dia manaraka ny fomba taloha. Rayleigh - Nanandrana nampiasa rsyslog madio aho mba hanaterana logs. Tsy misy Message Queue, mampiasa fitaovana rsyslog mahazatra. Amin'ny ankapobeny dia miasa izany.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Saingy misy ny nuances amin'ny fomba fametahana azy ireo any aoriana any amin'ity ampahany ity (Logstash / Graylog / ES). Ity ampahany (rsyslog-rsyslog) ity dia ampiasaina eo anelanelan'ny ivontoerana data. Ity misy rohy tcp compressed, izay ahafahanao mitahiry bandwidth ary, araka izany, dia mampitombo ny mety hahazoana logs sasany avy amin'ny foibe data hafa rehefa feno ny fantsona. Satria manana Indonezia isika, izay ratsy ny zava-drehetra. Eo no mipetraka ny olana tsy tapaka.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Nieritreritra ny fomba tena hanaraha-maso izahay, ary inona no mety hahatongavan'ny diary noraketinay avy amin'ny fampiharana amin'io farany io? Nanapa-kevitra ny hanomboka metrika izahay. Rsyslog dia manana ny maodely fanangonana antontan'isa manokana, izay misy karazana kaontera. Ohatra, afaka mampiseho anao ny haben'ny filaharana, na ny isan'ny hafatra niditra ho an'ny hetsika toy izao sy izao. Afaka maka zavatra amin'izy ireo ianao. Fanampin'izay, manana kaontera mahazatra azonao amboarina izy io, ary hampiseho aminao, ohatra, ny isan'ny hafatra noraketin'ny API sasany. Avy eo, nanoratra rsyslog_exporter tamin'ny Python aho, ary nalefanay tany amin'ny Prometheus izany rehetra izany ary nanao tetika. Tena naniry ny metrika Graylog izahay, saingy mbola tsy manam-potoana hananganana azy ireo hatramin'izao.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Inona avy ireo olana? Nipoitra ny olana tamin'ny fahafantaranay (TONGANA!) fa ny Live API-nay dia manoratra hafatra 50k isan-tsegondra. Live API ihany no tsy misy fandaharana. Ary hafatra 12 arivo isan-tsegondra ihany no asehon'i Graylog antsika. Ary nipoitra ny fanontaniana mitombina, aiza ny sisa tavela? Avy amin'izany no nanatsoaka hevitra fa tsy afaka miatrika tsotra izao ny Graylog. Nijery izahay, ary, i Graylog miaraka amin'ny Elasticsearch dia tsy nahafehy an'io zotra io.

Manaraka izany, zavatra hitanay teny an-dalana.

Voasakana ny fanoratana amin'ny socket. F'ahoana no nahatonga an'io? Rehefa nampiasa rsyslog aho tamin'ny fanaterana, dia nisy fotoana nanapaka ny fantsona teo anelanelan'ny foibe angona. Niakatra tany amin'ny toerana iray ny fanaterana, tany amin'ny toerana hafa ny fanaterana. Izany rehetra izany dia tonga amin'ny milina misy API izay manoratra amin'ny socket rsyslog. Nisy filaharana. Avy eo dia feno ny filaharana hanoratana ny socket unix, izay fonosana 128 amin'ny alàlan'ny default. Ary ny fanoratana manaraka () ao amin'ny sakana fampiharana. Rehefa nijery ny trano famakiam-boky izay ampiasainay amin'ny fampiharana Go izahay, dia voasoratra tao fa ny fanoratana amin'ny socket dia mitranga amin'ny fomba tsy manakana. Natoky izahay fa tsy nisy voasakana. Satria efa namaky isika lahatsoratra momba an'i Badushechkaizay nanoratra momba izany. Saingy misy fotoana iray. Nisy ihany koa ny loop tsy manam-petra nanodidina ity antso ity, izay nisy fikasana tsy tapaka hanosika hafatra ho ao amin'ny socket. Tsy nahatsikaritra azy izahay. Tsy maintsy namerina nanoratra ny tranomboky aho. Nanomboka teo dia niova imbetsaka izany, fa ankehitriny dia nesorintsika ny hidin-trano amin'ny subsystem rehetra. Noho izany, azonao atao ny manakana ny rsyslog ary tsy hisy na inona na inona hianjera.

Ilaina ny manara-maso ny haben'ny filaharana, izay manampy mba tsy hanitsaka an'io rake io. Voalohany, afaka manara-maso isika rehefa manomboka very hafatra. Faharoa, afaka manara-maso isika fa manana olana amin'ny fanaterana.

Ary fotoana iray hafa tsy mahafinaritra - ny fanamafisana in-10 amin'ny maritrano microservice dia tena mora. Tsy dia manana fangatahana miditra be loatra izahay, fa noho ny kisary miaraka amin'ireo hafatra ireo dia mandeha lavitra kokoa, noho ny alalàn'ny fidirana, dia mampitombo avo folo heny eo ho eo ny entana ao amin'ny log. Indrisy anefa fa tsy nanam-potoana nikajy ny isa marina aho, fa ny microservices no izy ireo. Tokony hotadidina izany. Hita fa amin'izao fotoana izao dia ny subsystem fanangonana log no be entana indrindra ao amin'ny Lazada.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Ahoana no hamahana ny olan'ny elasticsearch? Raha mila maka logs haingana amin'ny toerana iray ianao, mba tsy hihazakazaka manerana ny milina rehetra ary hanangona azy ireo any, ampiasao ny fitehirizana rakitra. Azo antoka fa miasa izany. Atao amin'ny mpizara rehetra izany. Mila mametraka disks eo fotsiny ianao ary mametraka syslog. Aorian'izay dia azo antoka fa manana ny logs rehetra amin'ny toerana iray ianao. Avy eo dia azo atao ny manitsy tsikelikely ny elasticsearch, greylog, na zavatra hafa. Saingy efa manana ny logs rehetra ianao, ary ankoatra izany, azonao atao ny mitahiry azy ireo, raha toa ka ampy ny array disk.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Tamin'ny fotoana nanaovana ny tatitra nataoko dia nanomboka nitovy tamin'izany ilay tetika. Saika nijanona tsy nanoratra tamin'ilay rakitra izahay. Ankehitriny, azo inoana fa hovonoinay ny sisa tavela. Amin'ny milina eo an-toerana mitantana ny API dia hijanona tsy hanoratra amin'ny rakitra izahay. Voalohany, misy fitehirizana rakitra, izay miasa tsara. Faharoa, ireo milina ireo dia lany foana ny toerana, mila manara-maso izany tsy tapaka.

Ity ampahany miaraka amin'ny Logstash sy Graylog ity dia tena miala. Noho izany, mila manala izany isika. Tsy maintsy misafidy zavatra iray ianao.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Nanapa-kevitra ny hanary an'i Logstash sy Kibana izahay. Satria manana sampana fiarovana izahay. Inona no fifandraisana? Ny fifandraisana dia ny Kibana tsy misy X-Pack sy tsy misy Shield dia tsy mamela anao hanavaka ny zo fidirana amin'ny logs. Noho izany dia naka Graylog izy ireo. Manana izany rehetra izany. Tsy tiako, fa miasa. Nividy fitaovana vaovao izahay, nametraka Graylog vaovao teo, ary nafindranay tany amin'ny Graylog mitokana ny logs rehetra misy endrika hentitra. Namaha ny olana tamin'ny karazana sehatra mitovy izahay.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Inona marina no tafiditra ao amin'ny Graylog vaovao. Nanoratra ny zava-drehetra tao amin'ny docker izahay. Naka mpizara maromaro izahay, namoaka tranga Kafka telo, 7 Graylog servers version 2.3 (satria tiako ny Elasticsearch version 5). Izany rehetra izany dia natsangana tamin'ny fanafihana avy amin'ny HDD. Hitanay ny tahan'ny fanondroana hafatra hatramin'ny 100 arivo isan-tsegondra. Hitanay ny tarehimarika fa 140 terabytes data isan-kerinandro.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Ary indray ny rake! Manana varotra roa ho avy izahay. Nifindra mihoatra ny hafatra 6 tapitrisa izahay. Graylog tsy manam-potoana hitsakoana. Na ahoana na ahoana dia tsy maintsy miaina indray isika.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Izany no niainanay. Nampiana mpizara sy SSD vitsivitsy hafa. Amin'izao fotoana izao dia miaina tahaka izao isika. Ankehitriny isika dia efa mitsako hafatra 160k isan-tsegondra. Mbola tsy nahatratra ny fetra isika, ka tsy fantatra mazava hoe ohatrinona no azontsika hivoahana amin'izany.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Ireo no drafitry ny ho avy. Amin'ireo, raha ny marina, ny tena zava-dehibe dia angamba ny fisian'ny avo. Mbola tsy manana izany isika. Fiara maromaro no amboarina mitovy, saingy mandeha amin'ny fiara iray ny zava-drehetra. Ilaina ny mandany fotoana hananganana failover eo amin'izy ireo.

Angony ny metrika avy amin'ny Graylog.

Manaova fetran'ny sarany mba hananantsika API adala iray izay tsy mamono ny bandwidth sy ny zavatra hafa rehetra.

Ary farany, sonia karazana SLA miaraka amin'ireo mpamorona mba hahafahantsika manompo betsaka. Raha manoratra bebe kokoa ianao dia miala tsiny.

Ary manorata antontan-taratasy.

Yury Bushmelev "Sarintanin'ny rake eo amin'ny sehatry ny fanangonana sy fanaterana hazo" - fandikana ny tatitra

Raha fintinina, ny vokatry ny zavatra rehetra niainantsika. Voalohany, fenitra. Faharoa, ny syslog dia mofomamy. Fahatelo, rsyslog dia miasa araka ny voasoratra ao amin'ny slide. Ary andao hiroso amin’ny fanontaniana.

Ny fanontanianao.

Ny fanontanianao: Nahoana izy ireo no nanapa-kevitra ny tsy handray ... (filebeat?)

valiny: Mila manoratra amina rakitra. Tena tsy tiako izany. Rehefa manoratra hafatra an'arivony isan-tsegondra ny API-nao, na dia mihodina indray mandeha isan'ora aza ianao, dia mbola tsy safidy izany. Afaka manoratra amin'ny fantsona ianao. Nanontany ahy ny mpamorona hoe: "Inona no hitranga raha milatsaka ny dingana anoratantsika"? Tsy hitako izay havaliko azy ireo, ary hoy aho hoe: "Eny ary, aoka isika tsy hanao izany."

Ny fanontanianao: Nahoana no tsy manoratra logs amin'ny HDFS fotsiny ianao?

valiny: Ity no dingana manaraka. Efa nieritreritra izany izahay tany am-boalohany, saingy satria amin'izao fotoana izao dia tsy misy loharanon-karena hanaovana izany, dia mihantona amin'ny vahaolana maharitra.

Ny fanontanianao: Ny endrika tsanganana no mety kokoa.

valiny: Azoko. Izahay dia "ho" amin'ny tanana roa.

Ny fanontanianao: Manoratra amin'ny rsyslog ianao. Any ianao dia afaka mampiasa TCP sy UDP. Fa raha UDP, ahoana no hiantohanao ny fandefasana?

valinyA: Misy teboka roa. Voalohany, lazaiko amin'ny rehetra avy hatrany fa tsy miantoka ny fandefasana logs izahay. Satria rehefa tonga ny mpamorona ary miteny hoe: "Andao hanomboka hanoratra angona ara-bola any, ary hapetrakao any amin'ny toerana iray ho anay raha misy zavatra hitranga," hoy izahay namaly azy ireo hoe: "Mahafinaritra! Andeha isika hanomboka hanakana amin'ny fanoratana amin'ny socket, ary hanao izany amin'ny fifanakalozana, mba hahazoana antoka fa hametraka izany ao amin'ny socket ho antsika sy ho azo antoka fa nahazo izany avy amin'ny lafiny hafa. Ary amin'izao fotoana izao dia lasa tsy ilaina avy hatrany ny rehetra. Ary raha tsy izany, inona no fanontaniana ananantsika? Raha tsy te hiantoka ny fanoratana amin'ny socket ianao, nahoana izahay no miantoka ny fandefasana? Miezaka mafy izahay. Miezaka tokoa izahay manatitra araka izay tratra sy araka izay tratra, fa tsy manome antoka 100%. Noho izany, tsy mila manoratra angona ara-bola any ianao. Misy angon-drakitra momba izany.

Ny fanontanianao: Rehefa mamorona hafatra amin'ny log ny API ary mamindra ny fanaraha-maso amin'ny microservices, efa sendra olana ve ianao hoe tonga amin'ny filaharana diso ny hafatra avy amin'ny microservices samihafa? Mipoitra noho izany ny fisafotofotoana.

valinyA: Ara-dalàna raha tonga amin'ny filaharana hafa izy ireo. Tokony ho vonona amin'izany ianao. Satria ny fanaterana tambajotra rehetra dia tsy miantoka ny filaminana ho anao, na mila mandany loharano manokana amin'izany ianao. Raha maka fitehirizana rakitra isika, dia ny API tsirairay dia mitahiry logs ao amin'ny rakitra azy manokana. Fa kosa, ny rsyslog dia mamadika azy ireo ho lahatahiry ao. Ny API tsirairay dia manana ny diany ao, izay ahafahanao mandeha mijery, ary avy eo azonao atao ny mampitaha azy ireo amin'ny fampiasana ny famantaranandro amin'ity log ity. Raha mandeha mijery amin'ny Graylog izy ireo, dia any no handaminana azy ireo araka ny famantaranandro. Hilamina ny zava-drehetra any.

Ny fanontanianao: Mety miovaova isaky ny milisegondra ny famantaranandro.

valiny: Timestamp dia novokarin'ny API mihitsy. Izany, raha ny marina, ny teboka iray manontolo. Manana NTP izahay. Ny API dia mamorona fe-potoana amin'ny hafatra. rsyslog tsy manampy izany.

Ny fanontanianao: Tsy dia mazava loatra ny fifaneraserana eo amin'ny ivontoerana data. Ao anatin'ny rafitry ny foiben'ny angona dia mazava ny fomba fanangonana sy fikarakarana ireo diary. Ahoana ny fifandraisana misy eo amin'ny ivontoerana data? Sa samy manana ny fiainany manokana ve ny foibe data tsirairay?

valiny: Saika. Manana ivon-toerana iray ny firenena tsirairay. Tsy misy fiparitahana isika amin'izao fotoana izao, ka firenena iray no apetraka amin'ny foibe data samihafa. Noho izany dia tsy ilaina ny manambatra azy ireo. Ao anatin'ny foibe tsirairay dia misy Log Relay. Ity dia mpizara Rsyslog. Raha ny marina, milina fitantanana roa. Izy ireo dia napetraka amin'ny fomba mitovy. Saingy amin'izao fotoana izao, mandalo ny iray amin'izy ireo ny fifamoivoizana. Izy dia mirakitra ny fitambaran'ny zavatra rehetra. Manana filaharana kapila izy io raha sanatria. Manindry ny hazo izy ary mandefa azy ireo any amin'ny foibe data afovoany (Singapore), izay efa voapoizina ao amin'ny Graylog. Ary ny foibe data tsirairay dia manana fitehirizana rakitra manokana. Raha sanatria very ny fifandraisana dia manana ny logs rehetra izahay. Hijanona any izy ireo. Hotehirizina ao.

Ny fanontanianao: Mahazo logs avy any ve ianao mandritra ny toe-javatra tsy mahazatra?

valiny: Afaka mandeha any ianao (amin'ny fitehirizana rakitra) ary mijery.

Ny fanontanianao: Ahoana ny fanaraha-maso fa tsy very log ianao?

valiny: Tena mamoy azy ireo izahay, ary manara-maso izany. Nanomboka iray volana lasa izay ny fanaraha-maso. Ny tranomboky ampiasain'ny Go API dia manana metrika. Afaka manisa izy hoe impiry izy no tsy nanoratra tamin'ny socket. Amin'izao fotoana izao dia misy heuristic sarotra. Misy buffer ao. Miezaka manoratra hafatra avy ao amin'ny socket izy. Raha mihoatra ny buffer dia manomboka mandatsaka azy ireo. Ary isainy ny isan'ny nandatsaka azy ireo. Raha manomboka mitobaka eo ny kaontera dia ho fantatsika izany. Tonga any amin'ny prometheus koa izy ireo izao, ary azonao jerena ny sary ao amin'ny Grafana. Afaka manangana fanairana ianao. Tsy mbola fantatra mazava anefa izay handefasana azy ireo.

Ny fanontanianao: Ao amin'ny elasticsearch, mitahiry logs miaraka amin'ny redundancy ianao. Firy ny kopia anananao?

valiny: Replika iray.

Ny fanontanianao: Andalana iray ihany ve?

valiny: Ity no master sy replica. Ny angona dia voatahiry amin'ny dika mitovy.

Ny fanontanianao: Nanova ny haben'ny buffer rsyslog ve ianao?

valiny: Manoratra datagrams amin'ny socket unix mahazatra izahay. Mametraka fetra 128 kilobytes avy hatrany ho antsika izany. Tsy afaka manoratra bebe kokoa momba izany izahay. Nosoratanay tao anatin'ny fenitra izany. Izay te hiditra amin'ny fitahirizana dia manoratra 128 kilobytes. Ny trano famakiam-boky, ankoatra izany, tapaho, ary asio saina fa tapaka ny hafatra. Manana sehatra manokana amin'ny fenitry ny hafatra isika, izay mampiseho raha tapaka nandritra ny fandraisam-peo na tsia. Noho izany dia manana fahafahana hanara-maso ity fotoana ity isika.

Fanontaniana: Manoratra JSON tapaka ve ianao?

valiny: Ny JSON tapaka dia hariana na mandritra ny fampitana satria lehibe loatra ny fonosana. Na ny Graylog dia ariana, satria tsy ho afaka hamafa JSON. Saingy misy ny nuances izay mila amboarina, ary mifamatotra amin'ny rsyslog ny ankamaroany. Efa nofenoiko ny laharana vitsivitsy tao, izay mbola mila karakaraina.

Fanontaniana: Nahoana Kafka? Efa nanandrana RabbitMQ ve ianao? Graylog tsy miampy amin'ny entana toy izany?

valiny: Tsy mandeha amin'ny Graylog izany. Ary mihamitombo ny Graylog. Tena manahirana azy izany. Karazana zavatra izy. Ary raha ny marina dia tsy ilaina izany. Aleoko manoratra avy amin'ny rsyslog mivantana mankany amin'ny elasticsearch ary avy eo mijery Kibana. Saingy mila mandamina ny olana miaraka amin'ny mpiambina isika. Ity dia mety ho variana amin'ny fivoarantsika rehefa manary ny Graylog isika ary mampiasa Kibana. Tsy hisy dikany ny logstash. Satria afaka manao toy izany koa aho amin'ny rsyslog. Ary manana module hanoratana amin'ny elasticsearch. Miaraka amin'i Graylog izahay dia miezaka miaina amin'ny fomba ahoana. Nanova kely aza izahay. Mbola misy ihany anefa ny fanatsarana.

Momba an'i Kafka. Izany no nitranga ara-tantara. Rehefa tonga aho dia efa teo, ary efa nisy lozisialy nosoratana taminy. Natsanganay fotsiny ny cluster ary nafindranay tao anatiny ny logs. Mitantana azy isika, mahafantatra ny fihetseham-pony. Raha ny amin'ny RabbitMQ... manana olana amin'ny RabbitMQ izahay. Ary ny RabbitMQ dia mivoatra ho antsika. Manana izany izahay amin'ny famokarana, ary nisy olana tamin'izany. Amin'izao fotoana izao, alohan'ny fivarotana, dia hosorina izy, ary hanomboka hiasa ara-dalàna. Saingy talohan'izay dia tsy vonona ny hamoaka azy ho amin'ny famokarana aho. Misy teboka iray hafa. Graylog dia afaka mamaky AMQP 0.9 version ary rsyslog dia afaka manoratra AMQP 1.0 version. Ary tsy misy vahaolana tokana afaka manao ny roa eo afovoany. Misy na iray na iray. Kafka ihany àry izao. Saingy misy ihany koa ny nuances. Satria ny omkafka amin'ny dikan-teny rsyslog ampiasaintsika dia mety hamoy ny buffer hafatra manontolo izay nalainy tamin'ny rsyslog. Raha mbola miaritra izany isika.

Fanontaniana: Mampiasa Kafka ve ianao satria nanana izany? Tsy ampiasaina amin'ny tanjona hafa?

valiny: Kafka, izay nampiasain'ny ekipan'ny Data Science. Tetikasa miavaka tanteraka ity, izay indrisy fa tsy afaka milaza na inona na inona aho. Tsy fantatro. Notarihin'ny ekipan'ny Data Science izy. Rehefa nanomboka ny hazo dia nanapa-kevitra ny hampiasa izany izy ireo, mba tsy hametraka ny azy. Ankehitriny dia nanavao ny Graylog izahay, ary very ny fifanarahana, satria misy dikan-teny taloha an'ny Kafka. Tsy maintsy nanao ny anay izahay. Nandritra izany fotoana izany, nesorinay ireo lohahevitra efatra ireo ho an'ny API tsirairay. Nanao tampony midadasika iray ho an'ny velona rehetra izahay, tampony midadasika iray ho an'ny fampisehoana rehetra ary nitifitra ny zava-drehetra tao izahay. Graylog dia manara-maso izany rehetra izany amin'ny parallèle.

Fanontaniana: Nahoana isika no mila an'io shamanisma misy socket io? Efa nanandrana nampiasa ny mpamily syslog log ho an'ny container ve ianao?

valiny: Tamin'ny fotoana nametrahanay an'io fanontaniana io dia nihenjana ny fifandraisanay tamin'ny docker. Docker 1.0 na 0.9 izany. Docker mihitsy no hafahafa. Faharoa, raha atsipihinao ao koa ny logs ... manana ahiahy tsy voamarina aho fa mandalo ny log rehetra amin'ny tenany, amin'ny alàlan'ny daemon docker. Raha manana API iray lasa adala isika, ny API sisa dia hihazakazaka amin'ny hoe tsy afaka mandefa stdout sy stderr. Tsy fantatro hoe ho aiza izany. Manana ahiahy aho amin'ny haavon'ny fahatsapana fa tsy ilaina ny mampiasa ny mpamily syslog docker amin'ity toerana ity. Ny sampan-draharaham-panadinana fampiasanay dia manana kluster Graylog azy manokana miaraka amin'ny hazo. Mampiasa mpamily log docker izy ireo ary toa tsara daholo ny zava-drehetra. Saingy avy hatrany dia manoratra GELF amin'ny Graylog izy ireo. Tamin'ny fotoana nanombohanay izany rehetra izany dia nila izany izahay mba hiasa fotsiny. Angamba any aoriana any, rehefa misy olona tonga milaza fa miasa ara-dalàna nandritra ny zato taona, dia hiezaka isika.

Fanontaniana: Manao fanaterana eo anelanelan'ny foibe angon-drakitra mampiasa rsyslog ianao. Nahoana no tsy Kafka?

valiny: Manao izao izahay, ary izao no tena izy. Noho ny antony roa. Raha maty tanteraka ny fantsona, dia tsy hiakatra amin'izany ny hazo rehetra, na dia amin'ny endrika compresse aza. Ary mamela azy ireo ho resy tsotra izao ny kafka. Amin'izany fomba izany, dia manaisotra ny fikitikitry ireo hazo ireo isika. Kafka fotsiny no ampiasaintsika amin'ity tranga ity. Raha manana fantsona tsara isika ary te hanafaka azy dia mampiasa ny rsyslog-ny. Saingy raha ny marina, azonao atao ny mametraka azy io mba handrotsahany izay tsy azony. Amin'izao fotoana izao izahay dia mampiasa ny fandefasana rsyslog mivantana any ho any, any Kafka.

Source: www.habr.com

Add a comment