Logs in Kubernetes (ma e le gata) i aso nei: faʻamoemoega ma mea moni

Logs in Kubernetes (ma e le gata) i aso nei: faʻamoemoega ma mea moni

O le 2019, ma e leai lava se matou fofo masani mo le faʻapipiʻiina o ogalaau i Kubernetes. I lenei tusiga, matou te mananaʻo, faʻaaoga faʻataʻitaʻiga mai faʻataʻitaʻiga moni, e faʻasoa a matou sailiga, faʻafitauli na feagai ma a latou fofo.

Ae ui i lea, muamua, o le a ou faia se faʻaagaga e malamalama ai tagata faʻatau eseese i mea eseese e ala i le aoina o ogalaau:

  • e mana'o se tasi e va'ai le puipuiga ma fa'amaumauga su'etusi;
  • se tasi - fa'atotonugalemu ogalaau o mea tetele uma;
  • ma mo nisi, ua lava le aoina o ogalaau talosaga, e le aofia ai, mo se faataitaiga, paleni.

Lalo o le tipi i lalo e uiga i le auala na matou faʻatinoina ai "lisi manaʻoga" ma o a faʻafitauli na matou feagai.

A'oa'oga: e uiga i meafaigaluega fa'amau

Tala'aga i vaega o se faiga fa'amau

O loʻo oʻo mai le taʻaloga i se auala umi, o se taunuuga o auala mo le aoina ma le auiliiliga o ogalaau ua atiaʻe, o le mea lea tatou te faʻaaogaina i aso nei. I tua i le 1950s, na faʻaalia ai e Fortran se faʻataʻitaʻiga o faʻaoga masani / faʻaogaina vaitafe, lea na fesoasoani i le tagata fai polokalame e faʻapipiʻi lana polokalama. O uluai ogalaau komepiuta ia na faigofie ai le olaga mo tagata fai polokalame i na taimi. I aso nei tatou te vaʻaia i totonu ia i latou le vaega muamua o le logging system - puna po'o le "tuuina" o ogalaau.

E leʻi tu lava le saienisi komepiuta: o fesoʻotaʻiga komepiuta na faʻaalia, o fuifui muamua ... O faiga faʻalavelave e aofia ai le tele o komepiuta na amata ona galue. O le taimi nei na faʻamalosia pulega faʻapitoa e aoina mai ogalaau mai le tele o masini, ma i tulaga faʻapitoa e mafai ona latou faʻaopoopoina feʻau kernel OS pe a manaʻomia ona latou suʻesuʻeina se faʻaletonu faiga. Mo le fa'amatalaina o faiga fa'atotonugalemu o le aoina o ogalaau, i le amataga o le 2000 na fa'asalalau ai RFC 3164, lea na fa'asalaina remote_syslog. O le ala lea na aliali mai ai se isi vaega taua: aoina ogalaau ma lo latou teuina.

Faatasi ai ma le faateleina o le tele o ogalaau ma le salalau lautele o tekinolosi i luga o le upega tafaʻilagi, na tulaʻi mai ai le fesili pe o a ni ogalaau e manaʻomia ona faʻaalia lelei i tagata faʻaoga. Mea faigaluega fa'amafanafana faigofie (awk/sed/grep) ua suia i mea e sili atu ona maualuga tagata matamata ogalaau - vaega lona tolu.

Ona o le faateleina o le tele o ogalaau, o se isi mea na manino: e manaʻomia ni ogalaau, ae le o mea uma. Ma o ogalaau eseese e manaʻomia tulaga eseese o le faʻasaoina: o nisi e mafai ona leiloa i le aso, ae o isi e manaʻomia ona teuina mo le 5 tausaga. O lea la, o se vaega mo le faʻamamaina ma le faʻaogaina o faʻamaumauga o faʻamaumauga na faʻaopoopoina i le faiga faʻapipiʻi - seʻi taʻua faamama.

