Logs in Kubernetes (mme eseng feela) kajeno: litebello le 'nete

Logs in Kubernetes (mme eseng feela) kajeno: litebello le 'nete

Ke selemo sa 2019, 'me re ntse re se na tharollo e tloaelehileng ea ho kopanya li-log ho Kubernetes. Sengoliloeng sena, re rata, ka ho sebelisa mehlala ea litloaelo tsa 'nete, ho arolelana lipatlisiso tsa rona, mathata ao re kopaneng le ona le tharollo ea ona.

Leha ho le joalo, pele, ke tla etsa pehelo ea hore bareki ba fapaneng ba utloisise lintho tse fapaneng haholo ka ho bokella lifate:

  • motho e mong o batla ho bona tšireletseho le li-log log;
  • motho - ho rema lifate tse bohareng tsa lisebelisoa tsohle;
  • 'me ho ba bang, ho lekane ho bokella li-logs tsa kopo feela, ho sa kenyeletsoe, mohlala, li-balancers.

Ka tlase ke sehiloeng se ka tlase mabapi le kamoo re sebelisitseng "lenane la litakatso" tse fapaneng le mathata ao re kopaneng le ona.

Khopolo: ka lisebelisoa tsa ho rema lifate

Ka morao ho likarolo tsa sistimi ea ho rema lifate

Ho rema lifate ho tsamaile nako e telele, ka lebaka la mekhoa ea ho bokella le ho hlahloba lifate, e leng eona eo re e sebelisang kajeno. Morao koana lilemong tsa bo-1950, Fortran e ile ea hlahisa analogue ea melapo e tloaelehileng ea ho kenya / ho tsoa, ​​e ileng ea thusa moqapi oa lenaneo ho lokisa lenaneo la hae. Tsena e ne e le li-log tsa pele tsa k'homphieutha tse nolofalitseng baetsi ba mananeo ba mehleng eo. Kajeno re bona ho bona karolo ea pele ea mokhoa oa ho rema lifate - mohlodi kapa “moetsi” wa dikutu.

Setsebi sa k'homphieutha ha sea ka sa ema: marang-rang a k'homphieutha a ile a hlaha, lihlopha tsa pele ... Mekhoa e rarahaneng e nang le lik'homphieutha tse 'maloa e ile ea qala ho sebetsa. Hona joale batsamaisi ba tsamaiso ba ile ba qobelloa ho bokella lifate ho tloha mechine e mengata, 'me maemong a khethehileng ba ka eketsa melaetsa ea kernel ea OS haeba ho hlokahala hore ba batlisise ho hlōleha ha tsamaiso. Ho hlalosa litsamaiso tse bohareng tsa pokello ea likutu, mathoasong a lilemo tsa bo-2000 e ile ea hatisoa RFC 3164, e leng maemo a remote_syslog. Ke kamoo karolo e 'ngoe ea bohlokoa e hlahileng kateng: mokgobokelli wa log le polokelo ea tsona.

Ka keketseho ea palo ea li-log le kenyelletso e atileng ea mahlale a marang-rang, ho ile ha hlaha potso ea hore na ke lits'oants'o life tse lokelang ho bontšoa ho basebelisi. Lisebelisoa tse bonolo tsa console (awk/sed/grep) li nkeloe sebaka ke tse tsoetseng pele haholo bashebelli ba log - karolo ea boraro.

Ka lebaka la ho eketseha ha palo ea li-logs, ntho e 'ngoe e ile ea hlaka: ho hlokahala lifate, empa eseng kaofela ha tsona. 'Me li-log tse fapaneng li hloka maemo a fapaneng a poloko: tse ling li ka lahleha ka letsatsi, ha tse ling li hloka ho bolokoa lilemo tse 5. Kahoo, karolo ea ho sefa le ho tsamaisa phallo ea data e kentsoe tsamaisong ea ho rema lifate - ha re e bitse. sefepi.

