Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Marogi chikamu chakakosha cheiyo system, ichikutendera iwe kuti unzwisise kuti inoshanda (kana isingashande) sezvaitarisirwa. Pasi pemamiriro eiyo microservice architecture, kushanda nematanda kunova chirango chakasiyana cheSpecial Olympiad. Pane nyaya dzakawanda dzinoda kugadziriswa:

  • maitiro ekunyora matanda kubva pachikumbiro;
  • kupi kunyora matanda;
  • nzira yekuendesa matanda ekuchengetedza uye kugadzirisa;
  • magadzirirwo uye kuchengeta matanda.

Iko kushandiswa kweiyo yakakurumbira midziyo tekinoroji inowedzera jecha pamusoro peiyo reki mumunda wekugadzirisa matambudziko sarudzo.

Zvingangove izvi ndizvo zvinyorwa zveshumo naYuri Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda"

Ndiani ane hanya, ndapota pasi pekatsi.

Zita rangu ndiYuri Bushmelev. Ndinoshanda kuLazada. Nhasi ndichataura nezve magadzirirwo atakaita matanda edu, matorero atakaita, uye zvatinonyora ipapo.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Tinobva kupi? Tiri vanaani? Lazada ndiye #1 mutengesi wepamhepo munyika nhanhatu muSoutheast Asia. Nyika dzese idzi dzakagoverwa pakati pe data data. Ikozvino pane 4 data centers muhuwandu. Sei izvi zvakakosha? Nekuti dzimwe sarudzo dzaive nekuda kwekuti pane hukama husina kusimba pakati penzvimbo. Tine microservice architecture. Ndakashamisika kuona kuti tatova ne80 microservices. Pandakatanga basa racho nematanda, aingova 20. Uyezve, pane chimedu chakati kurei chenhaka yePHP, yandinofanirawo kugara nayo uye kutsungirira. Zvese izvi zvinotiunzira isu parizvino mameseji anopfuura mamirioni matanhatu paminiti kune sisitimu yese. Uyezve ini ndicharatidza kuti tiri kuedza sei kurarama neizvi, uye nei izvi zvakadaro.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Iwe unofanirwa kurarama nemamiriyoni matanhatu aya mameseji neimwe nzira. Tinofanira kuitei navo? 6 miriyoni meseji inodiwa:

  • tumira kubva kuapp
  • bvuma kuti uendeswe
  • endesa kune kuongororwa uye kuchengetedza.
  • kuongorora
  • chengeta neimwe nzira.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Paive nemamiriyoni matatu meseji, ndaive nechimiro chakafanana. Nekuti takatanga nemamwe masendi. Zviri pachena kuti magwaro ekushandisa akanyorwa ipapo. Semuyenzaniso, haina kukwanisa kubatana nedatabase, yaigona kubatana nedatabase, asi haina kukwanisa kuverenga chimwe chinhu. Asi kunze kweizvi, yega yega microservices yedu inonyorawo gwaro rekuwana. Chikumbiro chega chega chinosvika pa microservice chinowira murogi. Sei tiri kuita izvi? Vagadziri vanoda kukwanisa kutevera. Yese yekupinda gidhi ine iyo traceid munda, zvinoenderana neiyo yakakosha interface inobva yasunungura ketani yese uye inoyevedza kuratidza trace. Tsanangudzo inoratidza kuti chikumbiro chakafamba sei, uye izvi zvinobatsira vagadziri vedu kubata chero marara asingazivikanwe nekukurumidza.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Kurarama nayo sei? Iye zvino ini ndichatsanangura muchidimbu munda wezvisarudzo - kuti dambudziko iri rinowanzogadziriswa sei. Maitiro ekugadzirisa dambudziko rekuunganidza, kuendesa uye kuchengetedza matanda.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Nzira yekunyora sei kubva kune application? Zviri pachena kuti kune nzira dzakasiyana. Kunyanya, kune maitiro akanakisa, sezvatinoudzwa nemakomuredhi efashoni. Kune marudzi maviri echikoro chekare, sezvakataurwa nasekuru. Pane dzimwe nzira.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Nekuunganidzwa kwematanda, mamiriro acho anenge akafanana. Iko hakuna zvakawanda zvingasarudzwa zvekugadzirisa chikamu ichi. Kune akawanda awo, asi haasi akawanda zvakadaro.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Asi nekutumira uye kuongororwa kunotevera, nhamba yekusiyana inotanga kuputika. Ini handisi kuzotsanangura sarudzo imwe neimwe ikozvino. Ndinofunga kuti sarudzo huru dzinonyatsozivikanwa kune wese aifarira musoro.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Ini ndichakuratidza kuti takazviita sei kuLazada uye kuti zvakatanga sei.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Gore rapfuura, ndakauya kuLazada uye ndakatumirwa kuchirongwa chelog. Kwakanga kwakaita seizvi ikoko. Iyo log kubva pachikumbiro yakanyorwa kuti stdout uye stderr. Zvose zvakaitwa nenzira yefashoni. Asi ipapo vagadziri vakairasa kunze kwehova dzakajairwa, uye ipapo nyanzvi dzezvivakwa vanozozviona neimwe nzira. Pakati penyanzvi dzezvivakwa nevagadziri, pane zvakare vasununguri vakati: "uh ... zvakanaka, ngativaputire mufaira rine shell, uye ndizvozvo." Uye sezvo zvese izvi zviri mumudziyo, vakazviputira mumudziyo chaiwo, vakagadzira dhairekitori mukati ndokuisa imomo. Ndinofunga zviri pachena kune wese zvakaitika.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Ngatitarisei mberi zvishoma. Kuendesa kwatakaita matanda aya. Mumwe munhu akatora td-agent, iyo inonyatso taura asi isinganyatso nyatso. Ini handisati ndanzwisisa hukama hwemapurojekiti maviri aya, asi anoita senge chinhu chimwe chete. Uye izvi zvakatsetseka, zvakanyorwa muRuby, verenga mafaira egi, akaaisa muJSON uchishandisa mamwe mataurirwo. Vakabva vatumirwa kuKafka. Uyezve, muKafka, takanga tine misoro mina yakasiyana yeAPI yega yega. Sei 4? Nekuti kune mhenyu, kune staging, uye nekuti kune stdout uye stderr. Vagadziri vanozvigadzira, uye vashandi vezvivakwa vanofanirwa kuzvigadzira muKafka. Uyezve, Kafka yaidzorwa nerimwe dhipatimendi. Naizvozvo, zvaive zvakafanira kugadzira tikiti kuitira kuti vagadzire 4 misoro ipapo kune yega api. Munhu wese akazvikanganwa. Kazhinji, yakanga iri marara uye tsvina.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Takazoita sei nazvo? Takaitumira ku kafka. Kuwedzera kubva kuKafka, hafu yematanda yakabhururuka kuenda kuLogstash. Imwe hafu yematanda yakagoverwa. Vamwe vakabhururukira kune imwe Graylog, vamwe kune imwe Graylog. Nekuda kweizvozvo, zvese izvi zvakabhururuka kuita rimwe Elasticsearch cluster. Kureva kuti nyonganyonga yese iyi yakawira kumagumo uko. Haufanire kudaro!

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Izvi ndizvo zvazvinoita kana zvichionekwa kubva kumusoro. Haufanire kudaro! Pano, nzvimbo dzine dambudziko dzinokurumidza kunyorwa nenhamba. Iko kune akawanda kwazvo, asi 6 ane matambudziko chaiwo, ane chimwe chinhu chinoda kuitwa. Ndichataura nezvavo zvakasiyana.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Pano (1,2,3) tinonyora mafaira uye, maererano naizvozvo, pane matatu rakes pano kamwechete.

