Mewngofnodi Kubernetes: EFK vs PLG

Mewngofnodi Kubernetes: EFK vs PLG

Mae monitro wedi dod yn elfen bwysig iawn o atebion cwmwl cynyddol gyda chymhlethdod cynyddol systemau dosbarthedig. Mae angen deall eu hymddygiad. Mae angen offer graddadwy arnom sy'n gallu casglu data o bob gwasanaeth - a darparu un rhyngwyneb i arbenigwyr â dadansoddi perfformiad, arddangos gwallau, argaeledd a logiau.

Rhaid i'r un offer hyn fod yn effeithlon ac yn gynhyrchiol. Yn yr erthygl hon, byddwn yn edrych ar ddau bentwr technoleg poblogaidd: EFK (Elasticsearch) a PLG (Loki) ac yn dadansoddi eu pensaernïaeth a'u gwahaniaethau.

pentwr EFK

Efallai eich bod eisoes wedi clywed am yr ELK neu EFK poblogaidd iawn. Mae'r pentwr yn cynnwys sawl rhan ar wahân: Elasticsearch (storio gwrthrychau), Logstash neu FluentD (casglu a chydgasglu boncyffion) a Kibana ar gyfer delweddu.

Mae llif gwaith nodweddiadol yn edrych fel hyn:

Mewngofnodi Kubernetes: EFK vs PLG

Elastig — storfa gwrthrychau gwasgaredig gyda chwilio a dadansoddeg amser real. Ateb ardderchog ar gyfer data lled-strwythuredig fel logiau. Mae'r wybodaeth yn cael ei storio fel dogfennau JSON, wedi'i mynegeio mewn amser real, a'i dosbarthu ar draws nodau'r clwstwr. Defnyddir mynegai gwrthdro sy'n cynnwys yr holl eiriau unigryw a dogfennau cysylltiedig ar gyfer chwiliad testun llawn, sydd yn ei dro yn seiliedig ar beiriant chwilio Apache Lucene.

RhuglD yn gasglwr data sy'n uno data wrth iddo gael ei gasglu a'i ddefnyddio. Mae'n ceisio trefnu'r data yn JSON gymaint â phosibl. Mae ei bensaernïaeth yn estynadwy, mae mwy cannoedd o estyniadau gwahanol, a gefnogir gan y gymuned, ar gyfer pob achlysur.

Kibana yn offeryn delweddu data ar gyfer Elasticsearch gyda nodweddion ychwanegol amrywiol, megis dadansoddiad cyfres amser, graffiau, dysgu peiriant, a mwy.

Pensaernïaeth Elasticsearch

Mae data clwstwr Elasticsearch yn cael ei storio ar draws ei holl nodau. Mae'r clwstwr yn cynnwys nodau lluosog i wella argaeledd a gwydnwch. Gall unrhyw nod gyflawni pob rôl clwstwr, ond mewn gosodiadau mawr, graddadwy, mae nodau fel arfer yn cael eu neilltuo ar gyfer tasgau unigol.

Mathau o nodau clwstwr:

  • prif nod - yn rheoli'r clwstwr, mae angen o leiaf dri arnoch, mae un bob amser yn weithredol;
  • nod data - yn storio data mynegeio ac yn cyflawni tasgau amrywiol gyda nhw;
  • nod ingest - trefnu piblinellau ar gyfer trawsnewid data cyn mynegeio;
  • nod cydlynu - llwybro ceisiadau, lleihau'r cyfnod prosesu chwilio, cydlynu mynegeio swmp;
  • rhybuddio nod - lansio tasgau hysbysu;
  • nod dysgu peiriant - prosesu tasgau dysgu peiriant.

Mae'r diagram isod yn dangos sut mae data'n cael ei barhau a'i ailadrodd ar draws nodau i sicrhau bod mwy o ddata ar gael.

Mewngofnodi Kubernetes: EFK vs PLG

Mae data pob atgynhyrchiad yn cael ei storio mewn mynegai gwrthdro, mae'r diagram isod yn dangos sut mae hyn yn digwydd:

Mewngofnodi Kubernetes: EFK vs PLG

Gosod

Gellir gweld y manylion yma, Byddaf yn defnyddio siart helm:

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

pentwr PLG