Polokelo e boetse e entse phallo e kholo: ho tloha ho lifaele tse tloaelehileng ho ea ho li-database tsa kamano, ebe ho ea polokelong e shebaneng le litokomane (mohlala, Elasticsearch). Kahoo polokelo e ile ea aroloa ho 'mokelli.

Qetellong, eona mohopolo oa logi o atolohile ho ba mofuta oa liketsahalo tse sa bonahaleng tseo re batlang ho li boloka bakeng sa nalane. Kapa ho fapana le moo, haeba u hloka ho etsa lipatlisiso kapa ho etsa tlaleho ea tlhahlobo ...

Ka lebaka leo, ka nako e batlang e le khutšoanyane, pokello ea li-log e fetohile tsamaiso e nyenyane ea bohlokoa, eo ka nepo e ka bitsoang e 'ngoe ea likaroloana tsa Big Data.

Logs in Kubernetes (mme eseng feela) kajeno: litebello le 'nete
Haeba ka nako e 'ngoe likhatiso tse tloaelehileng li ne li ka lekana bakeng sa "tsamaiso ea ho rema lifate," joale boemo bo fetohile haholo.

Kubernetes le logs

Ha Kubernetes a fihla litsing tsa motheo, bothata bo seng bo ntse bo le teng ba ho bokella lifate ha boa ka ba feta. Ka litsela tse ling, e ile ea e-ba bohloko le ho feta: ho laola sethala sa lisebelisoa ha hoa ka ha nolofalloa feela, empa hape ho thata ka nako e le 'ngoe. Litšebeletso tse ngata tsa khale li se li qalile ho fallela ho li-microservices. Boemong ba lits'oants'o, sena se bonts'oa palo e ntseng e hola ea mehloli ea li-log, potoloho ea bona e khethehileng ea bophelo, le tlhoko ea ho latela likamano tsa likarolo tsohle tsa sistimi ka lits'oants'o ...

Ha ke sheba pele, nka bolela hore joale, ka bomalimabe, ha ho na khetho e tloaelehileng ea ho rema lifate bakeng sa Kubernetes e ka bapisoang hantle le tse ling kaofela. Merero e tsebahalang haholo sechabeng ke e latelang:

  • motho emong o phutholla qubu EFK (Elasticsearch, Fluentd, Kibana);
  • motho e mong o leka e sa tsoa lokolloa Loki kapa lisebelisoa Mosebetsi oa ho rema lifate;
  • rona (mme mohlomong eseng rona feela? ..) Ke khotsofetse haholo ka nts'etsopele ea ka - loghouse...

E le molao, re sebelisa liphutheloana tse latelang ho lihlopha tsa K8s (bakeng sa tharollo e ikemetseng):

Leha ho le joalo, nke ke ka lula holim'a litaelo tsa ho kenya le ho li hlophisa. Ho e-na le hoo, ke tla lebisa tlhokomelo mefokolong ea bona le liqeto tse ngata tsa lefats'e ka boemo ka li-logs ka kakaretso.

Itloaetse ka likutu ho K8s

Logs in Kubernetes (mme eseng feela) kajeno: litebello le 'nete

"Likota tsa letsatsi le letsatsi", ke ba bakae ba lona moo?..

Pokello e bohareng ea likutu ho tsoa mohahong oa motheo o batlang o le moholo e hloka lisebelisoa tse ngata, tse tla sebelisoa ho bokella, ho boloka le ho lokisa likutu. Nakong ea ts'ebetso ea merero e fapaneng, re ile ra tobana le litlhoko tse fapaneng le mathata a ts'ebetso a hlahang ho bona.

Ha re leke ClickHouse

Ha re shebeng polokelo e bohareng ea projeke e nang le ts'ebeliso e hlahisang lifate ka mafolofolo: mela e fetang 5000 motsotsoana. Ha re qale ho sebetsa le likutu tsa hae, re li kenye ho ClickHouse.

Hang ha nako ea sebele e hlokahala, seva ea 4-core e nang le ClickHouse e tla be e se e tletse ka har'a disk subsystem:

Logs in Kubernetes (mme eseng feela) kajeno: litebello le 'nete

