Kubernetes saioa hasi: EFK vs PLG

Kubernetes saioa hasi: EFK vs PLG

Monitorizazioa hazten ari diren hodeiko soluzioen osagai oso garrantzitsua bihurtu da banatutako sistemen konplexutasuna areagotzen den heinean. Beharrezkoa da haien portaera ulertzea. Zerbitzu guztietako datuak bil ditzaketen tresna eskalagarriak behar ditugu, eta espezialistei interfaze bakarra eskaintzeko errendimenduaren analisia, erroreen erakustaldia, erabilgarritasuna eta erregistroak.

Tresna hauek eraginkorrak eta produktiboak izan behar dute. Artikulu honetan, bi teknologia pila ezagun aztertuko ditugu: EFK (Elasticsearch) eta PLG (Loki) eta haien arkitekturak eta desberdintasunak aztertuko ditugu.

EFK pila

Baliteke dagoeneko entzuna izanen duzu oso ezaguna den ELK edo EFKri buruz. Pilak hainbat zati ditu: Elasticsearch (objektuen biltegiratzea), Logstash edo FluentD (erregistroen bilketa eta agregazioa) eta Kibana bistaratzeko.

Lan-fluxu tipiko bat honelakoa da:

Kubernetes saioa hasi: EFK vs PLG

Elasticsearch β€” Objektuen biltegiratze banatua bilaketarekin eta denbora errealeko analisiekin. Erdiegituratutako datuetarako irtenbide bikaina, esate baterako, erregistroak. Informazioa JSON dokumentu gisa gordetzen da, denbora errealean indexatzen da eta kluster nodoetan banatzen da. Alderantzizko indize bat erabiltzen da, testu osoko bilaketarako hitz esklusibo guztiak eta lotutako dokumentuak dituena, zeina Apache Lucene bilatzailean oinarritzen dena.

FluxuaD datu-biltzailea da, datuak bildu eta kontsumitzerakoan bateratzen dituena. Datuak JSON-n ahalik eta gehien antolatzen saiatzen da. Bere arkitektura hedagarria da, gehiago daude ehunka luzapen ezberdin, komunitateak lagunduta, une guztietarako.

Kibana - Elasticsearch-erako datuak bistaratzeko tresna hainbat gaitasun gehigarri dituena, adibidez, denbora serieen analisia, grafikoen azterketa, ikaskuntza automatikoa eta abar.

Elasticsearch arkitektura

Elasticsearch kluster datuak bere nodo guztietan banatuta gordetzen dira. Kluster batek hainbat nodoz osatuta dago erabilgarritasuna eta erresilientzia hobetzeko. Edozein nodok klusterraren eginkizun guztiak bete ditzake, baina eskala handiko inplementazioetan, normalean nodoei zeregin indibidualak esleitzen zaizkie.

Kluster nodo motak:

  • nodo nagusia - clusterra kudeatzen du, gutxienez hiru behar dira, bat beti aktibo dago;
  • datu-nodoa - indexatutako datuak gordetzen ditu eta harekin hainbat zeregin egiten ditu;
  • ingest node - indexatu aurretik datuak eraldatzeko kanalizazioak antolatzen ditu;
  • nodo koordinatzea - ​​bideratze eskaerak, bilaketa prozesatzeko fasea murriztea, indexazio masiboa koordinatzea;
  • alerting node β€” alerta-zereginak abiarazi;
  • machine learning node - ikaskuntza automatikoko zereginak prozesatzea.

Beheko diagraman datuak nodoetan nola gordetzen eta erreplikatzen diren erakusten du datuen erabilgarritasun handiagoa lortzeko.

Kubernetes saioa hasi: EFK vs PLG

Erreplika bakoitzaren datuak alderantzizko indize batean gordetzen dira, beheko diagramak hau nola gertatzen den erakusten du:

Kubernetes saioa hasi: EFK vs PLG

Instalazio-

Xehetasunak ikus daitezke Hemen, Helm diagrama erabiliko dut:

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

PLG pila

