Ha re ke re koahele lintlha tsa motheo tsa ho rema lifate ho Docker le Kubernetes, ebe re sheba lisebelisoa tse peli tse ka sebelisoang ka mokhoa o sireletsehileng tlhahisong: Grafana Loki le EFK stack (Elasticsearch + Fluent Bit + Kibana).
Thepa ea sengoloa ke squeeze ho tloha . Haeba u na le takatso, haholo-holo tlhoko ea tlhahiso, u ka fumana koetliso e felletseng - ingolise bakeng sa thupelo .

Ho kena ho Docker
Boemong ba Kubernetes, lits'ebetso li hlahisoa ka li-pods, empa maemong a tlase li ntse li sebetsa ho Docker. Ka hona, ho hlokahala hore u lokise ho rema lifate ka tsela ea ho bokella lifate ho tloha lijaneng. Lijana li hlahisoa ke Docker, ho bolelang hore o hloka ho utloisisa hore na ho rema lifate ho hlophisitsoe joang boemong ba Docker.
Ke tšepa hore 'mali e mong le e mong oa tseba: li-log tsa kopo li lokela ho ngolloa stdout/stderr, eseng ka har'a setshelo. Li-log li kopantsoe ke Docker Daemon, 'me e sebetsa le li-log tse romelloang ho stdout/stderr. Ho phaella moo, ho ngola likutu ka har'a setshelo ho tletse mathata: setshelo se ruruha ho tloha ka har'a logi e ntseng e hōla (kaha ho ka etsahala hore ebe ha ho na Logrotate ka har'a setshelo), 'me Docker Daemon ha e tsebe ka log ena.
Docker e na le li-driver tse 'maloa tsa li-log kapa li-plugins bakeng sa ho bokella likotlolo tsa setshelo. Khatiso ea mahala ea Docker Community (CE) e na le bakhanni ba marang-rang ba fokolang ho feta Docker Enterprise Edition (EE) ea khoebo.

Ha ke so sebelise Docker EE ts'ebetsong: Southbridge re leka ho khomarela litharollo tsa Open Source, 'me bareki ha ba hloke boholo ba bokhoni bo eketsehileng ba Docker EE.
Bakhanni ba marang-rang ho Docker CE:
wa selehae - ho ngola lintlha ho lifaele tsa ka hare tsa Docker Daemon;
json faele - ho theha json-log ka har'a foldara e 'ngoe le e' ngoe ea setshelo;
koranteng - ho romella li-log ho tse hatisitsoeng.
Litlhophiso tsa ho rema lifate tsa Docker li fumaneha faeleng ea daemon.json.
Sebaka sa "log-driver" se hlalosa plugin, 'me tšimo ea "log-opts" e bolela litlhophiso tsa eona. Mohlala o ka holimo, "json-file" plugin e hlalositsoe, moeli oa boholo ba log ke "max-size": "10m"; moeli oa nomoro ea faele (litlhophiso tsa ho potoloha) ke "max-file": "3"; hammoho le boleng bo tla hokelloa ho li-logs.

Litlhophiso tse ling tsa mokhanni oa log li ka hlophisoa ka tšebeliso ea taelo. Sena se na le thuso haeba setshelo se arohaneng se hloka ho qalisoa ka mokhanni o fapaneng oa log.
Sena ke kamoo leano la ho rema lifate le shebahalang kateng ho Docker:

E sebetsa joang: mokhanni oa log, joalo ka json-file, o etsa lifaele. Babokelli ba li-log (Rsyslog, Fluentd, Logagent, le ba bang) ba bokella lifaele tsena ebe ba li fetisetsa ho Elastic, Sematext, kapa lisebelisoa tse ling.
Likarolo tsa ho rema lifate ho Kubernetes
Ka mokhoa o nolofalitsoeng, leano la ho rema lifate ho Kubernetes le shebahala tjena: ho na le pod, setshelo se ntse se sebetsa ho sona, setshelo se romela lits'oants'o ho stdout / stderr. Ebe Docker e etsa faele ebe e ngola li-log, tseo e ka li fetolang.

