Pag-log in sa Kubernetes: EFK batok sa PLG

Pag-log in sa Kubernetes: EFK batok sa PLG

Ang pag-monitor nahimong usa ka hinungdanon nga bahin sa nagtubo nga mga solusyon sa panganod nga adunay nagkadako nga pagkakomplikado sa mga gipang-apod-apod nga sistema. Kinahanglan nga masabtan ang ilang pamatasan. Nagkinahanglan kami og scalable nga mga himan nga makakolekta og data gikan sa tanang serbisyo - ug maghatag sa mga espesyalista og usa ka interface nga adunay performance analysis, error demonstration, availability ug logs.

Kining sama nga mga himan kinahanglan nga episyente ug mabungahon. Niini nga artikulo, atong tan-awon ang duha ka sikat nga teknolohiya nga stack: EFK (Elasticsearch) ug PLG (Loki) ug analisahon ang ilang mga arkitektura ug mga kalainan.

EFK Stack

Tingali nakadungog na ka bahin sa sikat kaayo nga ELK o EFK. Ang stack naglangkob sa pipila ka bulag nga mga bahin: Elasticsearch (pagtipig sa butang), Logstash o FluentD (pagkolekta ug pagtipon sa mga troso) ug Kibana para sa visualization.

Ang usa ka tipikal nga workflow ingon niini:

Pag-log in sa Kubernetes: EFK batok sa PLG

Elasticsearch - giapod-apod nga pagtipig sa butang nga adunay tinuud nga oras nga pagpangita ug pag-analisar. Usa ka maayo kaayo nga solusyon alang sa semi-structured nga datos sama sa mga troso. Ang impormasyon gitipigan isip mga dokumento sa JSON, gi-index sa tinuod nga panahon, ug giapod-apod sa mga cluster node. Usa ka balit-ad nga index nga adunay tanan nga talagsaon nga mga pulong ug may kalabutan nga mga dokumento alang sa tibuuk nga teksto nga pagpangita gigamit, nga sa baylo gibase sa search engine sa Apache Lucene.

larinoD usa ka tigkolekta sa datos nga naghiusa sa datos samtang kini gikolekta ug gigamit. Gisulayan niini ang pag-organisar sa datos sa JSON kutob sa mahimo. Extensible ang arkitektura niini, daghan pa gatusan ka lain-laing mga extension, gisuportahan sa komunidad, alang sa tanan nga mga okasyon.

Kibana usa ka himan sa paghanduraw sa datos alang sa Elasticsearch nga adunay lainlain nga dugang nga mga bahin, sama sa pagtuki sa serye sa oras, mga graph, pagkat-on sa makina, ug uban pa.

Elasticsearch nga Arkitektura

Ang datos sa Elasticsearch cluster gitipigan nga mikaylap sa tanan nga mga node niini. Ang cluster naglangkob sa daghang mga node aron mapauswag ang pagkaanaa ug kalig-on. Ang bisan unsang node makahimo sa tanan nga mga tahas sa cluster, apan sa dako, scalable deployment, ang mga node kasagarang gi-assign sa lain nga mga buluhaton.

Mga tipo sa cluster node:

  • master node - nagdumala sa cluster, kinahanglan nimo labing menos tulo, ang usa kanunay nga aktibo;
  • data node - nagtipig sa na-index nga datos ug naghimo sa lainlaing mga buluhaton uban kanila;
  • ingest node - nag-organisar sa mga pipeline alang sa pagbag-o sa datos sa wala pa ang pag-indeks;
  • coordinating node - paghangyo sa pag-ruta, pagkunhod sa hugna sa pagproseso sa pagpangita, pag-coordinate sa bulk indexing;
  • alerting node - paglansad sa mga buluhaton sa pagpahibalo;
  • machine learning node - pagproseso sa mga buluhaton sa pagkat-on sa makina.

Ang dayagram sa ubos nagpakita kung giunsa pagpadayon ang datos ug pagkopya sa mga node aron makab-ot ang mas taas nga pagkaanaa sa datos.

Pag-log in sa Kubernetes: EFK batok sa PLG

Ang matag data sa kopya gitipigan sa usa ka balit-ad nga indeks, ang dayagram sa ubos nagpakita kung giunsa kini mahitabo:

Pag-log in sa Kubernetes: EFK batok sa PLG

Pag-instalar

Ang mga detalye mahimong tan-awon dinhi, akong gamiton ang tsart sa timon:

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

PLG stack