O le teuina ua faia foi se oso tele: mai faila masani i faʻamaumauga fesoʻotaʻiga, ona sosoo ai lea ma le teuina o pepa (mo se faʻataʻitaʻiga, Elasticsearch). O lea na vavae ese ai le teuina mai le aoina.

Mulimuli ane, o le manatu tonu lava o se ogalaau ua faʻalauteleina i se ituaiga o faʻasalalauga faʻapitoa o mea tutupu tatou te mananaʻo e faʻasaoina mo le talafaasolopito. Po'o se mea, pe afai e te manaʻomia le faia o se suʻesuʻega poʻo le tusiaina o se lipoti auʻiliʻili...

O se taunuuga, i se taimi puupuu, o le aoina o ogalaau ua atiina ae i se vaega taua tele, lea e mafai ona taʻua saʻo o se tasi o vaega i Big Data.

Logs in Kubernetes (ma e le gata) i aso nei: faʻamoemoega ma mea moni
Afai i se tasi taimi o lolomi masani e mafai ona lava mo se "faiga faʻapipiʻi," o lea ua suia tele le tulaga.

Kubernetes ma ogalaau

Ina ua oʻo mai Kubernetes i atinaʻe, o le faʻafitauli o loʻo i ai nei o le aoina o ogalaau e leʻi faʻaaogaina foi. I nisi o itu, na atili ai ona tiga: o le puleaina o le fausaga o fausaga e le gata ina faafaigofieina, ae faigata foi i le taimi e tasi. Tele auaunaga tuai ua amata ona femalaga'i ile microservices. I le tulaga o ogalaau, o loʻo faʻaalia lenei mea i le faʻatupulaia o numera o faʻapogai ogalaau, o latou taamilosaga faʻapitoa o le olaga, ma le manaʻoga e siaki sootaga o vaega uma o le faiga e ala i ogalaau...

I le vaʻai i luma, e mafai ona ou taʻu atu i le taimi nei, o le mea e leaga ai, e leai se faʻasalalauga faʻapipiʻi filifiliga mo Kubernetes e faʻatusatusa lelei i isi uma. O polokalame sili ona lauiloa i totonu o le alalafaga e faʻapea:

  • ua tatalaina e se tasi le faaputuga EFK (Elasticsearch, Fluentd, Kibana);
  • o lo'o taumafai se tasi i le fa'amalolo talu ai nei Loki po'o fa'aoga Fa'atonu ogalaau;
  • tatou (ma atonu e le gata ia i tatou?..) Ou te matua faamalieina i loʻu lava atinaʻe - fale ogalaau...

I le avea ai ma tulafono, matou te faʻaogaina fusi nei i K8s fuifui (mo fofo faʻafeiloaʻi e le tagata lava ia):

Ae ui i lea, o le a ou le nofo i luga o faʻatonuga mo latou faʻapipiʻi ma faʻatulagaina. Nai lo lena, o le a ou taulaʻi atu i o latou vaivaiga ma sili atu faʻaiʻuga o le lalolagi e uiga i le tulaga ma ogalaau i le lautele.

Faataitai i ogalaau i K8s

Logs in Kubernetes (ma e le gata) i aso nei: faʻamoemoega ma mea moni

“Ogalaau o aso uma”, e toafia outou o iai?..

Fa'atotonugalemu aoina o ogalaau mai se fausaga tetele tele e manaʻomia ai le tele o punaoa, lea o le a faʻaalu i le aoina, teuina ma le faʻaogaina o ogalaau. I le taimi o le faʻagaioiina o galuega eseese, sa matou feagai ma manaʻoga eseese ma faʻafitauli faʻatino na aliaʻe mai ia i latou.

Tatou taumafai ClickHouse