Chekutanga (1) ndechekuti tinofanira kuanyora pane imwe nzvimbo. Haisi nguva dzose inodiwa kupa API kugona kunyora zvakananga kune faira. Izvo zvinodikanwa kuti API ive yega mumudziyo, uye kunyangwe zvirinani, kuti iverenge-chete. Ini ndiri maneja wehurongwa, saka ndine imwe nzira yekuona zvinhu izvi.

Pfungwa yechipiri (2,3) ndeyekuti isu tine zvikumbiro zvakawanda zvinouya kuAPI. Iyo API inonyora yakawanda data kune faira. Mafaira ari kukura. Tinofanira kudzitenderedza. Nekuti kana zvikasadaro hauzokwanisi kuchengetedza chero discs ipapo. Kudzitenderedza kwakaipa nekuti dzinotungamirwa kuburikidza negoko kune dhairekitori. Hapana nzira yatingazvitenderedza. Iwe haugone kuudza application kuti ivhure zvibato. Nekuti vanogadzira vanokutarisa sebenzi: “Ndezvipi zvinotsanangura? Isu tinowanzo nyorera kune stdout. Mafuremu akaita copytruncate kuita logrotate, izvo zvinongoita kopi yefaira uye hunde yepakutanga. Saizvozvo, pakati peaya maitiro ekukopa, disk nzvimbo inowanzopera.

(4) Taive nemafomati akasiyana mumaAPI akasiyana. Vaive vakasiyana zvishoma, asi regexp yaifanira kunyorwa zvakasiyana. Sezvo zvese zvaitungamirirwa naPuppet, paive nemapoka makuru emakirasi aine mapete awo. Uyezve, td-agent kazhinji yenguva inogona kudya chiyeuchidzo, kuva benzi, aigona kungofungidzira kuti akanga achishanda uye hapana chaanoita. Nechekunze, zvaisaita kuti anzwisise kuti hapana chaaiita. Kunyanya, anodonha, uye mumwe munhu achamusimudza gare gare. Kunyanya, yambiro ichabhururuka ichipinda, uye mumwe munhu anoenda oisimudza nemaoko ake.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