Ayaw katingala kung dili nimo makit-an kini nga acronym, tungod kay mas nailhan kini nga Grafana Loki. Sa bisan unsa nga kaso, kini nga stack nagkapopular tungod kay kini naggamit sa napamatud-an nga teknikal nga mga solusyon. Tingali nakadungog na ka bahin sa Grafana, usa ka sikat nga himan sa pagtan-aw. Ang mga tiglalang niini, nga giinspirar ni Prometheus, nagpalambo sa Loki, usa ka horizontally scalable, high-performance log aggregation system. Gi-index lamang ni Loki ang metadata, dili ang mga journal mismo, kini nga teknikal nga solusyon nagpasayon ​​​​sa paggamit ug epektibo sa gasto.

Promtail - usa ka ahente sa pagpadala sa mga troso gikan sa operating system ngadto sa Loki cluster. grafana kay usa ka visualization tool base sa data gikan sa Loki.

Pag-log in sa Kubernetes: EFK batok sa PLG

Ang Loki gitukod sa parehas nga mga prinsipyo sama sa Prometheus, busa kini angayan alang sa pagtipig ug pag-parse sa mga troso sa Kubernetes.

Ang arkitektura sa Loki

Ang Loki mahimong ipadagan ingon usa ka proseso o ingon daghang mga proseso, nga gitugotan ang pinahigda nga pag-scale.

Pag-log in sa Kubernetes: EFK batok sa PLG

Mahimo usab kini nga molihok ingon usa ka monolithic nga aplikasyon ug ingon usa ka microservice. Ang pagpadagan isip usa ka proseso mahimong mapuslanon alang sa lokal nga kalamboan o alang sa maayong pagmonitor. Para sa industriyal nga pagpatuman ug scalable workload, girekomendar nga gamiton ang microservice option. Ang mga agianan sa pagsulat ug pagbasa sa datos gibulag, aron kini mahimong maayong pagkahan-ay ug pag-scale kung gikinahanglan.

Atong tan-awon ang arkitektura sa sistema sa pagkolekta sa troso nga walay detalye:

Pag-log in sa Kubernetes: EFK batok sa PLG

Ug ania ang paghulagway (microservice architecture):

Pag-log in sa Kubernetes: EFK batok sa PLG

Mga sangkap:

Promtail - usa ka ahente nga na-install sa mga node (isip usa ka set sa mga serbisyo), gitangtang niini ang mga troso gikan sa mga buluhaton ug gi-access ang Kubernetes API aron makuha ang metadata nga gamiton aron markahan ang mga log. Gipadala dayon niini ang log sa panguna nga serbisyo sa Loki. Alang sa pagpares sa metadata, ang parehas nga mga lagda sa pag-tag gisuportahan sama sa Prometheus.

distributor - service-distributor, nagtrabaho isip buffer. Aron maproseso ang milyon-milyon nga mga rekord, giputos niini ang umaabot nga datos, gi-compress kini sa mga bloke sa pag-abot niini. Daghang mga pag-unlod sa datos ang nagdagan sa parehas nga oras, apan ang mga troso nga nahisakop sa parehas nga umaabot nga stream sa datos kinahanglan nga mahuman sa usa lamang niini alang sa tanan nga mga bloke niini. Giorganisar kini ingon usa ka singsing sa mga tigdawat ug sunud-sunod nga hashing. Para sa fault tolerance ug redundancy, gihimo kini n times (3 kung dili ma-configure).

tigsulod - tigdawat sa serbisyo. Ang mga bloke sa datos moabut nga gi-compress nga adunay dugang nga mga troso. Sa diha nga ang block adunay igo nga gidak-on, ang block i-flush ngadto sa database. Ang metadata moadto sa index, ug ang datos gikan sa log block moadto sa Chunks (kasagaran butang storage). Pagkahuman sa pag-reset, ang tigdawat maghimo usa ka bag-ong bloke diin ang mga bag-ong rekord idugang.

Pag-log in sa Kubernetes: EFK batok sa PLG

index - database, DynamoDB, Cassandra, Google BigTable ug uban pa.

Mga tipak - mga bloke sa mga troso sa usa ka compressed nga porma, kasagaran gitipigan sa butang storage, pananglitan, S3.

Nangutana usa ka dalan sa pagbasa nga naghimo sa tanan nga hugaw nga trabaho. Gitan-aw niini ang sakup sa oras ug timestamp, ug dayon tan-awon ang indeks aron mangita mga posporo. Sunod, gibasa niini ang mga bloke sa datos ug gisala kini aron makuha ang resulta.

Karon atong tan-awon ang tanan sa trabaho.