Se'i o tatou va'ava'ai i se fa'aputuga tu'ufa'atasi i luga o se galuega fa'atino ma se talosaga e fa'atupu ogalaau ma le malosi: sili atu i le 5000 laina i le sekone. Tatou amata galue ma ana ogalaau, faʻaopoopo i latou ile ClickHouse.

O le taimi lava e manaʻomia ai le maualuga o le taimi moni, o le 4-core server ma ClickHouse o le a sili atu le mamafa i luga o le disk subsystem:

Logs in Kubernetes (ma e le gata) i aso nei: faʻamoemoega ma mea moni

O lenei ituaiga o uta e mafua mai i le mea moni o loʻo matou taumafai e tusi i le ClickHouse i le vave e mafai ai. Ma o le database e tali atu i lenei mea ma le faateleina o le uta o le disk, lea e mafai ona mafua ai mea sese:

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

Point o le MergeTree laulau i le ClickHouse (o loʻo i ai faʻamatalaga ogalaau) e iai a latou lava faʻafitauli i le taimi o galuega tusitusi. O faʻamatalaga faʻapipiʻi i totonu e maua ai se vaeluaga le tumau, ona tuʻufaʻatasia lea ma le laulau autu. O le iʻuga, o le faʻamaumauga e foliga mai e matua faigata lava i luga o le disk, ma e noatia foi i le tapulaʻa na matou mauaina le faʻamatalaga e uiga i luga: e le sili atu i le 1 subpartitions e mafai ona tuʻufaʻatasia i le 300 sekone (o le mea moni, o le 300 faʻapipiʻi lea. i le sekone).

Ina ia aloese mai lenei amio, e tatau ona tusi i le ClickHouse i vaega tetele e mafai ma ia le sili atu i le 1 taimi i le 2 sekone. Ae ui i lea, o le tusitusi i le tele o mea e taʻu mai ai e tatau ona tatou tusitusi faʻaitiiti i le ClickHouse. O le mea lea, e mafai ona o'o atu ai i se pa'u ma'i ma leiloa o ogalaau. O le fofo o le faʻateleina lea o le Fluentd buffer, ae o le a faʻateleina foi le taumafaina manatua.

mataʻi: O le isi faʻafitauli faʻafitauli o la matou fofo ma ClickHouse e fesoʻotaʻi ma le mea moni o le vaeluaga o la matou mataupu (loghouse) e faʻatinoina e ala i laulau fafo e fesoʻotaʻi. Tuufaatasi laulau. E taʻitaʻia ai le mea moni pe a faʻataʻitaʻiina taimi tetele, e manaʻomia tele le RAM, talu ai o le metatable e faʻasolosolo i vaega uma - e oʻo lava ia i latou e manino lava e le o iai faʻamatalaga talafeagai. Ae ui i lea, o lenei auala e mafai ona faʻamaonia ma le saogalemu ua le toe aoga mo lomiga o loʻo iai nei o ClickHouse (c 18.16).

O le iʻuga, e manino mai e leʻo lava galuega uma e maua ai punaoa e aoina ai ogalaau i le taimi moni i le ClickHouse (sili atu, latou tufatufaga o le a le talafeagai). E le gata i lea, e tatau ona e faʻaaogaina faaputuputu, lea o le a tatou toe foi atu i ai mulimuli ane. O le mataupu o loʻo faʻamatalaina i luga e moni. Ma i lena taimi sa le mafai ona matou ofoina atu se tali faʻatuatuaina ma mautu e fetaui ma le tagata faʻatau ma faʻatagaina i matou e aoina ogalaau ma sina faʻatuai ...

Ae faapefea Elasticsearch?

Elasticsearch ua lauiloa e taulimaina galuega mamafa. Sei o tatou faataitai i le galuega lava lea e tasi. O lea la o le uta e pei o lenei:

Logs in Kubernetes (ma e le gata) i aso nei: faʻamoemoega ma mea moni