(6) Uye yakanyanya marara uye marara - yaive elasticsearch. Nokuti yakanga iri shanduro yekare. Nokuti takanga tisina vanatenzi vakazvipira panguva iyoyo. Takanga tine matanda akasiyana-siyana ane minda yaigona kupindirana. Marogi akasiyana ezvikumbiro zvakasiyana anogona kunyorwa nemazita emunda mamwechete, asi panguva imwe chete panogona kunge paine data rakasiyana mukati. Ndiko kuti, rimwe danda rinouya neInteger mumunda, semuenzaniso, nhanho. Imwe danda inouya neTring mundima yenhanho. Mukushaikwa kwemepu yakamira, chinhu chinoshamisa chakadaro chinobuda. Kana, mushure mekutenderera kwendekisi, meseji ine tambo yakasvika pakutanga elasticsearch, saka isu tinorarama zvakajairika. Uye kana yekutanga yakasvika neInteger, saka ese anotevera mameseji akasvika neString anongoraswa. Nekuti mhando yemunda haienderane.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Takatanga kubvunza mibvunzo iyi. Takasarudza kusatsvaka vane mhosva.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Asi chimwe chinhu chinoda kuitwa! Chinhu chiri pachena ndechokuti tinofanira kugadza mipimo. Takanga tatova nemamwe maitiro. Zvimwe takauya nazvo pave paya. Sezvineiwo, imwe yerogi fomati yeese maAPI yakanga yatobvumidzwa panguva iyoyo. Inonyorwa zvakananga muhutano hwekudyidzana kwesevhisi. Saizvozvo, avo vanoda kugamuchira matanda vanofanira kuanyora nenzira iyi. Kana mumwe munhu akasanyora matanda mune iyi fomati, saka isu hativimbisi chero chinhu.

Kupfuurirazve, ndinoda kuva nemwero mumwe chete wenzira dzekurekodha, kuendesa uye kuunganidza matanda. Chaizvoizvo, pazvinyore, uye nzira yekuzviendesa. Mamiriro akanaka ndeekuti mapurojekiti anoshandisa raibhurari imwechete. Kune yakaparadzana yekutema matanda raibhurari yeGo, kune yakaparadzana raibhurari yePHP. Wese watinaye, munhu wese anofanira kuzvishandisa. Parizvino, ndingati tiri kubudirira nezvikamu makumi masere kubva muzana. Asi vamwe vanoramba vachidya cacti.

Uye ipapo (pane slide) iyo "SLA yekuendesa log" iri kutotanga kuoneka. Haisati yasvika, asi tiri kushanda nayo. Nekuti zviri nyore kwazvo kana infra ichiti kana iwe ukanyora mune yakadai uye fomati kune yakadaro nenzvimbo uye isingapfuuri mameseji eN pasekondi, saka isu tichazoiendesa ikoko. Zvinotora kutemwa nemusoro kwakawanda. Kana paine SLA, saka zvakangonaka!

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Takatanga sei kugadzirisa dambudziko racho? Iyo main rake yaive netd-agent. Hameno kuti matanda edu anoendepi. Vanunurwa here? Vari kuenda here? Vari kupi zvakadaro? Naizvozvo, zvakasarudzwa kutsiva td-agent nechinhu chekutanga. Sarudzo dzeidzo yekuchitsiva nacho, ndakatsanangura muchidimbu pano.

Fluentd. Chekutanga, ndakasangana naye pabasa rekare, uye iyewo nguva nenguva achiwira ipapo. Chechipiri, izvi zvakafanana, chete muprofile.

filebeat. Zvakatinakira sei? Chokwadi chekuti ari muGo, uye isu tine hunyanzvi hukuru muGo. Saizvozvo, kana paine, tinogona neimwe nzira kuzviwedzera isu pachedu. Ndosaka tisina kuitora. Kuti pasazova nemuyedzo wekuti utange kuzvinyora patsva.

Mhinduro iri pachena ye sysadmin ndeye marudzi ese e syslogs muhuwandu uhu (syslog-ng/rsyslog/nxlog).

Kana kunyora chimwe chinhu chako, asi isu takairasa, pamwe nefaira. Kana iwe ukanyora chimwe chinhu, saka zviri nani kunyora chimwe chinhu chinobatsira bhizinesi. Kuendesa matanda, zviri nani kutora chinhu chakagadzirirwa.

