Kulowa mu Kubernetes: EFK vs PLG

Kulowa mu Kubernetes: EFK vs PLG

Kuwunika kwakhala chinthu chofunikira kwambiri pakukula kwa mayankho amtambo pomwe zovuta za machitidwe ogawa zikuwonjezeka. M'pofunika kumvetsetsa khalidwe lawo. Tikufuna zida zowopsa zomwe zitha kusonkhanitsa deta kuchokera kuzinthu zonse - ndikupatsa akatswiri mawonekedwe amodzi omwe ali ndi kusanthula kwa magwiridwe antchito, zowonetsa zolakwika, kupezeka ndi logi.

Zida zomwezi ziyenera kukhala zogwira mtima komanso zogwira mtima. M'nkhaniyi, tiwona ma stacks awiri otchuka aukadaulo: EFK (Elasticsearch) ndi PLG (Loki) ndikuwunika momwe amapangira komanso kusiyana kwawo.

Mtengo wa EFK

Mwina mudamvapo za ELK kapena EFK yotchuka kwambiri. Mundawu uli ndi zigawo zingapo zosiyana: Elasticsearch (chinthu chosungira), Logstash kapena FluentD (kusonkhanitsa zipika ndi kuphatikizira), ndi Kibana kuti muwonekere.

Ntchito yokhazikika ikuwoneka motere:

Kulowa mu Kubernetes: EFK vs PLG

Elasticsearch - kugawa zosungirako zinthu ndikusaka ndi kusanthula zenizeni zenizeni. Yabwino kwambiri yothetsera deta yopangidwa ndi theka monga zipika. Zambiri zimasungidwa ngati zolemba za JSON, zolembedwa munthawi yeniyeni ndikugawidwa m'magulumagulu. Mlozera wotembenuzidwa umagwiritsidwa ntchito, wokhala ndi mawu apadera ndi zolemba zofananira pofufuza mawu onse, zomwenso zimachokera pakusaka kwa Apache Lucene.

FluentD ndi osonkhanitsa deta omwe amagwirizanitsa deta pamene akusonkhanitsa ndi kuwononga. Imayesa kukonza zambiri mu JSON momwe zingathere. Mamangidwe ake ndi owonjezera, pali zambiri mazana owonjezera osiyanasiyana, zothandizidwa ndi anthu ammudzi, nthawi zonse.

Kibana - chida chowonera deta cha Elasticsearch chokhala ndi zowonjezera zosiyanasiyana, mwachitsanzo, kusanthula nthawi, kusanthula ma graph, kuphunzira pamakina ndi zina zambiri.

Elasticsearch zomangamanga

Zambiri zamagulu a Elasticsearch zimasungidwa mofalikira m'malo ake onse. Gulu limakhala ndi ma node angapo kuti lithandizire kupezeka komanso kulimba mtima. Node iliyonse imatha kugwira ntchito zonse zamagulu, koma m'magulu akuluakulu, ma node amapatsidwa ntchito zapayekha.

Mitundu ya Cluster node:

  • node ya master - imayang'anira gululo, osachepera atatu amafunikira, imodzi imakhala yogwira ntchito nthawi zonse;
  • node ya data - imasunga zomwe zili ndi indexed ndikuchita nawo ntchito zosiyanasiyana;
  • ingest node - imapanga mapaipi osinthira deta musanalembe;
  • kugwirizanitsa node - zopempha za njira, kuchepetsa gawo losakasaka, kugwirizanitsa ma indexing ambiri;
  • kuchenjeza node - kuyambitsa ntchito zochenjeza;
  • makina ophunzirira makina - kukonza ntchito zophunzirira makina.

Chithunzi chili m'munsichi chikuwonetsa momwe deta imasungidwira ndikusinthidwanso m'malo onse kuti zipezeke zambiri.

Kulowa mu Kubernetes: EFK vs PLG

Deta iliyonse yofananira imasungidwa mu index inverted, chithunzi chomwe chili pansipa chikuwonetsa momwe izi zimachitikira:

Kulowa mu Kubernetes: EFK vs PLG

kolowera

Zambiri zitha kuwonedwa apa, ndigwiritsa ntchito tchati chowongolera:

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

Mtengo wapatali wa magawo PLG