Elasticsearch na mafai ona eliina le faʻamaumauga o faʻamaumauga, peitaʻi, o le tusiaina o ia voluma i ai e faʻaaogaina tele le PPU. E fa'ai'uina lea i le fa'atulagaina o se fuifui. I le tulaga faʻapitoa, e leʻo se faʻafitauli, ae e foliga mai e naʻo le faʻaogaina o le faʻaogaina o le ogalaau faʻapipiʻi ua uma ona matou faʻaogaina pe tusa ma le 8 cores ma maua ai se vaega faʻaopoopo maualuga i totonu o le faiga...

Laʻasaga pito i lalo: o lenei filifiliga e mafai ona faʻamaonia, ae naʻo pe a fai e tele le poloketi ma ua sauni lona pulega e faʻaalu punaoa taua i luga o se faiga faʻapipiʻi.

Ona tulai mai lea o se fesili masani:

O a ni ogalaau e manaʻomia moni?

Logs in Kubernetes (ma e le gata) i aso nei: faʻamoemoega ma mea moni Sei o tatou taumafai e sui le auala lava ia: ogalaau e tatau ona faʻamatalaga i le taimi e tasi ae le ufiufi taitasi mea na tupu i le faiga.

Se'i fa'apea o lo'o manuia a tatou faleoloa i luga ole laiga. O a ogalaau e taua? Aoina mai le tele o faʻamatalaga e mafai, mo se faʻataʻitaʻiga, mai se faitotoa totogi, o se manatu lelei. Ae le o ogalaau uma mai le auaunaga tipi ata i le lisi o oloa e taua ia i matou: naʻo mea sese ma le mataʻituina maualuga e lava (mo se faʻataʻitaʻiga, o le pasene o mea sese e 500 e gaosia e lenei vaega).

O lea ua tatou oo mai i le faaiuga e faapea e le o taimi uma e ta'uamiotonuina ai le fa'atosinaina. E masani ona manaʻo le kalani e aoina uma ogalaau i se nofoaga e tasi, e ui o le mea moni, mai le ogalaau atoa, e naʻo le 5% o feʻau e taua mo le pisinisi e manaʻomia:

  • O nisi taimi e lava le faʻatulagaina, fai mai, naʻo le tele o le pusa ogalaau ma le mea e aoina mea sese (mo se faʻataʻitaʻiga, Sentry).
  • O se fa'asilasilaga fa'aletonu ma se fa'alāpotopotoga fa'apitonu'u tele lava ia atonu e masani ona lava e su'esu'e ai fa'alavelave.
  • Sa i ai a matou poloketi na faia i suʻega faʻatino ma faiga faʻapipiʻi mea sese. E le'i mana'omia e le tagata atia'e ni ogalaau fa'apea - na latou va'aia mea uma mai fa'ailoga sese.

Fa'ata'ita'iga mai le olaga

O se isi tala e mafai ona avea o se faʻataʻitaʻiga lelei. Na matou mauaina se talosaga mai le vaega o le puipuiga a se tasi o matou tagata faʻatau o loʻo faʻaaogaina se fofo faʻapisinisi lea na fausia aʻo leʻi leva ona faʻaofiina Kubernetes.

Na manaʻomia le "faʻauo" o le faʻaogaina o le faʻapipiʻiina o ogalaau faʻatasi ma le faʻaogaina o faʻafitauli faʻapitoa - QRadar. E mafai e lenei faiga ona maua ogalaau e ala i le syslog protocol ma toe aumai mai le FTP. Ae ui i lea, e leʻi vave mafai ona tuʻufaʻatasia i le remote_syslog plugin mo fluentd (e pei ona aliali mai, e le o tuua na o i tatou). O fa'afitauli i le fa'atulagaina o le QRadar na aliali mai o lo'o i le itu ole vaega ole puipuiga a le kalani.