Naizvozvo, sarudzo yakasvika pakusarudza pakati pe syslog-ng uye rsyslog. Ndakasendamira ndakananga ku rsyslog nekuti isu taitova nemakirasi e rsyslog muPuppet, uye handina kuwana mutsauko uri pachena pakati pavo. Chii chinonzi syslog, chii chinonzi syslog. Hongu, mamwe magwaro akashata, mamwe ari nani. Anoziva nenzira iyi, uye anozviita zvakasiyana.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Uye zvishoma nezve rsyslog. Kutanga, inotonhorera nekuti ine akawanda mamodule. Iine RainerScript inoverengwa nevanhu (mutauro wemazuva ano wekugadzirisa). Bhonasi inotyisa ndeyekuti isu tinogona kutevedzera maitiro etd-agent nematurusi ayo akajairwa, uye hapana chachinja kune maapplication. Ndokunge, isu tinoshandura td-agent kuita rsyslog, uye usabate zvimwe zvese zvakadaro. Uye pakarepo tinowana kushanda kushanda. Tevere, mmnormalize ndicho chinhu chinotonhorera nezve rsyslog. Iyo inokutendera iwe kuparadzanisa matanda, asi kwete neGrok uye regexp. Inogadzira abstract syntax muti. Iyo inoparadzanisa matanda nenzira yakafanana iyo compiler inoparadzanisa kodhi yekodhi. Izvi zvinokutendera kuti ushande nekukurumidza, kudya zvishoma CPU, uye, kazhinji, ingori chinhu chinotonhorera. Kune boka remamwe mabhonasi. handingagari pamusoro pavo.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

rsyslog ine zvimwe zvakawanda zvakashata. Iwo anenge akafanana nemabhonasi. Matambudziko makuru ndeokuti iwe unofanirwa kukwanisa kuibika, uye iwe unofanirwa kusarudza shanduro.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Takasarudza kuti taizonyora matanda mune unix socket. Uye kwete mu/dev/log, nekuti ipapo tine mess of system logs, pane yakanyorwa mune iyi pombi. Saka ngatinyore kune socket yetsika. Isu tichaibatanidza kune yakaparadzana ruleset. Ngatirege kupindira chero chinhu. Zvose zvichave zvakajeka uye zvinonzwisisika. Saka takazviita. Dhairekitori rine masokisi aya rakamisikidzwa uye rinoendeswa kune ese midziyo. Makoniti anogona kuona socket yavanoda, vovhura woinyorera.

Sei usina faira? Nokuti munhu wose akaverenga nyaya pamusoro Badushechka, iyo yakaedza kuendesa faira kune docker, uye yakaona kuti mushure mekutangazve rsyslog, iyo faira descriptor inoshanduka, uye docker inorasikirwa nefaira iri. Anoramba akavhura chimwe chinhu, asi kwete socket yavanonyora. Takasarudza kuti tichanzvenga dambudziko iri, uye, panguva imwecheteyo, kunzvenga dambudziko rekuvharisa.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Rsyslog inoita zviito zvinoratidzwa pane slide uye inotumira matanda kune kana relay kana Kafka. Kafka anotevera nzira yekare. Rayleigh - Ndakaedza kushandisa yakachena rsyslog kuendesa matanda. Pasina Mharidzo Mutsara, uchishandisa yakajairwa rsyslog maturusi. Chaizvoizvo, inoshanda.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Asi pane manuances ane maitiro ekuaisa gare gare muchikamu chino (Logstash/Greylog/ES). Ichi chikamu (rsyslog-rsyslog) chinoshandiswa pakati pe datacenters. Heino compressed tcp link, iyo inokutendera iwe kuchengetedza bandwidth uye, maererano, neimwe nzira kuwedzera mukana wekuti isu tigamuchire mamwe matanda kubva kune imwe data data kana chiteshi chazara. Nokuti tine Indonesia, uko zvinhu zvose zvakaipa. Ndimo mune dambudziko rinogara riripo.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Isu takafunga nezve matarisiro atinoita, uye nei matanda atakarekodha kubva mukushandisa anosvika kumagumo iwayo? Takasarudza kutanga metrics. Rsyslog ine yayo manhamba yekuunganidza module, iyo ine imwe mhando yeakaverengera. Semuenzaniso, inogona kukuratidza saizi yemutsara, kana kuti mameseji mangani akauya kune chakadaro nechiito. Iwe unogona kutotora chimwe chinhu kubva kwavari. Uyezve, ine zviverengero zvetsika zvaunogona kugadzirisa, uye zvinokuratidza, semuenzaniso, nhamba yemeseji iyo imwe API yakanyora. Zvadaro, ndakanyora rsyslog_exporter muPython, uye takatumira zvose kuPrometheus uye takaronga. Isu taida chaizvo maGraylog metrics, asi kusvika parizvino hatisati tave nenguva yekuamisa.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Zvinetso ndezvipi? Dambudziko rakamuka nenyaya yekuti takaona (KUPOMIRA!) kuti Live APIs yedu inonyora 50k mameseji pasekondi. Iyi ingori Live API isina staging. Uye Graylog inongotiratidza zviuru gumi nezviviri zvemashoko pasekondi. Uye mubvunzo une mufungo wakamuka, vakasarira varipi? Kubva patakagumisa kuti Graylog haigoni kurarama. Takatarisa, uye, zvechokwadi, Graylog ine Elasticsearch haina kugona kuyerera uku.

Tevere, zvimwe zvakawanwa zvatakaita munzira.