Musadabwe ngati simungapeze chidule ichi, chifukwa chimadziwika bwino kuti Grafana Loki. Mulimonsemo, stack iyi ikudziwika chifukwa imagwiritsa ntchito njira zotsimikiziridwa. Mwina mudamvapo za Grafana, chida chodziwika bwino chowonera. Opanga ake, mouziridwa ndi Prometheus, adapanga Loki, njira yolumikizira mitengo yopingasa, yogwira ntchito kwambiri. Loki amangowonetsa metadata yokha, osati magazini okha, njira yaukadaulo yomwe imalola kuti ikhale yosavuta kugwiritsa ntchito komanso yotsika mtengo.

Promtail - wothandizira kutumiza zipika kuchokera pa opareshoni kupita ku gulu la Loki. grafana ndi chida chowonera pogwiritsa ntchito deta kuchokera ku Loki.

Kulowa mu Kubernetes: EFK vs PLG

Loki imamangidwa pa mfundo zomwezo monga Prometheus, zomwe zimapangitsa kuti zikhale zoyenera kusunga ndi kusanthula zipika za Kubernetes.

Zomangamanga za Loki

Loki imatha kuyendetsedwa ngati njira imodzi kapena zingapo, kulola kukweza kopingasa.

Kulowa mu Kubernetes: EFK vs PLG

Itha kugwiranso ntchito ngati monolithic application kapena ngati microservice. Kuthamanga ngati njira imodzi kungakhale kothandiza pa chitukuko cha m'deralo kapena pakuwunika pang'ono. Kuti mugwiritse ntchito mafakitale komanso kuchuluka kwa ntchito, tikulimbikitsidwa kugwiritsa ntchito njira ya microservice. Njira zolembera ndi zowerengera zimasiyanitsidwa, kotero zimatha kusinthidwa bwino ndikusinthidwa ngati pakufunika.

Tiyeni tiwone mamangidwe a dongosolo lotolera zipika popanda tsatanetsatane:

Kulowa mu Kubernetes: EFK vs PLG

Ndipo nayi mafotokozedwe (microservice architecture):

Kulowa mu Kubernetes: EFK vs PLG

Zigawo:

Promtail - wothandizira oikidwa pa node (monga seti ya mautumiki), amachotsa zipika kuchokera ku ntchito ndikupeza Kubernetes API kuti apeze metadata yomwe idzalemba zolembazo. Kenako imatumiza chipikacho ku utumiki waukulu wa Loki. Mapu a metadata amathandizira malamulo omwewo amalemba ngati Prometheus.

wogulitsa - wogawa ntchito omwe amagwira ntchito ngati buffer. Kukonza ma rekodi mamiliyoni ambiri, imanyamula zidziwitso zomwe zikubwera, ndikuzikanikiza m'ma block pamene zikufika. Ma data angapo akuyenda nthawi imodzi, koma zipika zamtundu umodzi wa data womwe ukubwera uyenera kuwoneka mu imodzi mwazo pama block ake onse. Izi zimakonzedwa kukhala mphete ya masinki ndi ma hashing otsatizana. Pakulekerera zolakwika ndi redundancy, izi zimachitika n nthawi (3 ngati sizinakonzedwe).

Ingester - wolandila utumiki. Ma midadada amafika atapanikizidwa ndi zipika zowonjezeredwa. Chidacho chikafika kukula kokwanira, chipikacho chimathamangitsidwa ku database. Metadata imapita ku index, ndipo deta kuchokera ku chipika cha log imapita ku Chunks (nthawi zambiri kusungirako zinthu). Pambuyo pa kukonzanso, wolandirayo amapanga chipika chatsopano pomwe zolemba zatsopano zidzawonjezedwa.

Kulowa mu Kubernetes: EFK vs PLG

Index - Nawonso database, DynamoDB, Cassandra, Google BigTable, etc.

Zolemba - midadada ya logi mu mawonekedwe oponderezedwa, omwe nthawi zambiri amasungidwa posungira zinthu, mwachitsanzo, S3.

Wofunsa - njira yowerengera yomwe imagwira ntchito zonyansa zonse. Imayang'ana nthawi ndi masitampu, kenako imayang'ana mlozera kuti mupeze machesi. Kenako, imawerenga midadada ya data ndikusefa kuti ipeze zotsatira.

Tsopano tiyeni tiwone zonse zikugwira ntchito.

kolowera