Peidiwch â synnu os na allwch ddod o hyd i'r acronym hwn, gan ei fod yn fwy adnabyddus fel Grafana Loki. Beth bynnag, mae'r pentwr hwn yn dod yn fwy poblogaidd oherwydd ei fod yn defnyddio atebion technegol wedi'u haddasu'n dda. Efallai eich bod eisoes wedi clywed am Grafana, offeryn delweddu poblogaidd. Datblygodd ei grewyr, a ysbrydolwyd gan Prometheus, Loki, system agregu logiau perfformiad uchel y gellir ei graddio'n llorweddol. Dim ond y metadata y mae Loki yn ei fynegeio, nid y cyfnodolion eu hunain, mae'r datrysiad technegol hwn wedi'i wneud yn hawdd i'w ddefnyddio ac yn gost-effeithiol.

Promtail - asiant ar gyfer anfon logiau o'r system weithredu i'r clwstwr Loki. Grafana yn offeryn delweddu yn seiliedig ar ddata o Loki.

Mewngofnodi Kubernetes: EFK vs PLG

Mae Loki wedi'i adeiladu ar yr un egwyddorion â Prometheus, felly mae'n addas iawn ar gyfer storio a dosrannu boncyffion Kubernetes.

pensaernïaeth Loki

Gellir rhedeg Loki fel un broses neu fel prosesau lluosog, gan ganiatáu ar gyfer graddio llorweddol.

Mewngofnodi Kubernetes: EFK vs PLG

Gall hefyd weithio fel cymhwysiad monolithig ac fel microwasanaeth. Gall rhedeg fel un broses fod yn ddefnyddiol ar gyfer datblygiad lleol neu ar gyfer monitro manwl. Ar gyfer gweithredu diwydiannol a llwyth gwaith graddadwy, argymhellir defnyddio'r opsiwn microservice. Mae'r llwybrau ysgrifennu data a darllen wedi'u gwahanu, fel y gellir eu tiwnio'n fanwl a'u graddio yn ôl yr angen.

Gadewch i ni edrych ar bensaernïaeth y system casglu boncyffion heb fanylion:

Mewngofnodi Kubernetes: EFK vs PLG

A dyma'r disgrifiad (pensaernïaeth microwasanaeth):

Mewngofnodi Kubernetes: EFK vs PLG

Cydrannau:

Promtail - asiant wedi'i osod ar nodau (fel set o wasanaethau), mae'n tynnu logiau o dasgau ac yn cyrchu API Kubernetes i gael metadata a ddefnyddir i farcio'r logiau. Yna mae'n anfon y log i'r prif wasanaeth Loki. Ar gyfer paru metadata, cefnogir yr un rheolau tagio ag yn Prometheus.

Dosbarthwr - gwasanaeth-dosbarthwr, yn gweithio fel byffer. I brosesu miliynau o gofnodion, mae'n pacio data sy'n dod i mewn, gan ei gywasgu mewn blociau wrth iddo gyrraedd. Mae sinciau data lluosog yn rhedeg ar yr un pryd, ond dylai logiau sy'n perthyn i'r un ffrwd ddata sy'n dod i mewn ddod i ben mewn un ohonynt yn unig ar gyfer ei holl flociau. Trefnir hyn fel cylch o dderbynyddion a stwnsh dilyniannol. Ar gyfer goddefgarwch bai a dileu swydd, fe'i gwneir n amseroedd (3 os nad yw wedi'i ffurfweddu).

amlyncu - derbynnydd gwasanaeth. Daw blociau data wedi'u cywasgu â logiau ychwanegol. Cyn gynted ag y bydd y bloc o faint digonol, caiff y bloc ei fflysio i'r gronfa ddata. Mae'r metadata yn mynd i'r mynegai, ac mae'r data o'r bloc log yn mynd i Chunks (storfa gwrthrychau fel arfer). Ar ôl ailosod, mae'r derbynnydd yn creu bloc newydd lle bydd cofnodion newydd yn cael eu hychwanegu.

Mewngofnodi Kubernetes: EFK vs PLG

mynegai - cronfa ddata, DynamoDB, Cassandra, Google BigTable a mwy.

Talpiau - blociau o foncyffion mewn ffurf gywasgedig, fel arfer yn cael eu storio mewn storio gwrthrychau, er enghraifft, S3.

Querier yn llwybr darllen sy'n gwneud yr holl waith budr. Mae'n edrych ar yr ystod amser a'r stamp amser, ac yna'n edrych ar y mynegai i chwilio am barau. Nesaf, mae'n darllen blociau o ddata ac yn eu hidlo i gael y canlyniad.

Nawr gadewch i ni weld popeth ar waith.

Gosod

Y ffordd hawsaf i osod ar Kubernetes yw defnyddio helm. Tybiwn eich bod eisoes wedi ei osod a'i ffurfweddu (a'r trydydd fersiwn! tua. cyfieithydd)

