Innskráning í Kubernetes: EFK vs PLG

Innskráning í Kubernetes: EFK vs PLG

Vöktun er orðin mjög mikilvægur þáttur í vaxandi skýjalausnum eftir því sem flókið er í dreifðum kerfum. Það er nauðsynlegt að skilja hegðun þeirra. Okkur vantar stigstærð verkfæri sem geta safnað gögnum frá allri þjónustu - og veitt sérfræðingum eitt viðmót með frammistöðugreiningu, villusýni, framboði og skrám.

Þessi sömu verkfæri verða að vera skilvirk og afkastamikil. Í þessari grein munum við skoða tvo vinsæla tæknistafla: EFK (Elasticsearch) og PLG (Loki) og skoða arkitektúr þeirra og mun.

EFK stafla

Þú hefur kannski þegar heyrt um hina mjög vinsælu ELK eða EFK. Staflan samanstendur af nokkrum aðskildum hlutum: Elasticsearch (hlutageymsla), Logstash eða FluentD (loggasöfnun og samansöfnun) og Kibana fyrir sjónmynd.

Dæmigerð vinnuflæði lítur svona út:

Innskráning í Kubernetes: EFK vs PLG

Elasticsearch — dreifð geymslupláss með leit og rauntíma greiningu. Frábær lausn fyrir hálfuppbyggð gögn eins og logs. Upplýsingar eru vistaðar sem JSON skjöl, verðtryggðar í rauntíma og dreift yfir klasahnúta. Notast er við öfug vísitölu sem inniheldur öll einstök orð og tengd skjöl fyrir leit í fullri texta, sem aftur er byggð á Apache Lucene leitarvélinni.

FluentD er gagnasafnari sem sameinar gögn við söfnun og neyslu þeirra. Það reynir að skipuleggja gögnin í JSON eins mikið og mögulegt er. Arkitektúr þess er teygjanlegur, það eru fleiri hundruð mismunandi framlenginga, samfélagsstyrkt, fyrir öll tækifæri.

kibana - gagnasjónunartæki fyrir Elasticsearch með ýmsum viðbótarmöguleikum, til dæmis tímaraðargreiningu, grafgreiningu, vélanámi og fleira.

Elasticsearch arkitektúr

Elasticsearch klasagögn eru geymd dreift yfir alla hnúta hans. Þyrping samanstendur af mörgum hnútum til að bæta framboð og seiglu. Hvaða hnút sem er getur sinnt öllum hlutverkum klasans, en í stórum útfærslum er hnútum venjulega úthlutað einstökum verkefnum.

Tegundir klasahnúta:

  • meistarahnútur - stjórnar klasanum, að minnsta kosti þrjá þarf, einn er alltaf virkur;
  • gagnahnútur - geymir verðtryggð gögn og framkvæmir ýmis verkefni með þeim;
  • inntaka hnút - skipuleggur leiðslur til að umbreyta gögnum fyrir flokkun;
  • samræma hnút - leiðarbeiðnir, draga úr leitarvinnslufasa, samræma fjöldaflokkun;
  • viðvörunarhnútur — ræsir viðvörunarverkefni;
  • vélanámshnútur - vinnsla vélanámsverkefna.

Skýringarmyndin hér að neðan sýnir hvernig gögn eru geymd og endurtekin á milli hnúta til að ná fram hærra gagnaframboði.

Innskráning í Kubernetes: EFK vs PLG

Gögn hverrar eftirmyndar eru geymd í öfugum vísitölu, skýringarmyndin hér að neðan sýnir hvernig þetta gerist:

Innskráning í Kubernetes: EFK vs PLG

Uppsetning

Hægt er að skoða upplýsingar hér, ég mun nota stýritöflu:

$ helm install efk-stack stable/elastic-stack --set logstash.enabled=false --set fluentd.enabled=true --set fluentd-elastics

PLG stafla