Anonyora kune socket akavharwa. Zvakaitika sei? Pandakashandisa rsyslog yekuendesa, pane imwe nguva takatyora chiteshi pakati pe data data. Delivery yakasimuka pane imwe nzvimbo, kuendesa kwakasimuka kune imwe nzvimbo. Zvese izvi zvakadzika kumuchina une maAPI anonyora kune rsyslog socket. Paive nemutsara. Ipapo mutsara wekunyorera kune unix socket yakazadzwa, iyo nekusarudzika ndeye 128 mapaketi. Uye inotevera nyora () mumabhuroki ekushandisa. Patakatarisa raibhurari yatinoshandisa muGo applications, zvakanyorwa ipapo kuti kunyora kune socket kunoitika mune isiri-blocking mode. Taiva nechokwadi chekuti hapana chainge chavharwa. Nokuti takaverenga nyaya pamusoro Badushechkauyo akanyora nezvazvo. Asi pane nguva. Paivawo neruzha rusingaverengeki rwakatenderedza runhare urwu, umo maigara muchiedza kuisa meseji musocket. Hatina kumuona. Ndaifanira kunyorazve raibhurari yacho. Kubva ipapo, zvakachinja kakawanda, asi ikozvino tabvisa makiyi mune ese subsystems. Naizvozvo, unogona kumisa rsyslog uye hapana chinodonha.

Izvo zvinodikanwa kutarisa hukuru hwemitsara, izvo zvinobatsira kuti usatsike pane iyi rake. Kutanga, tinogona kutarisa patinotanga kurasikirwa nemeseji. Chechipiri, isu tinogona kutarisa kuti isu tine matambudziko nekutumira.

Uye imwe nguva isingafadzi - kukwidziridzwa nekagumi mune microservice architecture iri nyore kwazvo. Isu hatina zvikumbiro zvakawanda zvinouya, asi nekuda kwegirafu iyo mameseji aya anoenderera mberi, nekuda kwematanda ekuwana, isu tinowedzera mutoro pamatanda kanenge kagumi. Nehurombo, ini ndakanga ndisina nguva yekuverenga nhamba chaidzo, asi mamicroservices ndizvo zvaari. Izvi zvinofanira kuchengetwa mupfungwa. Zvinoitika kuti panguva ino iyo log yekuunganidza subsystem ndiyo yakanyanya kurodha muLazada.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Nzira yekugadzirisa sei elasticsearch dambudziko? Kana iwe uchida kukurumidza kutora matanda munzvimbo imwechete, kuti usamhanye mumichina yese uye uunganidze ipapo, shandisa faira kuchengetedza. Izvi zvinovimbiswa kushanda. Inoitwa kubva kune chero server. Iwe unongoda kunamatira dhisiki ipapo uye woisa syslog. Mushure meizvozvo, iwe unovimbiswa kuve uine ese matanda munzvimbo imwechete. Ipapo zvinogoneka kugadzirisa zvishoma nezvishoma elasticsearch, greylog, kana chimwe chinhu. Asi iwe unenge uchitova nematanda ese, uye, zvakare, iwe unogona kuzvichengeta, sekunge kune zvakakwana disk arrays.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Panguva yemushumo wangu, chirongwa chakatanga kuita seizvi. Takatombomira kunyora kufaira racho. Zvino, zvichida, tichadzima zvakasara. Pamichina yemuno inomhanyisa API, isu tichamira kunyora kumafaira. Kutanga, kune faira yekuchengetedza, iyo inoshanda chaizvo. Chechipiri, michina iyi inogara ichipera nzvimbo, unofanirwa kugara uchiitarisa.

Ichi chikamu chine Logstash uye Graylog, chinokwira chaizvo. Nokudaro, unofanira kuibvisa. Unofanira kusarudza imwe.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Takasarudza kusiya Logstash neKibana. Nekuti isu tine security department. Kubatana chii? Kubatana ndeyekuti Kibana isina X-Pack uye isina Shield haibvumiri iwe kusiyanisa kodzero dzekuwana kumatanda. Naizvozvo, vakatora Graylog. Zvine zvese. Handizvifarire, asi zvinoshanda. Takatenga Hardware nyowani, takaisa nyowani Greylog ipapo, uye takafambisa matanda ese ane akasimba mafomati kune yakaparadzana Greylog. Isu takagadzirisa dambudziko nemhando dzakasiyana dzeminda yakafanana nesangano.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Chii chaizvo chinosanganisirwa muGreylog itsva. Takangonyora zvese mudocker. Takatora boka remaseva, takaburitsa matatu eKafka zviitiko, 7 Graylog maseva shanduro 2.3 (nekuti ndaida Elasticsearch vhezheni 5). Zvese izvi zvakasimudzwa pakupambwa kubva kuHDD. Isu takaona mwero weindexing kusvika 100 zviuru zvemashoko pasekondi. Isu takaona nhamba yekuti 140 terabytes yedata pasvondo.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Uye zvakare raki! Tine kutengesa kuviri kuri kuuya. Takafamba kupfuura mamiriyoni matanhatu ezvinyorwa. Isu Graylog hatina nguva yekutsenga. Neimwe nzira unofanira kupona zvakare.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Uku ndiko kurarama kwatakaita. Yakawedzera mamwe mashoma maseva uye SSDs. Parizvino tiri kurarama seizvi. Ikozvino tave kutotsenga 160k mameseji pasekondi. Isu hatisati tasvika pamuganho, saka hazvizivikanwe kuti imarii yatinogona kubuda mazviri.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Aya ndiwo marongero edu emangwana. Pakati peizvi, chaizvoizvo, chinonyanya kukosha zvichida kuwanikwa kwepamusoro. Hatisati tave nayo. Mota dzakati wandei dzakamiswa nenzira imwechete, asi kusvika pari zvino zvese zviri kufamba nemota imwe. Izvo zvinodikanwa kupedza nguva yekumisa kusakundikana pakati pavo.