O se taunuuga, o se vaega o ogalaau faʻatau pisinisi na tuʻuina atu i le FTP QRadar, ae o le isi vaega na toe faʻafeiloaʻi e ala i le mamao syslog saʻo mai nodes. Mo lenei mea na matou tusia foi siata faigofie - masalo o le a fesoasoani i se tasi e foia se faʻafitauli faʻapena... Faʻafetai i le taunuuga o le polokalame, na maua e le kalani lava ia ma suʻesuʻeina ogalaau taua (faʻaaogaina o ana meafaigaluega e sili ona fiafia i ai), ma na mafai ai ona matou faʻaitiitia le tau o le faʻaogaina o le faʻaogaina, faʻasaoina na o le masina talu ai.

O le isi faʻataʻitaʻiga e faʻaalia ai le mea e le tatau ona fai. O se tasi o matou tagata fa'atau mo le fa'agaioia taʻitasi mea e sau mai le tagata faʻaoga, faia multiline galuega faatino e le'i fa'atulagaina faʻamatalaga i totonu o faʻamaumauga. E pei ona e mateina, o ia ogalaau sa matua le faigofie i le faitau ma le teuina.

Tulaga mo ogalaau

O ia faʻataʻitaʻiga e taʻitaʻia ai le faʻaiuga e faʻaopoopo i le filifilia o se faiga o le aoina o ogalaau, e te manaʻomia fa'apea fo'i le fa'atulagaina o ogalaau latou lava! O a mea e mana'omia iinei?

  • O ogalaau e tatau ona i ai i le faatulagaga e mafai ona faitau i le masini (fa'ata'ita'iga, JSON).
  • O ogalaau e tatau ona faʻapipiʻi ma faʻatasi ma le gafatia e sui ai le tikeri o le taina ina ia mafai ai ona faʻafefe faʻafitauli e ono tupu. I le taimi lava e tasi, i totonu o siosiomaga gaosiga e tatau ona e faʻatautaia faiga faʻatasi ma se tulaga faʻapipiʻi pei lapataʻiga poʻo sesē.
  • O ogalaau e tatau ona masani, o lona uiga, i totonu o se mea ogalaau, o laina uma e tatau ona tutusa le ituaiga fanua.

O ogalaau e leʻi faʻatulagaina e mafai ona oʻo atu ai i faʻafitauli i le faʻapipiʻiina o ogalaau i totonu o le teuina ma faʻagata atoatoa i latou gaioiga. Mo se faʻataʻitaʻiga, o se faʻataʻitaʻiga lea i le mea sese 400, lea e toʻatele ua mautinoa na faʻafeiloaʻi i totonu o faʻamaumauga faʻalelei:

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

O le mea sese o lona uiga o loʻo e lafoina se fanua o lona ituaiga e le mautu i le faʻailoga ma se faʻafanua ua saunia. O le faʻataʻitaʻiga sili ona faigofie o se fanua i le log nginx ma se fesuiaiga $upstream_status. E mafai ona iai se numera po'o se manoa. Faataitaiga:

{ "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"}

O ogalaau o loʻo faʻaalia ai na tali mai le server 10.100.0.10 i se mea sese 404 ma na auina atu le talosaga i se isi mea e teu ai mea. O se taunuuga, o le tau i totonu o ogalaau na pei o lenei:

"upstream_response_time": "0.001, 0.007"

O lenei tulaga e masani lava e oʻo lava i le tatau ona tuʻueseese fa'amatalaga i fa'amaumauga.

Ae faapefea le maufaatuatuaina?

E i ai taimi e taua uma ai ogalaau e aunoa ma se tuusaunoaga. Ma fa'atasi ai ma lea, o faiga masani o le aoina o ogalaau mo K8s fa'atulagaina/talanoaina i luga e iai fa'afitauli.

Mo se fa'ata'ita'iga, e le mafai e fluentd ona aoina mai ogalaau mai pusa pupuu. I se tasi oa matou poloketi, o le pusa faʻamaumauga o femalagaiga na ola mo le itiiti ifo i le 4 sekone ona tape ai lea - e tusa ai ma le faʻamatalaga tutusa:

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

Ona o lenei mea, e leʻi aofia ai le faʻasologa o faʻasalalauga i totonu o le teuina. E mafai ona fesoasoani polokiki i lenei tulaga before-hook-creation.

O le isi faʻataʻitaʻiga o le Docker log rotation. Fa'apea o lo'o i ai se talosaga e tusitusi malosi i ogalaau. I lalo o tulaga masani, matou te pulea le faʻaogaina o ogalaau uma, ae o le taimi lava e aliali mai ai se faʻafitauli - mo se faʻataʻitaʻiga, e pei ona faʻamatalaina i luga ma se faʻasologa le saʻo - e taofi le gaioiga, ma faʻasolo e Docker le faila. O le i'uga e ono leiloa ai ogalaau fa'atauaina pisinisi.

O le mafuaaga lena e taua le tuueseeseina o alavai ogalaau, fa'apipi'i le tu'u sa'o o mea e sili ona taua i totonu o le talosaga ina ia mautinoa lo latou saogalemu. E le gata i lea, e le o se mea e sili atu le faia o nisi “tagata faaputuputu” o ogalaau, lea e mafai ona sao mai le teuina puupuu le avanoa a'o sefe fe'au taua.

Mulimuli ane, e le tatau ona galo ia i tatou lena mea E taua le mata'ituina lelei o so'o se subsystem. A leai, e faigofie ona tamoʻe i se tulaga o loʻo i ai le fluentd i se setete CrashLoopBackOff ma e le auina atu se mea, ma e folafola mai ai le leiloa o faamatalaga taua.

sailiiliga

I lenei tusiga, matou te le o vaʻavaʻai i SaaS fofo pei o Datadog. O le tele o faʻafitauli o loʻo faʻamatalaina iinei ua uma ona foia i se tasi auala poʻo se isi e kamupani faʻapisinisi faʻapitoa i le aoina o ogalaau, ae le mafai e tagata uma ona faʻaogaina le SaaS mo mafuaaga eseese. (o mea autu o tau ma le tausisia o le 152-FZ).

O le aoina o ogalaau tutotonu i le taimi muamua e foliga mai o se galuega faigofie, ae e leai lava. E taua le manatua e faapea:

  • Na'o vaega taua e mana'omia ona fa'amauina fa'amatalaga, a'o le mata'ituina ma le aoina o mea sese e mafai ona fa'atulagaina mo isi faiga.
  • O ogalaau i le gaosiga e tatau ona faʻaitiitiina ina ia aua neʻi faʻaopoopoina se uta le manaʻomia.
  • O ogalaau e tatau ona mafai ona faitau i le masini, fa'asa'o, ma ia iai se fa'asologa sa'o.
  • E tatau ona lafo ni ogalaau fa'atauva'a i se va'aiga ese'ese, lea e tatau ona tu'u'ese'ese mai i la'au autu.
  • E taua le mafaufau i se faʻapipiʻi ogalaau, lea e mafai ona laveaʻiina oe mai le paʻu o le maualuga o le uta ma faʻateleina le toniga o le uta i luga o le teuina.

Logs in Kubernetes (ma e le gata) i aso nei: faʻamoemoega ma mea moni
O nei tulafono faigofie, pe a faʻaaogaina i soʻo se mea, o le a faʻatagaina le taʻavale o loʻo faʻamatalaina i luga e galue - e ui lava o loʻo misi ni vaega taua (le maa). Afai e te le tausisia ia mataupu faavae, o le galuega o le a faigofie ona taʻitaʻia oe ma atinaʻe i se isi vaega maualuga (ma i le taimi lava e tasi e le aoga) o le polokalama.

SALA

Faitau foi i la matou blog:

puna: www.habr.com

Faaopoopo i ai se faamatalaga