Ekki vera hissa ef þú finnur ekki þessa skammstöfun, þar sem hún er betur þekkt sem Grafana Loki. Í öllum tilvikum, þessi stafla er að ná vinsældum vegna þess að hann notar sannaðar tæknilegar lausnir. Þú hefur kannski þegar heyrt um Grafana, vinsælt sjónrænt tól. Höfundar þess, innblásnir af Prometheus, þróuðu Loki, lárétt stigstærð, afkastamikið trésöfnunarkerfi. Loki skráir aðeins lýsigögnin, ekki tímaritin sjálf, tæknilausn sem gerir það kleift að vera auðvelt í notkun og hagkvæmt.

Promtail - umboðsmaður til að senda logs frá stýrikerfinu til Loka þyrpingarinnar. grafana er sjónrænt tól byggt á gögnum frá Loka.

Innskráning í Kubernetes: EFK vs PLG

Loki er byggður á sömu lögmálum og Prometheus, sem gerir hann vel til þess fallinn að geyma og greina Kubernetes logs.

Loki arkitektúr

Loka er hægt að keyra annað hvort sem eitt ferli eða sem mörg ferli, sem gerir ráð fyrir láréttri stærðarstærð.

Innskráning í Kubernetes: EFK vs PLG

Það getur líka virkað annað hvort sem einhæft forrit eða sem örþjónusta. Að keyra sem eitt ferli getur verið gagnlegt fyrir staðbundna þróun eða fyrir minniháttar eftirlit. Fyrir iðnaðarútfærslu og stigstærð vinnuálag er mælt með því að nota örþjónustuvalkostinn. Leiðir til að skrifa og lesa gögn eru aðskildar, þannig að hægt er að fínstilla þau og stækka eftir þörfum.

Við skulum skoða arkitektúr söfnunarkerfisins án þess að fara í smáatriði:

Innskráning í Kubernetes: EFK vs PLG

Og hér er lýsingin (microservice arkitektúr):

Innskráning í Kubernetes: EFK vs PLG

Íhlutir:

Promtail — umboðsmaður uppsettur á hnútum (sem þjónustusafn), það fjarlægir annála úr verkefnum og opnar Kubernetes API til að fá lýsigögn sem merkja skrárnar. Það sendir síðan skrána til aðalþjónustu Loka. Kortlagning lýsigagna styður sömu merkingarreglur og Prometheus.

Dreifingaraðili — þjónustudreifingaraðili sem virkar sem biðminni. Til að vinna úr milljónum skráa pakkar það inn gögnum sem berast og þjappar þeim saman í kubba þegar þau berast. Nokkrir gagnasöfn eru í gangi samtímis, en annálar sem tilheyra einum komandi gagnastraumi ættu aðeins að birtast í einum þeirra fyrir allar blokkir þess. Þetta er skipulagt í hring af vaskum og raðbundinni hashing. Fyrir bilanaþol og offramboð er þetta gert n sinnum (3 ef ekki er stillt).

Ingester — þjónustumóttakari. Gagnablokkir koma þjappaðir með annálum bætt við. Þegar kubburinn er orðinn nægilega stór er kubburinn skolaður í gagnagrunninn. Lýsigögn fara í vísitöluna og gögn úr annálablokkinni fara í Chunks (venjulega hlutageymslu). Eftir endurstillinguna býr móttakandinn til nýjan blokk þar sem nýjum færslum verður bætt við.

Innskráning í Kubernetes: EFK vs PLG

Index - gagnagrunnur, DynamoDB, Cassandra, Google BigTable osfrv.

Klumpar — logblokkir í þjöppuðu formi, venjulega geymdir í hlutageymslu, til dæmis S3.

Fyrirspurnari - lestrarbrautin sem vinnur allt skítverkið. Það skoðar tímabilið og tímastimpilinn og lítur svo á vísitöluna til að finna samsvörun. Næst les það gagnablokkir og síar þær til að fá niðurstöðuna.

Nú skulum við sjá allt í verki.

Uppsetning

Auðveldasta leiðin til að setja upp í Kubernetes er að nota hjálm. Við gerum ráð fyrir að þú hafir þegar sett upp og stillt það (og þriðja útgáfan! ca. þýðandi)