Ez harritu sigla hau aurkitzen ez baduzu, Grafana Loki izenez ezagunagoa baita. Nolanahi ere, pila hau ospea lortzen ari da frogatutako irtenbide teknikoak erabiltzen dituelako. Baliteke jadanik entzun izana Grafana, bistaratzeko tresna ezaguna. Bere sortzaileek, Prometheus-en inspiratuta, Loki garatu zuten, horizontalki eskalagarria den eta errendimendu handiko erregistroak gehitzeko sistema. Lokik metadatuak soilik indexatzen ditu, ez aldizkariak berak, erabilerraza eta errentagarria izatea ahalbidetzen duen irtenbide teknikoa.

Promtaila - Sistema eragiletik Loki klusterera erregistroak bidaltzeko agente bat. Grafana Lokiren datuetan oinarritutako bistaratzeko tresna bat da.

Kubernetes saioa hasi: EFK vs PLG

Loki Prometheus-en printzipio berdinetan eraiki da, eta Kubernetesen erregistroak gordetzeko eta aztertzeko oso egokia da.

Loki arkitektura

Loki prozesu bakar gisa edo prozesu anitz gisa exekutatu daiteke, eskala horizontala ahalbidetuz.

Kubernetes saioa hasi: EFK vs PLG

Aplikazio monolitiko gisa edo mikrozerbitzu gisa ere lan egin dezake. Prozesu bakar gisa martxan jartzea tokiko garapenerako edo jarraipen txikirako baliagarria izan daiteke. Inplementazio industriala eta lan-karga eskalagarrirako, mikrozerbitzuaren aukera erabiltzea gomendatzen da. Datuak idazteko eta irakurtzeko bideak bereizita daude, beharren arabera fin-fin sintonizatu eta eskalatu daitezke.

Ikus dezagun erregistro-bilketa sistemaren arkitektura xehetasunetan sartu gabe:

Kubernetes saioa hasi: EFK vs PLG

Eta hona hemen deskribapena (mikrozerbitzuen arkitektura):

Kubernetes saioa hasi: EFK vs PLG

Osagaiak:

Promtaila β€” Nodoetan instalatutako agente bat (zerbitzu multzo gisa), atazetatik erregistroak kentzen ditu eta Kubernetes APIra sartzen da erregistroak etiketatuko dituzten metadatuak lortzeko. Ondoren, erregistroa Loki zerbitzu nagusira bidaltzen du. Metadatuen mapak Prometheus-en etiketatze-arau berdinak onartzen ditu.

Banatzaileen β€” Buffer gisa lan egiten duen zerbitzu banatzailea. Milioika erregistro prozesatzeko, sarrerako datuak biltzen ditu, blokeetan konprimituz iristen diren heinean. Hainbat datu-hustugailu aldi berean ari dira martxan, baina sarrerako datu-korronte bateko erregistroak horietako batean bakarrik agertu behar dira bloke guztietarako. Hau konketa eraztun eta hashing sekuentzial batean antolatuta dago. Akatsen tolerantziarako eta erredundantziarako, hau n aldiz egiten da (3 konfiguratuta ez badago).

Irenstea β€” Zerbitzu-hartzailea. Datu-blokeak konprimituta iristen dira erregistroak gehituta. Blokeak tamaina nahikoa duenean, blokea datu-basera husten da. Metadatuak indizera doaz, eta erregistro-blokeko datuak Chunks-era (normalean objektuen biltegiratzea). Berrezarri ondoren, hartzaileak bloke berri bat sortzen du, non sarrera berriak gehituko diren.

Kubernetes saioa hasi: EFK vs PLG

Index - datu-basea, DynamoDB, Cassandra, Google BigTable, etab.

Puskak β€” Log-blokeak forma konprimituan, normalean objektuen biltegian gordetzen dira, adibidez, S3.

Galdetzailea - lan zikin guztiak egiten dituen irakurketa bidea. Denbora tartea eta denbora-zigilua aztertzen ditu, eta, ondoren, indizeari begiratzen dio bat-etortzeak aurkitzeko. Ondoren, datu-blokeak irakurtzen ditu eta iragazten ditu emaitza lortzeko.

Orain ikus dezagun dena martxan.

Instalazio-