Mofuta ona oa ho jara o bakoa ke taba ea hore re leka ho ngola ho ClickHouse kapele kamoo ho ka khonehang. 'Me database e sebetsana le sena ka boima bo eketsehileng ba disk, bo ka bakang liphoso tse latelang:

DB::Exception: Too many parts (300). Merges are processing significantly slower than inserts

Taba ke hore MergeTree litafole ho ClickHouse (li na le data ea log) li na le mathata a tsona nakong ea ts'ebetso ea ho ngola. Lintlha tse kentsoeng ho tsona li hlahisa karohano ea nakoana, e ntan'o kopanngoa le tafole e kholo. Ka lebaka leo, ho rekota ho bonahala ho le boima haholo ho disk, hape ho tlas'a moeli oo re o fumaneng tsebiso ka holimo: ha ho likaroloana tse fetang 1 tse ka kopanngoang ka motsotsoana o le mong (ha e le hantle, sena ke ho kenya 300). ka motsotsoana).

Ho qoba boitšoaro bona, lokela ho ngolla ClickHouse ka likotoana tse kholo kamoo ho ka khonehang 'me ha ho nako e fetang 1 metsotsoana e meng le e meng e 2. Leha ho le joalo, ho ngola ka ho phatloha ho hoholo ho fana ka maikutlo a hore re lokela ho ngola hangata ho ClickHouse. Sena, ka lehlakoreng le leng, se ka lebisa ho khaphatseha ha buffer le tahlehelo ea likutu. Tharollo ke ho eketsa buffer ea Fluentd, empa tšebeliso ea memori le eona e tla eketseha.

mantsoe: Karolo e 'ngoe e thata ea tharollo ea rona le ClickHouse e ne e amana le taba ea hore karohano molemong oa rona (loghouse) e kengoa ts'ebetsong ka litafole tsa kantle tse hokahaneng. Kopanya tafole. Sena se lebisa 'neteng ea hore ha ho etsoa sampole nako e telele, ho hlokahala RAM e ngata, kaha metatable e pheta-pheta ka likarolo tsohle - esita le tseo ho hlakileng hore ha li na data e hlokahalang. Leha ho le joalo, joale mokhoa ona o ka phatlalatsoa ka mokhoa o sireletsehileng hore ha o sebetse bakeng sa mefuta ea hajoale ea ClickHouse (c 18.16).

Ka lebaka leo, hoa hlaka hore hase morero o mong le o mong o nang le lisebelisoa tse lekaneng tsa ho bokella lifate ka nako ea sebele ho ClickHouse (ka ho toba, kabo ea bona e ke ke ea e-ba e loketseng). Ho feta moo, o tla hloka ho sebelisa аккумулятор, eo re tla khutlela ho eona hamorao. Nyeoe e hlalositsoeng ka holimo ke ea sebele. 'Me ka nako eo re ne re sa khone ho fana ka tharollo e ka tšeptjoang le e tsitsitseng e neng e tla lumellana le moreki le ho re lumella ho bokella lifate ka tieho e fokolang ...

Ho thoe'ng ka Elasticsearch?

Elasticsearch e tsejoa ka ho sebetsana le meroalo e boima ea mosebetsi. Ha re e leke morerong o tšoanang. Joale mojaro o shebahala tjena:

Logs in Kubernetes (mme eseng feela) kajeno: litebello le 'nete

Elasticsearch e khonne ho cheka phallo ea data, leha ho le joalo, ho ngola meqolo e joalo ho eona ho sebelisa CPU haholo. Sena se etsoa qeto ka ho hlophisa sehlopha. Ka botekgeniki, sena ha se bothata, empa ho ile ha fumaneha hore ho sebelisa sistimi ea pokello ea li-log, re se re ntse re sebelisa li-cores tse 8 mme re na le karolo e 'ngoe e laetsoeng haholo tsamaisong ...

Ntlha ea bohlokoa: khetho ena e ka lokafatsoa, ​​empa hafeela morero o le moholo 'me tsamaiso ea oona e itokiselitse ho sebelisa lisebelisoa tsa bohlokoa tsamaisong e bohareng ea ho rema lifate.