Ha re shebeng likarolo tsa ho rema lifate ho Kubernetes.
Boloka lintlha pakeng tsa li-deploys. Sena ke se hlokahalang bakeng sa tlhophiso e nepahetseng ea ho rema lifate. Haeba u sa boloke lits'oants'o pakeng tsa li-deployments, joale ha phetolelo e ncha ea kopo e lokolloa, li-logs tsa e fetileng li tla hlakoloa, 'me ho tsosolosa setshelo ho tla fella ka tahlehelo ea lifate. Kubernetes e na le senotlolo - e fetileng, e u lumella ho sheba lits'oants'o tsa lits'ebetso ho fihlela qalong ea Pod ea ho qetela, empa eseng botebo.
Kopanya li-log ho tsoa maemong ohle. Haeba li-microservices li tšoaroa ka maru, joale mofani oa maru o ikarabella ho beha leihlo tsamaiso. Haeba li-microservices li le ka har'a lisebelisoa tsa tsona, joale ntle le lits'oants'o tse tsoang lijaneng, u boetse u hloka ho bokella lits'oants'o tsa sistimi.
Pejana, ho ne ho se na lisebelisoa tse bonolo tsa ho bokella lits'oants'o tsa sistimi le li-microservices. Hangata, sesebelisoa se le seng se bokelletse lits'oants'o tsa sistimi (mohlala, Rsyslog), ea bobeli - e tsoa ho Docker (mohlala, koranta-bit e nang le mokhanni oa log ea Docker e lokiselitsoeng ho phatlalatsoa). Re lekile ho sebelisa koranta-bit - ho bokella lits'oants'o (ho mokhanni oa log ea Docker, bolela hore li-log li lokela ho ngoloa ho koranta) le ho tsoa ho sistimi (CentOS 7 e se e ntse e hlophisitsoe ebile e ngotsoe). Tharollo ea sebetsa, empa ha e ntle. Haeba ho na le li-log tse ngata, koranta-bit e qala ho lieha, melaetsa e lahlehile.
Liteko li ile tsa tsoela pele - mme tsela e 'ngoe e ile ea fumanoa. Ho CentOS 7, lits'oants'o tsa mantlha tsa sistimi (melaetsa, tlhahlobo, polokeho) li kopitsoa ka har'a var-log joalo ka lifaele. Ho Docker, o ka hlophisa le li-log tsa ho boloka lifaele tsa json. Ka hona, lifaele tsena tse tsoang ho CentOS 7 le Docker li ka bokelloa hammoho.
Ha nako e ntse e ea, tharollo ea ELK Stack e se e tumme. Ke motsoako oa lisebelisoa tse 'maloa: Elasticsearch, Logstash le Kibana.
Elasticsearch e boloka lits'oants'o tse tsoang lijaneng, Logstash e bokella lits'oants'o ho tsoa maemong, Kibana e u lumella ho sebetsana le lits'oants'o tse amoheloang le ho aha li-graph ho latela tsona. ELK Stack e ne e sebelisoa ka mafolofolo ka nako e itseng, empa, ka maikutlo a ka, nako ea eona e ntse e feta. Ke tla u bolella lebaka hamorao.
Kenya metadata. Li-Pods, lisebelisoa, lijana li ka hlahisoa kae kapa kae. Ho feta moo, kopo e le 'ngoe e ka ba le liketsahalo tse' maloa. Li-log li ngotsoe ka mokhoa o le mong, 'me re hloka ho utloisisa hore na ke replica efe, eo Pod e e ngolang, e leng sebakeng sefe sa mabitso. Ke ka lebaka leo metadata e lokelang ho kenngoa ho li-log.
Hlalosa likutu. Hoa qabola, empa litšenyehelo tsa ho boloka mokhoa oa ho rema lifate le ho beha leihlo li ka feta litšenyehelo tsa ts'ebeliso ea mantlha. Ha u e-na le likete tse mashome le makholo a likete tse fofang ka motsotsoana, sena se bonahala se le tlhaho, empa u ntse u hloka ho tseba mohala. Tsela e 'ngoe ea ho fumana mohala ona ke ho bala li-log.
E le molao, ha ho hlokahale hore u bokelle le ho boloka lits'oants'o tsohle, u hloka feela ho romela karolo ea tsona bakeng sa polokelo - ka mohlala, lifate tse nang le "temoso" kapa "phoso" boemo. Haeba re bua ka li-logs tsa nginx kapa ingress controller, joale u ka romela feela bakeng sa polokelo bao boemo ba bona bo fapaneng le ba 200. Empa ena hase keletso ea bokahohle: haeba ka tsela e itseng u haha analytics holim'a li-logs tsa Nginx, joale ho hlakile hore li lokela ho bokelloa.
Ha e khothalletsoe ho sefa li-log ntle le kelello, hobane data e tlhotliloeng e kanna ea se lekane bakeng sa tlhahlobo e tloaelehileng. Ka lehlakoreng le leng, mohlomong li-analytics ha lia lokela ho etsoa boemong ba ho rema lifate, empa boemong ba pokello ea metrics. Joale u ke ke ua tlameha ho boloka mela e makholo a likete ka khoutu ea 200. Mokhoa o mong ke ho fumana tlhahisoleseling mabapi le sephethephethe le liphoso ho tsoa ho metrics ea ingress controller.
Ka kakaretso, ho hlokahala hore u nahane ka hloko mona: u batla ho boloka eng le nako e kae, hobane ho seng joalo boemo bo tla hlaha moo tsamaiso ea ho rema lifate e tla nka lisebelisoa tse ngata ho feta morero o ka sehloohong.
Ha ho na tharollo e tloaelehileng ea ho rema lifate hajoale. Ho fapana le ho beha leihlo, moo ho nang le tharollo e le 'ngoe e atileng haholo ea Prometheus, ha ho na maemo a ho rema lifate.
Thutong ena, re tla sheba lisebelisoa tse peli: e 'ngoe e tumme le e' ngoe e tummeng. Ho na le tse ling, empa re ke ke ra li ama sehloohong sena.
Ha re ela hloko lintlha tsohle tse boletsoeng ka holimo, ho rema lifate ho Kubernetes joale ho ka emeloa setšoantšong se latelang:

Lenane la setshelo le ho potoloha li ntse li le teng, empa moemeli oa mokekelli o hlaha ea nkang lifate ebe o li romela bakeng sa polokelo (setšoantšong, ho Logging Backend). Moemeli o matha sebakeng se seng le se seng 'me hangata o hlahisoa Kubernetes.
Joale a re shebeng lisebelisoa tsa ho rema lifate.
Grafana Loki
e hlahile haufinyane, empa e se e tumme haholo. Melemo ea eona: ho bonolo ho e kenya, e sebelisa lisebelisoa tse fokolang, ha e hloke ho kenngoa ha Elasticsearch, kaha e boloka data ho TSDB (database ea letoto la nako). Sehloohong se fetileng, ke ngotse hore Prometheus e boloka data sebakeng sa polokelo ea litaba, 'me ena ke e' ngoe ea lintho tse ngata tse tšoanang pakeng tsa lihlahisoa tse peli. Bahlahisi ba bile ba re Loki ke "Prometheus bakeng sa lefats'e la ho rema lifate."
Phapang e nyane mabapi le TSDB bakeng sa ba e-so bale : TSDB e sebetsana hantle le mosebetsi oa ho boloka lintlha tse ngata, letoto la nako, empa ha e reretsoe ho boloka nako e telele. Haeba ka lebaka le itseng u hloka ho boloka likutung nako e telele ho feta libeke tse peli, ho molemo ho lokisa phetisetso ea bona ho DB e 'ngoe.
Molemo o mong oa Loki ke hore Grafana e sebelisetsoa ho bona lintlha ka mahlo. Ho bonolo haholo: ho Grafana re sheba data ea ho beha leihlo mme moo, ha re se re hokahane le Loki, re sheba lits'oants'o. U ka etsa li-graph u sebelisa li-log.
Mehaho ea Loki e shebahala tjena:

U sebelisa DaemonSet, moemeli o sebelisoa ho li-server tsohle tsa lihlopha - Promtail kapa Fluent Bit. Moemeli o bokella lifate. Loki oa li nka 'me oa li boloka ho TSDB ea eona. Metadata e eketsoa hang-hang litsing, e leng bonolo: o ka sefa ka li-Pods, libaka tsa mabitso, mabitso a lijana, esita le lileibole.
Loki e sebetsa ka sebopeho se tloaelehileng sa Grafana. Loki e bile e na le puo ea eona ea ho botsa, e bitsoang LogQL - e tšoanang ka lebitso le syntax ho PromQL ho Prometheus. Sesebelisoa sa Loki se na le lintlha tse nang le lipotso, kahoo ha ua tlameha ho li tseba ka hlooho.

Loki ka sebopeho sa Grafana
U sebelisa li-filters, u ka fumana likhoutu ho Loki ("400", "404" le tse ling tse ling); sheba lintlha tse tsoang ho node eohle; sefa dipoloko tsohle tse nang le lentsoe “phoso”. Haeba u tobetsa logong, karete e nang le lintlha tsohle mabapi le ketsahalo e tla buleha.
Loki e na le lisebelisoa tse lekaneng tse u lumellang hore u ntše lits'oants'o tse hlokahalang, leha ho le joalo, ho bua 'nete, ho ka ba le tse ling tsa tsona ka botekgeniki. Hona joale Loki o ntse a tsoela pele ka mafolofolo le ho fumana botumo.
Elastic + Fluent Bit + Kibana (EFK Stack)
EFK stack ke sesebelisoa sa khale sa khale, empa ha se sesebelisoa sa ho rema lifate se sa tsejoeng.
Qalong ea sengoloa, ELK (Elasticsearch + Logstash + Kibana) e boletsoe, empa stack ena e ile ea felloa ke nako ka lebaka la ho se hlahise haholo mme ka nako e ts'oanang Logstash e matla haholo. Ho e-na le hoo, ba ile ba qala ho sebelisa Fluentd e bobebe haholoanyane le e hlahisang litholoana, ’me ka mor’a nako e itseng e ile ea thusoa ke - e bobebe le ho feta, 'me e bile e hlahisa litholoana tse ngata.
Ho ea ka bahlahisi, Fluent Bit e sebetsa hantle ka makhetlo a fetang 100 ho feta Fluentd: "moo Fluentd e jang 20 MB ea RAM, Fluent Bit e tla ja 150 KB" - tlhaloso e tobileng ho tsoa litokomaneng. Ha u sheba sena, Fluent Bit e se e tumme haholo.
Fluent Bit e na le likarolo tse fokolang ho feta Fluentd, empa e akaretsa litlhoko tsa mantlha, kahoo hangata re sebelisa Fluent Bit.
EFK stack e sebetsa ka tsela e latelang: moemeli o bokella lits'oants'o tsa li-pods (hangata DaemonSet e sebetsang ho li-server tsohle tsa lihlopha) ebe o li romela polokelong (Elasticsearch, PostgreSQL kapa Kafka). Kibana e hokahanya le polokelo mme e fumana lintlha tsohle tse hlokahalang ho tloha moo.

e hlahisa litaba ka har'a sehokelo se bonolo sa tepo. Ho na le li-graph, li-filters le tse ling tse ngata.

U ka etsa li-dashboards kaofela u sebelisa li-log.

Likarolo tsa Bit tse hlakileng
Kaha Fluent Bit hangata ha e tsejoe hakaalo ho feta Logstash, a re e hlahlobisiseng. Fluent Bit e ka aroloa ka mokhoa o utloahalang ka li-module tse 6, 'me li-module tse ling li ka ba le li-plugins tse eketsang bokhoni ba Fluent Bit.