Njira yosavuta yoyika ku Kubernetes ndikugwiritsa ntchito helm. Tikuganiza kuti mwayiyika kale ndikuyikonza (ndi Baibulo lachitatu! pafupifupi. womasulira)

Onjezani posungira ndikuyika 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

Pansipa pali chitsanzo cha dashboard chosonyeza deta kuchokera ku Prometheus ya Etcd metrics ndi Loki ya ma Etcd pod logs.

Kulowa mu Kubernetes: EFK vs PLG

Tsopano tiyeni tikambirane kamangidwe ka machitidwe onsewa, ndi kuyerekezera mphamvu zawo wina ndi mzake.

Kuyerekeza

Chilankhulo chofunsira

Elasticsearch imagwiritsa ntchito chilankhulo cha Query DSL ndi Lucene kuti ipereke luso lofufuzira lathunthu. Ndi injini yosakira yokhazikika, yamphamvu yokhala ndi chithandizo cha opareshoni. Ndi iyo, mutha kusaka ndi nkhani ndikusankha malinga ndi kufunika kwake.

Kumbali ina ya mpheteyo ndi LogQL, yogwiritsidwa ntchito ku Loki, wolowa m'malo mwa PromQL (chinenero cha funso la Prometheus). Imagwiritsa ntchito ma tag a chipika kusefa ndikusankha deta ya chipika. Ndizotheka kugwiritsa ntchito ena ogwira ntchito ndi masamu monga momwe tafotokozera apa, koma malinga ndi luso zimatsalira kumbuyo kwa chilankhulo chokhazikika.

Popeza mafunso mu Loki amalumikizidwa ndi ma tag, ndi osavuta kulumikizana ndi ma metrics, ndipo chifukwa chake, amakhala osavuta kupanga nawo kuwunika momwe ntchito ikuyendera.

Scalability

Milu yonse iwiriyi ndi yopingasa, koma Loki imapangitsa kuti ikhale yosavuta chifukwa ili ndi njira zowerengera ndi kulemba zosiyana komanso kamangidwe ka microservice. Loki ikhoza kusinthidwa kuti igwirizane ndi zosowa zanu ndipo ingagwiritsidwe ntchito pazinthu zazikulu kwambiri za chipika.

Multitenancy

Cluster multitenancy ndi mutu wamba mu chidule cha OPEX, ma stacks onse amapereka multitenancy. Pali zingapo za Elasticsearch njira kulekanitsa makasitomala: index yosiyana ya kasitomala aliyense, njira yotengera kasitomala, magawo apadera a kasitomala, zosefera zosaka. Loki ali thandizo mu mawonekedwe a mutu wa HTTP X-Scope-OrgID.

mtengo

Loki ndiyotsika mtengo kwambiri chifukwa sichilozera deta, koma metadata yokha. Izi zimakwaniritsa ndalama zosungirako ndi kukumbukira (cache), popeza kusungirako zinthu ndikotsika mtengo kuposa kusungirako chipika, komwe kumagwiritsidwa ntchito m'magulu a Elasticsearch.

Pomaliza

Stack ya EFK itha kugwiritsidwa ntchito pazifukwa zosiyanasiyana, kupereka kusinthasintha kwakukulu komanso mawonekedwe olemera a Kibana owunikira, kuwona, ndi mafunso. Ikhoza kuwonjezeredwa ndi luso lophunzirira makina.

Loki stack ndiyothandiza mu Kubernetes ecosystem chifukwa cha njira yake yopezera metadata. Mutha kulumikiza mosavuta zowunikira potengera nthawi ku Grafana ndi logi.

Zikafika pamtengo komanso kusungirako zipika kwa nthawi yayitali, Loki ndi malo abwino olowera mumiyendo yamtambo.

Pali njira zina pamsika - zina zitha kukhala zabwinoko kwa inu. Mwachitsanzo, GKE ili ndi kuphatikiza kwa Stackdriver komwe kumapereka njira yabwino yowunikira. Sitinawaphatikize pakuwunika kwathu m'nkhaniyi.

Zolemba:

Nkhaniyi idamasuliridwa ndikukonzedwa kwa Habr ndi antchito Slurm Training Center - maphunziro apamwamba, maphunziro amakanema ndi maphunziro apakampani kuchokera kwa akatswiri oyeserera (Kubernetes, DevOps, Docker, Ansible, Ceph, SRE, Agile)

Source: www.habr.com

Kuwonjezera ndemanga