Ke komo ʻana i nā Kubernetes: EFK vs PLG

Ke komo ʻana i nā Kubernetes: EFK vs PLG

Ua lilo ka nānā ʻana i mea koʻikoʻi o ka ulu ʻana i nā ʻōnaehana kapuaʻi e like me ka piʻi ʻana o ka paʻakikī o nā ʻōnaehana puʻupuʻu. Pono e hoʻomaopopo i kā lākou hana. Pono mākou i nā mea hana hiki ke hōʻiliʻili i nā ʻikepili mai nā lawelawe āpau - a hāʻawi i nā loea i hoʻokahi interface me ka loiloi hana, hōʻike hewa, loaʻa a me nā lāʻau.

Pono kēia mau mea hana like me ka maikaʻi a me ka huahana. Ma kēia ʻatikala, e nānā mākou i ʻelua pūʻulu ʻenehana kaulana: EFK (Elasticsearch) a me PLG (Loki) a nānā i kā lākou mau hale hana a me nā ʻokoʻa.

EFK ahu

Ua lohe mua paha ʻoe e pili ana i ka ELK a i ʻole EFK kaulana loa. Aia nā ʻāpana like ʻole o ka waihona: Elasticsearch (mea mālama mea), Logstash a i ʻole FluentD (hōʻiliʻili a me ka hōʻuluʻulu ʻana), a me Kibana no ka nānā ʻana.

ʻO kahi kaʻina hana maʻamau e like me kēia:

Ke komo ʻana i nā Kubernetes: EFK vs PLG

Elasticsearch — ka waiho ʻana i nā mea me ka huli ʻana a me ka ʻikepili manawa maoli. ʻO ka hopena maikaʻi loa no ka ʻikepili semi-structured e like me nā lāʻau. Mālama ʻia ka ʻike ma ke ʻano he palapala JSON, kuhikuhi ʻia i ka manawa maoli a puʻunaue ʻia ma nā nodes cluster. Hoʻohana ʻia kahi papa kuhikuhi inverted i loaʻa nā huaʻōlelo kūʻokoʻa a me nā palapala pili no ka huli kikokikona piha, ʻo ia hoʻi ma muli o ka ʻenekini huli ʻo Apache Lucene.

MāmāD He mea hōʻiliʻili ʻikepili e hoʻohui i ka ʻikepili i ka wā e hōʻiliʻili ai a ʻai ai. Ke ho'āʻo nei e hoʻonohonoho i ka ʻikepili ma JSON i ka mea hiki. Hiki ke hoʻonui ʻia kona hoʻolālā, ʻoi aku ka nui he mau haneli hoʻonui like ʻole, kākoʻo kaiaulu, no nā manawa a pau.

kibana - he mea hana ʻike ʻike no Elasticsearch me nā mana ʻē aʻe, no ka laʻana, ka nānā ʻana i ka manawa, ka nānā ʻana i ka pakuhi, ke aʻo ʻana i ka mīkini a me nā mea hou aku.

Elasticsearch hale hana

Mālama ʻia ka ʻikepili puʻupuʻu Elasticsearch i hoʻolaha ʻia ma kāna mau node a pau. Loaʻa i kahi puʻupuʻu nā node he nui e hoʻomaikaʻi i ka loaʻa a me ke kūpaʻa. Hiki i kēlā me kēia node ke hana i nā hana a pau o ka pūʻulu, akā ma nā hoʻolaha nui, hāʻawi ʻia nā node i nā hana pākahi.

Nā ʻano node pūʻulu:

  • master node - hoʻokele i ka hui, ʻekolu mau mea e pono ai, hoʻokahi hana mau;
  • node data - mālama i ka ʻikepili i kuhikuhi ʻia a hana i nā hana like ʻole me ia;
  • node komo - hoʻonohonoho i nā paipu no ka hoʻololi ʻana i ka ʻikepili ma mua o ka helu ʻana;
  • ka hoʻonohonoho ʻana i ka node - nā noi routing, hoʻemi i ka pae hana ʻimi, hoʻonohonoho i ka helu helu lehulehu;
  • makaʻala node - hoʻomaka i nā hana makaʻala;
  • node aʻo mīkini - hana i nā hana aʻo mīkini.