Bættu við geymslu og settu upp stafla.

$ helm repo add loki https://grafana.github.io/loki/charts
$ helm repo update
$ helm upgrade --install loki loki/loki-stack --set grafana.enabled=true,prometheus.enabled=true,prometheus.alertmanager.persistentVolume.enabled=false,prometheus.server.persistentVolume.enabled=false

Hér að neðan er dæmi um mælaborð sem sýnir gögn frá Prometheus fyrir Etcd mæligildi og Loki fyrir Etcd pod logs.

Innskráning í Kubernetes: EFK vs PLG

Nú skulum við ræða arkitektúr beggja kerfa og bera einnig saman getu þeirra innbyrðis.

Samanburður

Fyrirspurnartungumál

Elasticsearch notar Query DSL og Lucene fyrirspurnarmál til að bjóða upp á leitargetu í fullri texta. Þetta er rótgróin, öflug leitarvél með víðtækan stuðning stjórnenda. Með því geturðu leitað eftir samhengi og flokkað eftir mikilvægi.

Hinum megin á hringnum er LogQL, notað í Loki, arftaki PromQL (Prometheus query language). Það notar annálamerki til að sía og velja annálagögn. Það er hægt að nota suma rekstraraðila og reikning eins og lýst er hér, en hvað varðar getu er það á eftir Elastic language.

Þar sem fyrirspurnir í Loka eru tengdar merkjum er auðvelt að tengja þau við mælikvarða og þar af leiðandi er auðveldara að skipuleggja rekstrareftirlit með þeim.

Stærð

Báðir staflarnir eru skalanlegir lárétt, en Loki gerir það auðveldara vegna þess að það hefur aðskildar les- og skrifleiðir og örþjónustuarkitektúr. Loki er hægt að aðlaga að þínum þörfum og hægt er að nota hann fyrir mjög mikið magn af annálgögnum.

Fjölbýli

Cluster multitenancy er algengt þema í OPEX skammstöfuninni, báðir staflarnir veita fjöleign. Það eru nokkrir fyrir Elasticsearch leiðir aðskilnaður viðskiptavinar: aðskilin vísitala fyrir hvern viðskiptavin, leið sem byggir á biðlara, einstakir viðskiptavinireitir, leitarsíur. Loki hefur styðja í formi HTTP X-Scope-OrgID haus.

Kostnaður

Loki er nokkuð hagkvæmur vegna þess að hann skráir ekki gögnin, aðeins lýsigögnin. Þetta nær sparnaður í geymslu og minni (skyndiminni), þar sem hlutgeymsla er ódýrari en blokkageymsla, sem er notuð í Elasticsearch klösum.

Ályktun

Hægt er að nota EFK stafla í margvíslegum tilgangi, sem veitir hámarks sveigjanleika og eiginleikaríkt Kibana viðmót fyrir greiningar, sjónmyndir og fyrirspurnir. Það er hægt að bæta það enn frekar með vélrænni getu.

Loki staflan er gagnlegur í Kubernetes vistkerfinu vegna lýsigagnauppgötvunarkerfisins. Þú getur auðveldlega tengt gögn fyrir vöktun út frá tímaröðum í Grafana og logs.

Þegar kemur að kostnaði og langtíma annálageymslu er Loki frábær inngangsstaður í skýjalausnir.

Það eru fleiri kostir á markaðnum - sumir gætu verið betri fyrir þig. Til dæmis er GKE með Stackdriver samþættingu sem veitir frábæra eftirlitslausn. Við tókum þau ekki með í greiningu okkar í þessari grein.

Tilvísanir:

Greinin var þýdd og unnin fyrir Habr af starfsmönnum Slurm þjálfunarmiðstöð — ákafur námskeið, myndbandsnámskeið og fyrirtækjaþjálfun frá starfandi sérfræðingum (Kubernetes, DevOps, Docker, Ansible, Ceph, SRE, Agile)

Heimild: www.habr.com

Bæta við athugasemd