Joale ho hlaha potso ea tlhaho:

Ke lifate life tse hlileng li hlokahalang?

Logs in Kubernetes (mme eseng feela) kajeno: litebello le 'nete Ha re leke ho fetola mokhoa ona ka boeona: li-log li lokela ho ba tse rutang ka nako e le 'ngoe eseng ho koahela mong le e mong ketsahalo tsamaisong.

Ha re re re na le lebenkele le atlehileng la Marang-rang. Ke lifate life tsa bohlokoa? Ho bokella tlhahisoleseding e ngata kamoo ho ka khonehang, mohlala, ho tloha monyako oa ho lefa, ke khopolo e ntle. Empa ha se lits'oants'o tsohle tse tsoang ts'ebeletso ea ho seha litšoantšo ka har'a lethathamo la lihlahisoa tse bohlokoa ho rona: liphoso feela le tlhahlobo e tsoetseng pele li lekane (mohlala, liperesente tsa liphoso tse 500 tse hlahisoang ke karolo ena).

Kahoo re fihletse qeto ea hore ho rema lifate tse bohareng ha se kamehla ho lokafatsang. Hangata moreki o batla ho bokella lits'oants'o tsohle sebakeng se le seng, leha ha e le hantle, ho tsoa lethathamong lohle, ho hlokahala feela 5% ea melaetsa e bohlokoa bakeng sa khoebo:

  • Ka nako e 'ngoe ho lekane ho lokisa, ho re, boholo feela ba setshelo sa setshelo le pokello ea liphoso (mohlala, Sentry).
  • Tsebiso ea phoso le tlaleho e kholo ea sebaka ka boeona hangata e ka lekana ho batlisisa diketsahalo.
  • Re ne re e-na le merero e amanang le liteko tse sebetsang feela le litsamaiso tsa pokello ea liphoso. Moqapi o ne a sa hloke lits'oants'o tse joalo - o bone ntho e 'ngoe le e' ngoe ho tsoa mekhoeng ea liphoso.

Papiso ea bophelo

Pale e 'ngoe e ka fana ka mohlala o motle. Re fumane kopo ho tsoa ho sehlopha sa ts'ireletso sa e mong oa bareki ba rona ba neng ba se ba ntse ba sebelisa tharollo ea khoebo e entsoeng khale pele ho kenyelletsoa Kubernetes.

Ho ne ho hlokahala ho "etsa metsoalle" ea sistimi e bohareng ea pokello ea lits'oants'o tse nang le sensor ea bothata ba khoebo - QRadar. Sistimi ena e ka amohela lits'oants'o ka protocol ea syslog mme ea li fumana ho FTP. Leha ho le joalo, ha hoa ka ha khoneha hang-hang ho e kopanya le remote_syslog plugin bakeng sa puo e hlakileng (joalokaha ho ne ho bonahala, ha re mong). Mathata a ho theha QRadar a ile a ba ka lehlakoreng la sehlopha sa ts'ireletso sa moreki.

Ka lebaka leo, karolo ea li-logs tsa bohlokoa tsa khoebo li ile tsa kenngoa ho FTP QRadar, 'me karolo e' ngoe e ile ea fetisetsoa ka syslog e hōle ka ho toba ho tloha ho li-node. Bakeng sa sena re bile re ngola chate e bonolo - mohlomong e tla thusa motho ho rarolla bothata bo ts'oanang ... Ka lebaka la morero o hlahisitsoeng, mofani ka boeena o ile a amohela le ho hlahloba lifate tsa bohlokoa (a sebelisa lisebelisoa tseo a li ratang haholo), 'me re ile ra khona ho fokotsa litšenyehelo tsa tsamaiso ea ho rema lifate, ho boloka feela khoeling e fetileng.

Mohlala o mong o bontša seo u sa lokelang ho se etsa. E mong oa bareki ba rona bakeng sa ho sebetsa ea e 'ngoe le e' ngoe liketsahalo tse tsoang ho mosebelisi, tse entsoeng ka multiline tlhahiso e sa hlophisoang tlhahisoleseding ho log. Joalo ka ha u ka nahana, li-log tse joalo li ne li le thata haholo ho li bala le ho li boloka.