Hōʻike ke kiʻikuhi ma lalo i ke ʻano o ka mālama ʻia ʻana o ka ʻikepili a hana hou ʻia ma nā node e loaʻa ai ka loaʻa ʻikepili kiʻekiʻe.

Ke komo ʻana i nā Kubernetes: EFK vs PLG

Mālama ʻia ka ʻikepili o kēlā me kēia kope i loko o kahi kuhikuhi i hoʻohuli ʻia.

Ke komo ʻana i nā Kubernetes: EFK vs PLG

Kāu Mau Koho Paʻamau

Hiki ke nānā 'ia nā kiko'ī maanei, E hoʻohana au i ka pakuhi hoʻokele:

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

PLG ahu

Mai kāhāhā inā ʻaʻole ʻoe e ʻike i kēia acronym, no ka mea, ʻoi aku ka maikaʻi o ka inoa ʻo Grafana Loki. I kēlā me kēia hihia, loaʻa ka kaulana o kēia stack no ka mea hoʻohana ia i nā ʻenehana loea i hōʻoia ʻia. Ua lohe mua paha ʻoe iā Grafana, kahi mea hana ʻike kaulana. ʻO nā mea nāna i hana, i hoʻoulu ʻia e Prometheus, i hoʻomohala iā Loki, kahi ʻōnaehana log aggregation kiʻekiʻe. Hoʻopuka ʻo Loki i nā metadata wale nō, ʻaʻole nā ​​puke moʻolelo ponoʻī, kahi hopena ʻenehana e hiki ai ke maʻalahi ke hoʻohana a me ke kumu kūʻai.

Promtail - he ʻelele no ka hoʻouna ʻana i nā lāʻau mai ka ʻōnaehana hana i ka hui Loki. grafana he mea hana ʻike ma muli o ka ʻikepili mai Loki.

Ke komo ʻana i nā Kubernetes: EFK vs PLG

Hoʻokumu ʻia ʻo Loki ma nā loina like me Prometheus, no laila kūpono ia no ka mālama ʻana a me ka nānā ʻana i nā lāʻau Kubernetes.

hale hoʻolālā Loki

Hiki ke holo ʻia ʻo Loki ma ke ʻano he kaʻina hana hoʻokahi a i ʻole he mau kaʻina hana he nui, e ʻae ai i ka scaling horizontal.

Ke komo ʻana i nā Kubernetes: EFK vs PLG

Hiki iā ia ke hana ma ke ʻano he noi monolithic a i ʻole he microservice. Hiki ke hoʻohana ʻia ka holo ʻana ma ke kaʻina hana hoʻokahi no ka hoʻomohala kūloko a i ʻole no ka nānā liʻiliʻi. No ka hoʻokō ʻana i ka ʻoihana a me ka hana scalable, pono e hoʻohana i ke koho microservice. Hoʻokaʻawale ʻia nā ala no ke kākau ʻana a me ka heluhelu ʻana i ka ʻikepili, no laila hiki ke hoʻopaʻa ʻia a hoʻonui ʻia e like me ka mea e pono ai.

E nānā kākou i ka hoʻolālā o ka ʻōnaehana hōʻiliʻili lāʻau me ka ʻole o ka hele ʻana i nā kikoʻī.

Ke komo ʻana i nā Kubernetes: EFK vs PLG

A eia ka wehewehe ʻana (microservice architecture):

Ke komo ʻana i nā Kubernetes: EFK vs PLG

Nā ʻāpana:

Promtail - he ʻelele i hoʻokomo ʻia ma nā nodes (ma ke ʻano he mau lawelawe), wehe ia i nā lāʻau mai nā hana a komo i ka Kubernetes API no ka loaʻa ʻana o ka metadata e hōʻailona i nā lāʻau. Hoʻouna ia i ka log i ka lawelawe Loki nui. Kākoʻo ka palapala ʻāina metadata i nā lula kau inoa like me Prometheus.

Distributor - he mea hoʻolaha lawelawe e hana ana ma ke ʻano he pale. No ka hana ʻana i nā miliona o nā moʻolelo, hoʻopili ʻo ia i ka ʻikepili e hiki mai ana, e hoʻopaʻa ʻia i loko o nā poloka i kona hiki ʻana mai. Ke holo like nei kekahi mau waihona ʻikepili, akā pono e ʻike ʻia nā lāʻau no kahi kahawai ʻikepili e hiki mai ana i loko o kekahi o lākou no kāna mau poloka a pau. Hoʻonohonoho ʻia kēia i loko o ke apo o nā pūnāwai a me ka hashing sequential. No ka hoʻomanawanui hewa a me ka redundancy, hana ʻia kēia i nā manawa (3 inā ʻaʻole i hoʻonohonoho ʻia).

Mea hoʻohana - mea lawe lawelawe. Hiki mai nā poloka ʻikepili me nā lāʻau i hoʻohui ʻia. Ke lawa ka nui o ka poloka, holoi ʻia ka poloka i ka waihona. Hele ka metadata i ka index, a hele ka ʻikepili mai ka poloka log i Chunks (maʻa mau mea mālama). Ma hope o ka hoʻoponopono hou ʻana, hana ka mea hoʻokipa i kahi poloka hou kahi e hoʻohui ʻia ai nā mea hou.

Ke komo ʻana i nā Kubernetes: EFK vs PLG

Index - waihona waihona, DynamoDB, Cassandra, Google BigTable, etc.

ʻO Chunks - nā poloka log ma ke ʻano i hoʻopaʻa ʻia, mālama mau ʻia i loko o kahi waihona mea, no ka laʻana, S3.

mea ninau - ke ala heluhelu e hana i nā hana lepo a pau. Nānā ia i ka pae manawa a me ka timestamp, a laila nānā i ka papa kuhikuhi no ka huli ʻana i nā pāʻani. A laila, heluhelu ia i nā poloka o ka ʻikepili a kānana iā lākou e loaʻa ai ka hopena.

I kēia manawa e ʻike kākou i nā mea a pau i ka hana.

Kāu Mau Koho Paʻamau

ʻO ke ala maʻalahi loa e hoʻokomo ma Kubernetes ʻo ka hoʻohana ʻana i ka helm. Manaʻo mākou ua hoʻokomo a hoʻonohonoho ʻoe iā ia (a ʻo ke kolu o ka mana! kokoke. mea unuhi)

Hoʻohui i kahi waihona a hoʻokomo i kahi waihona.

$ 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

Aia ma lalo kahi laʻana dashboard e hōʻike ana i ka ʻikepili mai Prometheus for Etcd metrics a me Loki no Etcd pod logs.

Ke komo ʻana i nā Kubernetes: EFK vs PLG

I kēia manawa, e kūkākūkā kākou i ka hoʻolālā ʻana o nā ʻōnaehana ʻelua, a e hoʻohālikelike pū i ko lākou hiki kekahi i kekahi.

Kūlike

ʻŌlelo nīnau

Hoʻohana ʻo Elasticsearch i ka Query DSL a me ka ʻōlelo hulina Lucene e hāʻawi i ka hiki ke huli kikokikona piha. He ʻenekini huli ikaika ia me ke kākoʻo o ka mea hoʻohana ākea. Me ia, hiki iā ʻoe ke ʻimi ma ka pōʻaiapili a hoʻokaʻawale ma ka pili.