Unganidza metrics kubva kuGreylog.

Ita muganho wechiyero kuitira kuti tive neapi imwe inopenga iyo isingatiurayi bandwidth uye nezvimwe zvese.

Uye pakupedzisira, saina imwe mhando yeSLA nevagadziri kuitira kuti tigone kushanda zvakanyanya. Kana iwe ukanyora zvakawanda, saka urombo.

Uye nyora zvinyorwa.

Yury Bushmelev "Mepu yeraki mumunda wekuunganidza uye kuendesa matanda" - chinyorwa chemushumo

Muchidimbu, mhedzisiro yezvose zvatakasangana nazvo. Kutanga, mipimo. Chechipiri, syslog ikeke. Chechitatu, rsyslog inoshanda chaizvo sekunyorwa kwayakaitwa pachisiraidhi. Uye ngatiuye kumibvunzo.

Mibvunzo yako.

Mubvunzo wako: Nei vakasarudza kusatora ... (filebeat?)

Reply: Inoda kunyora kune faira. Ndaisada hangu. Kana API yako ichinyora zviuru zvemashoko pasekondi, kunyangwe ukatenderera kamwe paawa, iyi haisati iri sarudzo. Unogona kunyora kune pombi. Kwavakandibvunza kuti: "Chii chichaitika kana maitiro atinonyora akadonha"? Ndakangoshaya chekuvapindura, ndokuti: "Zvakanaka, ok, ngatisadaro."

Mubvunzo wako: Wadii kungonyora matanda kuHDFS?

ReplyA: Iri ndiro danho rinotevera. Takafunga nezvazvo pakutanga, asi sezvo pasina zviwanikwa zvekugadzirisa panguva ino, zvinorembera mumhinduro yedu yenguva refu.

Mubvunzo wako: A column format ingave yakakodzera.

Reply: Ndinonzwisisa. Tiri "zve" nemaoko maviri.

Mubvunzo wako: Unonyorera ku rsyslog. Ose TCP uye UDP anowanikwa ipapo. Asi kana UDP, saka unovimbisa sei kuendesa?

ReplyA: Pane zvibodzwa zviviri. Kutanga, ini ndinokurumidza kuudza munhu wese kuti hativimbisi kuendeswa kwematanda. Nokuti kana vagadziri vauya vachiti: "Ngatitangei kunyora data yemari ikoko, uye iwe uchaiisa kune imwe nzvimbo kwatiri kana chimwe chinhu chikaitika," tinovapindura, "Zvakanaka! Ngatitangei kuvharidzira pakunyorera kune socket, uye tiite mukutengeserana, kuitira kuti iwe unovimbiswa kuiisa mumudziyo wedu uye tive nechokwadi chokuti takaigamuchira kubva kune rumwe rutivi. Uye panguva ino, munhu wose anobva aita zvisingakoshi. Uye kana zvisiri, saka mibvunzo ipi yatinayo? Kana iwe usingade kuvimbisa kunyora kune socket, saka nei isu tichivimbisa kuendesa? Tiri kuita nhamburiko dzakanakisisa. Isu tinoedza chaizvo kuendesa zvakanyanya sezvinobvira uye nesezvinogoneka, asi isu hatipe 100% vimbiso. Naizvozvo, haufanire kunyora data rezvemari ipapo. Kune transaction database yeizvi.

Mubvunzo wako+ Nokuda kweizvi, kuvhiringidzika kunomuka.

ReplyA: Zvakajairika kuti vanouya neimwe nzira. Unofanira kunge wakagadzirira izvi. Nekuti chero netiweki kuendesa hakuvimbisi kurongeka kwauri, kana iwe unofanirwa kushandisa zvakakosha zviwanikwa pane izvi. Kana tikatora mafaira ekuchengetedza, saka API yega yega inochengetedza matanda kune yayo faira. Asi, rsyslog inovabvisa kuita madhairekitori ipapo. Imwe neimwe API ine yayo matanda ipapo, kwaunogona kuenda uye kutarisa, uye ipapo unogona kuenzanisa navo uchishandisa timestamp mune iyi log. Kana vakaenda kunotarisa muGreylog, ipapo ivo vachazorongwa netimestamp. Zvese zvichanaka ipapo.