Litekanyetso tsa li-log

Mehlala e joalo e lebisa qetong ea hore ntle le ho khetha mokhoa oa ho bokella log, o hloka ho hape li rala likutu ka botsona! Ke lintho life tse hlokahalang moo?

  • Li-log li tlameha ho ba ka mokhoa o ka baloang ka mochini (mohlala, JSON).
  • Lifate li lokela ho ba tse kopanang 'me li khone ho fetola tekanyo ea ho rema lifate e le ho rarolla mathata a ka bang teng. Ka nako e ts'oanang, libakeng tsa tlhahiso o lokela ho tsamaisa litsamaiso tse nang le boemo ba ho rema lifate joalo ka temoso ea kapa phosong.
  • Li-log li tlameha ho ba tse tloaelehileng, ke hore, nthong ea log, mela eohle e tlameha ho ba le mofuta o tšoanang oa tšimo.

Li-log tse sa hlophisoang li ka lebisa mathateng a ho kenya lits'oants'o polokelong le ho emisa ts'ebetso ea tsona ka botlalo. E le papiso, mohlala ke ona o nang le phoso ea 400, eo ba bangata ba kileng ba kopana le eona ka li-log tse hlakileng:

2019-10-29 13:10:43 +0000 [warn]: dump an error event: error_class=Fluent::Plugin::ElasticsearchErrorHandler::ElasticsearchError error="400 - Rejected by Elasticsearch"

Phoso e bolela hore u romella sebaka seo mofuta oa sona o sa tsitsang ho index ka 'mapa o seng o entsoe. Mohlala o bonolo ka ho fetisisa ke tšimo ea log ea nginx e nang le phapang $upstream_status. E ka ba le nomoro kapa khoele. Ka mohlala:

{ "ip": "1.2.3.4", "http_user": "-", "request_id": "17ee8a579e833b5ab9843a0aca10b941", "time": "29/Oct/2019:16:18:57 +0300", "method": "GET", "uri": "/staffs/265.png", "protocol": "HTTP/1.1", "status": "200", "body_size": "906", "referrer": "https://example.com/staff", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36", "request_time": "0.001", "cache_status": "-", "upstream_response_time": "0.001, 0.007", "upstream_addr": "127.0.0.1:9000", "upstream_status": "200", "upstream_response_length": "906", "location": "staff"}
{ "ip": "1.2.3.4", "http_user": "-", "request_id": "47fe42807f2a7d8d5467511d7d553a1b", "time": "29/Oct/2019:16:18:57 +0300", "method": "GET", "uri": "/staff", "protocol": "HTTP/1.1", "status": "200", "body_size": "2984", "referrer": "-", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.70 Safari/537.36", "request_time": "0.010", "cache_status": "-", "upstream_response_time": "0.001, 0.007", "upstream_addr": "10.100.0.10:9000, 10.100.0.11:9000", "upstream_status": "404, 200", "upstream_response_length": "0, 2984", "location": "staff"}

Li-log li bontša hore seva 10.100.0.10 e arabetse ka phoso ea 404 mme kopo e rometsoe polokelong e 'ngoe ea litaba. Ka lebaka leo, boleng ba li-log bo ile ba fetoha tjena:

"upstream_response_time": "0.001, 0.007"

Boemo bona bo tloaelehile hoo bo lokelang ho aroloa litšupiso litokomaneng.

Ho thoe'ng ka ho tšepahala?

Ho na le linako tseo ka tsona lits'oants'o tsohle ntle le mokhelo li leng bohlokoa. 'Me ka sena, merero e tloaelehileng ea pokello ea li-log bakeng sa K8 e sisintsoeng/e tšohliloeng ka holimo e na le mathata.

Ka mohlala, motho ea tsebang ka mokhoa o phollatsi ha a khone ho bokella linkho ho tsoa lijaneng tsa nakoana. Ho e 'ngoe ea merero ea rona, setshelo sa phalliso ea database se ne se phela nako e ka tlase ho metsotsoana e 4 ebe se hlakoloa - ho latela tlhaloso e lumellanang:

"helm.sh/hook-delete-policy": hook-succeeded

Ka lebaka la sena, tlaleho ea ts'ebetso ea ho falla e ne e sa kenyelletsoa polokelong. Lipolotiki li ka thusa tabeng ena. before-hook-creation.

Mohlala o mong ke Docker log rotation. Ha re re ho na le kopo e ngollang li-logs ka mafolofolo. Tlas'a maemo a tloaelehileng, re khona ho sebetsana le lits'oants'o tsohle, empa hang ha bothata bo hlaha - ka mohlala, joalokaha ho hlalositsoe ka holimo ka mokhoa o fosahetseng - ho emisa ho sebetsa, 'me Docker e potoloha faele. Sephetho ke hore li-log tsa bohlokoa tsa khoebo li ka lahleha.

Ke ka lebaka leo ho bohlokoa ho arola melapo ea log, ho kenyelletsa ho romella tse bohlokoa ka ho fetisisa ka har'a kopo ho netefatsa polokeho ea tsona. Ho phaella moo, e ke ke ea e-ba ho feteletseng ho etsa tse ling “mokgoboketsi” wa dikutu, e ka pholohang ho se fumanehe ha polokelo ea nakoana ha e ntse e boloka melaetsa ea bohlokoa.

Qetellong, ha rea ​​lokela ho lebala seo Ho bohlokoa ho hlokomela subsystem efe kapa efe ka nepo. Ho seng joalo, ho bonolo ho kena boemong boo ho bona motho ea buang hantle a leng boemong CrashLoopBackOff 'me ha e romele letho,' me sena se tšepisa ho lahleheloa ke boitsebiso ba bohlokoa.

fumanoeng ke

Sehloohong sena, ha re shebe litharollo tsa SaaS joalo ka Datadog. Mathata a mangata a hlalositsoeng mona a se a rarollotsoe ka tsela e 'ngoe ke lik'hamphani tsa khoebo tse sebetsanang le ho bokella lifate, empa hase bohle ba ka sebelisang SaaS ka mabaka a sa tšoaneng. (tse ka sehloohong ke litšenyehelo le ho latela 152-FZ).

Pokello ea log e bohareng qalong e shebahala e le mosebetsi o bonolo, empa ha ho joalo ho hang. Ho bohlokoa ho hopola hore:

  • Ke likarolo tsa bohlokoa feela tse lokelang ho kenngoa ka botlalo, athe ho beha leihlo le ho bokella liphoso ho ka hlophisoa litsamaiso tse ling.
  • Li-logs tse hlahisoang li lokela ho bolokoa tse fokolang e le hore li se ke tsa eketsa mojaro o sa hlokahaleng.
  • Li-log li tlameha ho baloa ka mochini, li tloaelehe, 'me li be le sebopeho se thata.
  • Ha e le hantle, lifate tsa bohlokoa li lokela ho romelloa ka molapo o fapaneng, o lokelang ho aroloa ho tse ka sehloohong.
  • Ke habohlokoa ho nahana ka accumulator ea log, e ka u pholosang ho tloha ho phatloheng ha mojaro o phahameng le ho etsa hore mojaro o boloketsoeng ho feta junifomo.

Logs in Kubernetes (mme eseng feela) kajeno: litebello le 'nete
Melao ena e bonolo, haeba e sebelisoa hohle, e ka lumella lipotoloho tse hlalositsoeng ka holimo hore li sebetse - le hoja li haelloa ke likarolo tsa bohlokoa (betri). Haeba u sa khomarele melao-motheo e joalo, mosebetsi o tla u lebisa habonolo le lisebelisoa ho karolo e 'ngoe e jereng haholo ('me ka nako e ts'oanang e sa sebetse) ea tsamaiso.

PES

Bala hape ho blog ea rona:

Source: www.habr.com

Eketsa ka tlhaloso