Aia ma kēlā ʻaoʻao o ke apo ʻo LogQL, hoʻohana ʻia ma Loki, ka mea pani iā ​​PromQL (Prometheus query language). Hoʻohana ia i nā hōʻailona log e kānana a koho i ka ʻikepili log. Hiki ke hoʻohana i kekahi mau mea hana a me ka helu helu e like me ka mea i wehewehe ʻia maanei, akā ma ke ʻano o nā mea hiki ke waiho ma hope o ka ʻōlelo Elastic.

No ka mea pili nā nīnau ma Loki me nā hōʻailona, ​​​​maʻalahi lākou e hoʻopili me nā metric, a ʻo ka hopena, ʻoi aku ka maʻalahi o ka hoʻonohonoho ʻana i ka nānā ʻana.

Scalability

Hiki ke hoʻonui ʻia nā papa ʻelua, akā ʻoi aku ka maʻalahi o Loki no ka mea he ʻokoʻa ka heluhelu a kākau ʻana i nā ala a me kahi hoʻolālā microservice. Hiki ke hoʻopilikino ʻia ʻo Loki e kūpono i kāu mau pono a hiki ke hoʻohana ʻia no nā puke nui loa o ka ʻikepili log.

ʻO ka lehulehu

He kumuhana maʻamau ka Cluster multitenancy i ka pōkole OPEX, hāʻawi nā waihona ʻelua i ka multitenancy. Aia kekahi mau mea no Elasticsearch ala kaʻawale ʻana o ka mea kūʻai aku: ka papa kuhikuhi hoʻokaʻawale no kēlā me kēia mea kūʻai aku, ka hoʻokele ʻana i ka mea kūʻai aku, nā kahua kūʻai kūʻokoʻa, nā kānana hulina. Loaʻa iā Loki kākoʻo ma ke ʻano o kahi poʻomanaʻo HTTP X-Scope-OrgID.

lilo o

ʻOi aku ka maikaʻi o ka Loki ma muli o ka mea ʻaʻole ia e kuhikuhi i ka ʻikepili, ʻo ka metadata wale nō. Loaʻa kēia hoʻokoe ma ka waiho ʻana a me ka hoʻomanaʻo (cache), no ka mea, ʻoi aku ka liʻiliʻi o ka mālama ʻana i nā mea ma mua o ka mālama ʻana i ka poloka, i hoʻohana ʻia i nā hui Elasticsearch.

hopena

Hiki ke hoʻohana ʻia ka waihona EFK no nā kumu like ʻole, e hāʻawi ana i ka hiki ke maʻalahi a me kahi kikowaena Kibana waiwai nui no ka analytics, visualization, a me nā nīnau. Hiki ke hoʻonui ʻia e nā mana aʻo mīkini.

He mea pono ka waihona Loki i ka kaiaola Kubernetes ma muli o kāna hana ʻike metadata. Hiki iā ʻoe ke hoʻopili maʻalahi i ka ʻikepili no ka nānā ʻana e pili ana i ka manawa manawa ma Grafana a me nā lāʻau.

I ka wā e pili ana i ke kumukūʻai a me ka mālama ʻana i ka lāʻau lōʻihi, ʻo Loki kahi wahi komo maikaʻi loa i nā hāʻina ao.

Nui nā koho ʻē aʻe ma ka mākeke - ʻoi aku ka maikaʻi o kekahi iā ʻoe. No ka laʻana, loaʻa iā GKE kahi hoʻohui Stackdriver e hāʻawi i kahi hopena nānā maikaʻi loa. ʻAʻole mākou i hoʻokomo iā lākou i kā mākou loiloi ma kēia ʻatikala.

Nā Manaʻo:

Ua unuhi ʻia ka ʻatikala a hoʻomākaukau ʻia no Habr e nā limahana Ke kikowaena hoʻomaʻamaʻa Slurm - nā papa koʻikoʻi, nā papa wikiō a me nā hoʻomaʻamaʻa ʻoihana mai ka hoʻomaʻamaʻa loea (Kubernetes, DevOps, Docker, Ansible, Ceph, SRE, Agile)

Source: www.habr.com

Pākuʻi i ka manaʻo hoʻopuka