Mubvunzo wako: Chitambi chenguva chinogona kusiyana nemamilliseconds.

Reply: Iyo timestamp inogadzirwa neiyo API pachayo. Izvi, chaizvoizvo, ndiyo pfungwa yose. Tine NTP. Iyo API inogadzira timestamp yatove mumeseji pachayo. Iyo haina kuwedzerwa ne rsyslog.

Mubvunzo wako: Kudyidzana pakati pe data centers hakuna kunyatsojeka. Mukati megadziriro ye data data, zviri pachena kuti matanda akaunganidzwa sei uye akagadziriswa. Kudyidzana pakati pe data centers kwakadii? Kana kuti imwe neimwe data data inorarama hupenyu hwayo?

Reply: Zvinenge. Tine nyika imwe neimwe iri mune imwe data center. Isu hatina ikozvino kupararira, kuitira kuti imwe nyika iiswe munzvimbo dzakasiyana dze data. Nokudaro, hapana chikonzero chekuvabatanidza. Mukati menzvimbo yega yega mune Log Relay. Iyi iRsyslog server. Muchokwadi, maviri manejimendi michina. Ivo vakagadzirirwa nenzira imwechete. Asi ikozvino, traffic inongopfuura neimwe yadzo. Anonyora zvese zvakaunganidzwa. Iine disk queue chete kana zvakadaro. Anodzvanya matanda uye anoatumira kune yepakati data center (Singapore), uko zvakare ivo vatove nechepfu muGreylog. Uye imwe neimwe nzvimbo yedata ine yayo yekuchengetedza faira. Kana tikarasikirwa nekubatana, tine matanda ese aripo. Vachagara ikoko. Dzichachengetwa imomo.

Mubvunzo wako: Iwe unowana matanda kubva ipapo panguva dzisina kujairika mamiriro?

Reply: Unogona kuenda ikoko (kune faira rekuchengetedza) uye tarisa.

Mubvunzo wako: Unotarisisa sei kuti haurasike matanda?

Reply: Tiri kuvarasikirwa nazvo, uye tiri kuzviongorora. Kuongorora kwakatanga mwedzi wapfuura. Raibhurari inoshandiswa neGo APIs ine metrics. Anokwanisa kuverenga kuti kangani paakatadza kunyorera socket. Ikoko panguva ino kune inonyengera heuristic. Pane buffer ipapo. Inoedza kunyora meseji kubva kwairi kuenda kune socket. Kana iyo buffer ikafashukira, inotanga kuvadonhedza. Uye anoverenga kuti akadonhedza mangani. Kana makaunda akatanga kufashukira ipapo, tichaziva nezvazvo. Ivo zvino vari kuuyawo kuprometheus, uye iwe unogona kuona magirafu muGrafana. Unogona kuseta chenjedzo. Asi hazvisati zvanyatsojeka kuti vodzitumira kunaani.

Mubvunzo wako: Mu elasticsearch, iwe unochengeta matanda ane redundancy. Iwe une replica ngani?

Reply: One replica.

Mubvunzo wako: Mutsetse mumwe chete here?

Reply: Uyu ndiye master uye replica. Iyo data inochengetwa mune duplicate.

Mubvunzo wako: Wakagadzirisa saizi ye rsyslog buffer neimwe nzira?

Reply: Isu tinonyora datagrams kune yakasarudzika unix socket. Izvi zvinokurumidza kuisa muganhu we128 kilobytes patiri. Hatikwanisi kunyora zvakawanda mazviri. Isu takanyora izvi muchiyero. Ndiani anoda kupinda mukuchengetedza, vanonyora 128 kilobytes. Maraibhurari, zvakare, anocheka, uye isa mureza kuti meseji yakagurwa. Tine chikamu chakakosha muchiyero chemeseji pachayo, iyo inoratidza kuti yakagurwa panguva yekurekodha kana kwete. Saka isu tine mukana wekutevera nguva ino.

Mubvunzo: Unonyora JSON yakaputsika here?

Reply: JSON yakaputsika icharaswa chero panguva yekuendesa nekuti packet yakakura kwazvo. Kana kuti Greylog ichadonhedzwa, nekuti haizokwanise kupatsanura JSON. Asi pane nuances pano inoda kugadziriswa, uye inonyanya kusungirirwa kune rsyslog. Ndakatozadza zvishoma ipapo, izvo zvichiri kuda kugadziriswa.

Mubvunzo: Sei Kafka? Wakamboedza RabbitMQ? Greylog haina kuwedzera pasi pemitoro yakadaro?

Reply: Izvo hazvishande neGraylog. Uye Greylog iri kutora chimiro. Zviri kumunetsa chaizvo. Akaita chinhu. Uye, chaizvoizvo, hazvidiwi. Ini ndoda kunyora kubva ku rsyslog zvakananga kune elasticsearch uye wobva watarisa Kibana. Asi tinofanira kugadzirisa nyaya yacho nemasecurity. Uyu ndiwo musiyano unobvira webudiriro yedu patinokanda kunze Greylog uye kushandisa Kibana. Logstash haina musoro. Nekuti ini ndinogona kuita zvimwe chete ne rsyslog. Uye ine module yekunyorera elasticsearch. NaGraylog tiri kuedza kurarama neimwe nzira. Takatombozvigadzirisa zvishoma. Asi pachine nzvimbo yekuvandudza.