Rydyn ni'n ychwanegu ystorfa ac rydyn ni'n rhoi pentwr.

$ 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

Isod mae dangosfwrdd enghreifftiol yn dangos data o fetrigau Prometheus ar gyfer Etcd a Loki ar gyfer logiau pod Etcd.

Mewngofnodi Kubernetes: EFK vs PLG

Ac yn awr gadewch i ni drafod pensaernïaeth y ddwy system, yn ogystal â chymharu eu galluoedd â'i gilydd.

Cymhariaeth

Iaith Ymholiad

Mae Elasticsearch yn defnyddio iaith ymholiad Query DSL a Lucene i ddarparu gallu chwilio testun llawn. Mae'n beiriant chwilio pwerus sefydledig gyda chefnogaeth gweithredwr eang. Ag ef, gallwch chwilio yn ôl cyd-destun a didoli yn ôl perthnasedd.

Ar ochr arall y cylch mae LogQL Loki, olynydd i PromQL (iaith ymholiad Prometheus). Mae'n defnyddio labeli log i hidlo a dewis data log. Mae'n bosibl defnyddio rhai gweithredwyr a rhifyddeg fel y disgrifir yma, ond o ran galluoedd, y mae yn llusgo y tu ol i'r iaith Elastig.

Gan fod ceisiadau yn Loki yn gysylltiedig â labeli, maent yn hawdd eu cydberthyn â metrigau, o ganlyniad, mae'n haws trefnu monitro gweithredol gyda nhw.

Scalability

Gellir graddio'r ddau bentwr yn llorweddol, ond gyda Loki mae'n haws oherwydd bod ganddo lwybrau darllen ac ysgrifennu ar wahân, ac mae ganddo bensaernïaeth microwasanaeth. Gellir addasu Loki i'ch anghenion a gellir ei ddefnyddio ar gyfer llawer iawn o ddata log.

Aml-denantiaeth

Mae aml-denantiaeth clwstwr yn thema gyffredin ar gyfer lleihau OPEX, mae'r ddau bentwr yn darparu aml-denantiaeth. Mae yna sawl un ar gyfer Elasticsearch ffyrdd gwahanu cwsmeriaid: mynegai ar wahân fesul cwsmer, llwybro yn seiliedig ar gwsmeriaid, meysydd unigryw cwsmeriaid, hidlwyr chwilio. Mae gan Loki cefnogaeth fel pennawd HTTP X-Scope-OrgID.

Cost

Mae Loki yn gost-effeithiol iawn oherwydd y ffaith nad yw'n mynegeio data, dim ond metadata. Felly, arbedion storio a chof (cache), gan fod storio gwrthrychau yn rhatach na storio blociau, a ddefnyddir mewn clystyrau Elasticsearch.

Casgliad

Gellir defnyddio'r pentwr EFK at amrywiaeth o ddibenion, gan ddarparu'r hyblygrwydd mwyaf a rhyngwyneb Kibana cyfoethog ar gyfer dadansoddeg, delweddu ac ymholiadau. Gellir ei wella ymhellach gyda galluoedd dysgu peiriannau.

Mae stac Loki yn ddefnyddiol yn ecosystem Kubernetes oherwydd y mecanwaith darganfod metadata. Gallwch chi gydberthyn yn hawdd data ar gyfer monitro yn seiliedig ar gyfresi amser yn Grafana a logiau.

O ran cost a chadw logiau hirdymor, mae Loki yn ddewis ardderchog ar gyfer mynd i mewn i'r cwmwl.

Mae mwy o ddewisiadau eraill ar y farchnad - efallai y bydd rhai yn well i chi. Er enghraifft, mae gan GKE integreiddiad Stackdriver sy'n darparu datrysiad monitro gwych. Ni wnaethom eu cynnwys yn ein dadansoddiad yn yr erthygl hon.

Cyfeiriadau:

Cafodd yr erthygl ei chyfieithu a'i pharatoi ar gyfer Habr gan weithwyr Canolfan hyfforddi slyrm — cyrsiau dwys, fideo a hyfforddiant corfforaethol gan ymarferwyr (Kubernetes, DevOps, Docker, Ansible, Ceph, SRE, Agile)

Ffynhonnell: hab.com

Ychwanegu sylw