Mojule oa ho kenya e bokella lits'oants'o ho tsoa lifaeleng, lits'ebeletso tsa systemd, esita le ho tsoa ho tcp-socket (o hloka feela ho hlakisa pheletso, 'me Fluent Bit e tla qala ho ea moo). Bokhoni bona bo lekane ho bokella lits'oants'o ho tsoa ho sistimi le lijana.
Ka tlhahiso re sebelisa li-plugins hangata (e ka beoa foldareng ea li-log) le (o ka mo bolella hore na ho tsoa litšebeletsong life ho bokella lifate).
Parser module e tlisa likutu ka mokhoa o tloaelehileng. Ka kamehla, li-logs tsa Nginx ke khoele. U sebelisa plugin, khoele ena e ka fetoleloa ho JSON: hlalosa libaka le boleng ba tsona. JSON e bonolo haholo ho sebetsa ho feta logong ea likhoele, hobane ho na le likhetho tse bonolo tsa ho hlophisa.
Sefa module. Boemong bona, likutu tse sa hlokahaleng lia tlhotloa. Ka mohlala, ke li-log tse nang le "temoso" feela kapa tse nang le li-label tse itseng tse romeloang bakeng sa polokelo. Li-log tse khethiloeng li romelloa ho buffer.
Buffer module. Fluent Bit e na le mefuta e 'meli ea buffer: buffer memory le disk buffer. Buffer ke polokelo ea nakoana ea li-log, tse hlokahalang haeba ho ka ba le liphoso kapa ho hloleha. E mong le e mong o batla ho boloka ho RAM, kahoo hangata ba khetha disk buffer. Empa o hloka ho ela hloko hore pele o ea ho disk, lits'oants'o li ntse li lokolotsoe mohopolong.
Mojule wa ho tsamaisa/Output e na le melao le liaterese tsa ho romella li-log. Joalokaha ho se ho boletsoe, li-log li ka romeloa ho Elasticsearch, PostgreSQL kapa, mohlala, Kafka.
Hoa thahasellisa hore li-log li ka romelloa ho tloha Fluent Bit ho ea Fluentd. Kaha ea pele e bobebe ebile e sa sebetse haholo, o ka e sebelisa ho bokella lits'oants'o ebe o li romella ho Fluentd, ebe moo, o sebelisa li-plugins tse ling, o li sebedise ho feta le ho li romella polokelong.
Haeba u rera ho sebelisa Elasticsearch…
Qetellong, malebela a mabeli bakeng sa ba rerang ho sebelisa Elasticsearch joalo ka polokelo ea log tlhahiso.
- Hlophisa litlhokomeliso ka . Lenaneo lena le ntša melaetsa ea bohlokoa ho tsoa ho phallo e akaretsang ea li-log mme le fana ka tlhokomeliso ho poso kapa mocha o mong. Ke ’nete, e ile ea lokolloa haufinyane tjena .
- Fetola lintlha ka ho sebelisa sesebelisoa kapa mehala ho Elasticsearch API. Elastic ka boeona, ha e le hantle, e se e etsa mehato ea bohlokoa ea ho laola bophelo ba li-index ntle le ho sebelisa lisebelisoa tsa mokha oa boraro. Ka kakaretso, ha ho na lebaka la ho boloka lifate ka nako e telele: ho ke ke ha etsahala hore ho tla hlokahala hore ho be le log leha e le efe ka mor'a libeke tse peli - haeba e hlile e le ea bohlokoa, ka sebele e tla sebetsoa ka libeke tse peli. E le khetho ea ho qetela, li-logs tsa khale li ka bolokoa 'me tsa romeloa kae-kae bakeng sa polokelo ea nako e telele. Ke utloile ka lifate tse khethehileng tse hlokehang ka molao hore li bolokoe ho fihlela lilemo tse 5. Ka boeena, ha ke e-s'o kopane le sena, empa nke ke ka bapisa boitsebiso bo joalo le li-log tse tloaelehileng, mohlomong le ho li boloka ka thoko.
E tla ntšetsoa pele…
Mongoli: Marcel Ibraev, molaoli ea tiisitsoeng oa Kubernetes, moenjiniere ea sebetsang k'hamphaning , sebui le moqapi oa thupelo .
Source: www.habr.com