About Kafka. Ndizvo zvakaitika munhoroondo. Ndakasvika yatovepo, uye matanda akanga atonyorwa. Takangosimudza cluster yedu ndokupinza matanda mairi. Tinomutungamirira, tinoziva kuti anonzwa sei. Kana iri RabbitMQ ... tiri kunetseka neRabbitMQ. Uye RabbitMQ iri kutigadzirira. Isu tinayo mukugadzira, uye pakanga paine matambudziko nazvo. Zvino, asati atengeswa, aizoitwa shamanized, uye aizotanga kushanda zvakanaka. Asi izvi zvisati zvaitika, ndakanga ndisati ndagadzirira kuiburitsa mukugadzirwa. Pane chimwezve chinhu. Graylog inogona kuverenga AMQP 0.9 vhezheni uye rsyslog inogona kunyora AMQP 1.0 vhezheni. Uye hapana mhinduro imwechete inogona kuita zvese zviri pakati. Pane imwe kana imwe. Saka ikozvino chete Kafka. Asi panewo nuances. Nekuti omkafka yevhezheni ye rsyslog yatinoshandisa inogona kurasikirwa nemeseji buffer iyo yaakanhonga kubva ku rsyslog. As long tichishingirira.

Mubvunzo: Uri kushandisa Kafka nekuti waive nayo? Haisi kushandiswa kune chimwe chinangwa?

Reply: Kafka, iyo yakashandiswa neboka reData Science. Iyi ipurojekiti yakasiyana zvachose, iyo ini, zvinosuruvarisa, handigoni kutaura chero chinhu. Handizive. Aitungamirirwa nechikwata cheData Science. Apo matanda akatanga, vakasarudza kuishandisa, kuti varege kuisa yavo. Iye zvino tavandudza Graylog, uye isu takarasikirwa nekuenderana, nekuti kune yekare vhezheni yeKafka. Taifanira kugadzira zvedu. Panguva imwecheteyo, takabvisa idzi misoro ina kune yega yega API. Isu takagadzira imwe yakafara kumusoro kune vese vapenyu, imwe yakafara kumusoro kune ese mastaging uye isu tinopfura zvese ipapo. Greylog inoburitsa zvese izvi zvakafanana.

Mubvunzo: Sei tichida iyi shamanism ine zvigadziko? Wakamboedza kushandisa syslog log mutyairi wemidziyo.

Reply: Panguva yatakabvunza mubvunzo uyu, taive nehukama hwakaoma nedocker. Yaive docker 1.0 kana 0.9. Docker pachayo yaishamisa. Chechipiri, kana iwe ukasaidzirawo matanda mairi ... ndine fungidziro isina kuvimbiswa kuti inopfuudza matanda ese pachayo, kuburikidza nedocker daemon. Kana isu tiine API imwe inopenga, saka mamwe maAPIs anomhanya mukuti havakwanise kutumira stdout uye stderr. Handizivi kuti izvi zvinozosvitsa kupi. Ndine fungidziro pamwero wekunzwa kuti hazvina basa kushandisa docker syslog mutyairi munzvimbo ino. Dhipatimendi redu rekuyedza rinoshanda rine rayo Greylog cluster ine matanda. Ivo vanoshandisa docker log vatyairi uye zvese zvinoita kunge zvakanaka ipapo. Asi vanobva vangonyora GELF kuna Graylog. Panguva yatakatanga zvese izvi, taida kuti zvingoshanda. Zvichida gare gare, apo mumwe munhu anouya ndokutaura kuti yave ichishanda senguva dzose kwezana ramakore, tichaedza.

Mubvunzo: Unoendesa pakati penzvimbo dzedata uchishandisa rsyslog. Wadii kuKafka?

Reply: Tinoita izvi, uye ndizvo zvazviri chaizvo. Nezvikonzero zviviri. Kana iyo chiteshi yakafa zvachose, saka matanda edu ese, kunyangwe ari akamanikidzwa fomu, haazokwira kuburikidza nawo. Uye kafka inovabvumira kuti vangorasikirwa mukuita. Nenzira iyi, tinobvisa kunamatira kwematanda aya. Isu tiri kungoshandisa Kafka munyaya iyi zvakananga. Kana isu tine chiteshi chakanaka uye tichida kuisunungura, saka isu tinoshandisa yavo rsyslog. Asi muchokwadi, iwe unogona kuimisa kuitira kuti idonhe zvayasina kupfuura nayo. Parizvino tiri kungoshandisa rsyslog kutumira zvakananga kune imwe nzvimbo, kumwe kuKafka.

Source: www.habr.com

Voeg