Kubernetesen instalatzeko modurik errazena Helm erabiltzea da. Dagoeneko instalatu eta konfiguratu duzula suposatzen dugu (eta hirugarren bertsioa! gutxi gorabehera. itzultzailea)

Gehitu biltegi bat eta instalatu pila bat.

$ 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

Jarraian, Prometheus for Etcd metrics eta Loki for Etcd pod erregistroen datuak erakusten dituen panel adibide bat dago.

Kubernetes saioa hasi: EFK vs PLG

Orain eztabaida dezagun bi sistemen arkitekturaz, eta konpara ditzagun haien gaitasunak elkarren artean.

konparazio

Kontsulten hizkuntza

Elasticsearch-ek Query DSL eta Lucene kontsulta-lengoaia erabiltzen ditu testu osoko bilaketa-gaitasunak eskaintzeko. Bilatzaile sendo eta indartsua da, operadoreen laguntza zabala duena. Harekin, testuinguruaren arabera bilatu eta garrantziaren arabera ordenatu dezakezu.

Eraztunaren beste aldean LogQL dago, Loki-n erabiltzen dena, PromQL-ren (Prometheus kontsulta-lengoaia) ondorengoa. Erregistro-etiketak erabiltzen ditu erregistro-datuak iragazteko eta hautatzeko. Operadore eta aritmetika batzuk erabiltzea posible da deskribatutako moduan Hemen, baina gaitasunei dagokienez, Elastic hizkuntzaren atzetik geratzen da.

Loki-n kontsultak etiketekin erlazionatzen direnez, neurgailuekin erraz erlazionatzen dira eta, ondorioz, jarraipen operatiboa antolatzea errazagoa da.

Eskalagarritasuna

Bi pilak horizontalki eskalagarriak dira, baina Lokik errazten du irakurtzeko eta idazteko bide bereiziak eta mikrozerbitzuen arkitektura bat dituelako. Loki pertsonalizatu daiteke zure beharretara egokitzeko eta erregistro datu-bolumen oso handietarako erabil daiteke.

Maiztasun anitzekoa

Kluster anitzeko alokairua OPEX laburduran ohikoa den gaia da, bi pilak maiztasun anitzekoa eskaintzen dute. Elasticsearch-erako hainbat daude moduak bezeroen bereizketa: bezero bakoitzaren indize bereizia, bezeroan oinarritutako bideratzea, bezeroen eremu bakarrak, bilaketa-iragazkiak. Lokik dauka onartzen HTTP X-Scope-OrgID goiburu baten moduan.

Kostua

Loki nahiko errentagarria da, ez dituelako datuak indexatzen, metadatuak soilik. Horrek lortzen du biltegian aurreztea eta memoria (cachea), objektuen biltegiratzea blokeen biltegiratzea baino merkeagoa baita, Elasticsearch klusterretan erabiltzen dena.

Ondorioa

EFK pila hainbat helburutarako erabil daiteke, malgutasun handiena eta ezaugarri ugari dituen Kibana interfazea analitika, bistaratzea eta kontsultak egiteko. Gehiago hobetu daiteke ikaskuntza automatikoko gaitasunekin.

Loki pila erabilgarria da Kubernetes ekosisteman bere metadatuak aurkitzeko mekanismoarengatik. Erraz korrelatu ditzakezu monitorizaziorako datuak denbora serieetan oinarrituta Grafana eta erregistroetan.

Kostuari eta epe luzerako erregistro-biltegiratzeari dagokionez, Loki hodeiko soluzioetarako sarrera-puntu bikaina da.

Merkatuan alternatiba gehiago daude - batzuk hobeak izan daitezke zuretzat. Esaterako, GKE-k Stackdriver integrazio bat du, monitorizazio irtenbide bikaina eskaintzen duena. Ez ditugu artikulu honetan gure azterketan sartu.

erreferentziak:

Artikulua Habrrentzat itzuli eta prestatu zuten langileek Slurm prestakuntza zentroa β€” ikastaro trinkoak, bideo-ikastaroak eta prestakuntza korporatiboa praktikan dauden espezialisten eskutik (Kubernetes, DevOps, Docker, Ansible, Ceph, SRE, Agile)

Iturria: www.habr.com

Gehitu iruzkin berria