Pag-instalar

Ang pinakasayon ​​nga paagi sa pag-instalar sa Kubernetes mao ang paggamit sa timon. Nagtuo kami nga na-install ug na-configure na nimo kini (ug ang ikatulo nga bersyon! gibanabana. tighubad)

Nagdugang kami usa ka repositoryo ug nagbutang kami usa ka stack.

$ 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

Sa ubos usa ka pananglitan nga dashboard nga nagpakita sa datos gikan sa Prometheus para sa Etcd ug Loki metrics alang sa Etcd pod logs.

Pag-log in sa Kubernetes: EFK batok sa PLG

Ug karon atong hisgutan ang arkitektura sa duha ka mga sistema, ingon man itandi ang ilang mga kapabilidad sa usag usa.

Pagtandi

Pangutana nga pinulongan

Gigamit sa Elasticsearch ang Query DSL ug Lucene nga pangutana nga lengguwahe aron mahatagan ang tibuuk nga katakus sa pagpangita sa teksto. Kini usa ka lig-on nga search engine nga adunay lapad nga suporta sa operator. Uban niini, makapangita ka pinaagi sa konteksto ug paghan-ay pinaagi sa kalabutan.

Sa pikas nga bahin sa singsing mao ang Loki's LogQL, usa ka manununod sa PromQL (Prometheus query language). Gigamit niini ang mga label sa log aron masala ug mapili ang data sa log. Posible nga gamiton ang pipila ka mga operator ug aritmetika sama sa gihulagway dinhi, apan sa mga termino sa mga kapabilidad, kini naulahi sa Elastic nga pinulongan.

Tungod kay ang mga hangyo sa Loki gilangkit sa mga label, kini dali nga ma-correlate sa mga sukatan, ingon usa ka sangputanan, mas dali ang pag-organisar sa pag-monitor sa operasyon uban kanila.

Scalability

Ang duha ka mga stack mga pinahigda nga scalable, apan sa Loki kini mas sayon ​​tungod kay kini adunay bulag nga pagbasa ug pagsulat nga mga agianan, ug kini adunay usa ka microservice nga arkitektura. Ang Loki mahimong ipasibo sa imong mga panginahanglan ug mahimong magamit alang sa dako kaayo nga mga volume sa data sa log.

Multitenancy

Ang Cluster multi-tenancy usa ka komon nga tema alang sa pagkunhod sa OPEX, ang duha ka stack naghatag og multi-tenancy. Adunay ubay-ubay alang sa Elasticsearch mga paagi pagbulag sa kustomer: lahi nga indeks matag kustomer, pag-ruta nga nakabase sa kostumer, talagsaon nga mga natad sa kustomer, mga filter sa pagpangita. Loki adunay pagsuporta ingon HTTP X-Scope-OrgID header.

gasto sa

Ang Loki epektibo kaayo sa gasto tungod sa kamatuoran nga wala kini nag-index sa datos, metadata lamang. Sa ingon, pagtipig sa pagtipig ug memorya (cache), tungod kay ang pagtipig sa butang mas barato kaysa block storage, nga gigamit sa Elasticsearch clusters.

konklusyon

Ang EFK stack mahimong magamit alang sa lain-laing mga katuyoan, naghatag labing taas nga pagka-flexible ug usa ka dato nga interface sa Kibana alang sa analytics, visualization, ug mga pangutana. Mahimo kini nga dugang nga mapauswag sa mga kapabilidad sa pagkat-on sa makina.

Ang Loki stack mapuslanon sa Kubernetes ecosystem tungod sa metadata discovery mechanism. Dali nimo ma-correlate ang mga datos alang sa pag-monitor base sa serye sa oras sa Grafana ug mga log.

Kung bahin sa gasto ug dugay nga pagpadayon sa log, ang Loki usa ka maayo kaayo nga kapilian alang sa pagsulod sa panganod.

Adunay daghang mga alternatibo sa merkado - ang uban mahimong mas maayo alang kanimo. Pananglitan, ang GKE adunay usa ka panagsama sa Stackdriver nga naghatag usa ka maayo nga solusyon sa pag-monitor. Wala namo sila gilakip sa among pagtuki niini nga artikulo.

Mga reperensiya:

Ang artikulo gihubad ug giandam alang sa Habr sa mga empleyado Slurm training center - mga intensive, mga kurso sa video ug pagbansay sa korporasyon gikan sa mga practitioner (Kubernetes, DevOps, Docker, Ansible, Ceph, SRE, Agile)

Source: www.habr.com

Idugang sa usa ka comment