కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

పంపిణీ వ్యవస్థల సంక్లిష్టత పెరుగుతున్నందున పెరుగుతున్న క్లౌడ్ సొల్యూషన్‌లలో పర్యవేక్షణ చాలా ముఖ్యమైన అంశంగా మారింది. వారి ప్రవర్తనను అర్థం చేసుకోవడం అవసరం. మాకు అన్ని సేవల నుండి డేటాను సేకరించగల స్కేలబుల్ సాధనాలు అవసరం - మరియు పనితీరు విశ్లేషణ, ఎర్రర్ ప్రదర్శన, లభ్యత మరియు లాగ్‌లతో ఒకే ఇంటర్‌ఫేస్‌తో నిపుణులను అందిస్తాయి.

ఇదే సాధనాలు సమర్థవంతంగా మరియు ఉత్పాదకంగా ఉండాలి. ఈ కథనంలో, మేము రెండు ప్రసిద్ధ సాంకేతిక స్టాక్‌లను పరిశీలిస్తాము: EFK (ఎలాస్టిక్‌సెర్చ్) మరియు PLG (లోకీ) మరియు వాటి నిర్మాణాలు మరియు తేడాలను పరిశీలిస్తాము.

EFK స్టాక్

మీరు చాలా జనాదరణ పొందిన ELK లేదా EFK గురించి ఇప్పటికే విని ఉండవచ్చు. స్టాక్ అనేక విభిన్న భాగాలను కలిగి ఉంటుంది: ఎలాస్టిక్ సెర్చ్ (ఆబ్జెక్ట్ స్టోరేజ్), లాగ్‌స్టాష్ లేదా ఫ్లూయెంట్‌డి (లాగ్ సేకరణ మరియు అగ్రిగేషన్) మరియు విజువలైజేషన్ కోసం కిబానా.

సాధారణ వర్క్‌ఫ్లో ఇలా కనిపిస్తుంది:

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

Elasticsearch - శోధన మరియు నిజ-సమయ విశ్లేషణలతో పంపిణీ చేయబడిన వస్తువు నిల్వ. లాగ్‌ల వంటి సెమీ స్ట్రక్చర్డ్ డేటా కోసం అద్భుతమైన పరిష్కారం. సమాచారం JSON పత్రాలుగా సేవ్ చేయబడుతుంది, నిజ సమయంలో సూచిక చేయబడుతుంది మరియు క్లస్టర్ నోడ్‌లలో పంపిణీ చేయబడుతుంది. విలోమ సూచిక ఉపయోగించబడుతుంది, పూర్తి-టెక్స్ట్ శోధన కోసం అన్ని ప్రత్యేకమైన పదాలు మరియు అనుబంధిత పత్రాలను కలిగి ఉంటుంది, ఇది Apache Lucene శోధన ఇంజిన్‌పై ఆధారపడి ఉంటుంది.

ఫ్లూయెంట్ డి డేటాను సేకరించి వినియోగించేటప్పుడు డేటాను ఏకీకృతం చేసే డేటా కలెక్టర్. ఇది సాధ్యమైనంత ఎక్కువ JSONలో డేటాను నిర్వహించడానికి ప్రయత్నిస్తుంది. దీని నిర్మాణం విస్తరించదగినది, ఇంకా చాలా ఉన్నాయి వందలాది విభిన్న పొడిగింపులు, కమ్యూనిటీ-మద్దతు, అన్ని సందర్భాలలో.

Kibana - వివిధ అదనపు సామర్థ్యాలతో సాగే శోధన కోసం డేటా విజువలైజేషన్ సాధనం, ఉదాహరణకు, సమయ శ్రేణి విశ్లేషణ, గ్రాఫ్ విశ్లేషణ, యంత్ర అభ్యాసం మరియు మరిన్ని.

సాగే శోధన నిర్మాణం

సాగే శోధన క్లస్టర్ డేటా దాని అన్ని నోడ్‌లలో నిల్వ చేయబడుతుంది. ఒక క్లస్టర్ లభ్యత మరియు స్థితిస్థాపకతను మెరుగుపరచడానికి బహుళ నోడ్‌లను కలిగి ఉంటుంది. ఏ నోడ్ అయినా క్లస్టర్ యొక్క అన్ని పాత్రలను నిర్వర్తించగలదు, కానీ పెద్ద స్కేల్-అవుట్ విస్తరణలలో, నోడ్‌లకు సాధారణంగా వ్యక్తిగత పనులు కేటాయించబడతాయి.

క్లస్టర్ నోడ్ రకాలు:

  • మాస్టర్ నోడ్ - క్లస్టర్‌ను నిర్వహిస్తుంది, కనీసం మూడు అవసరం, ఒకటి ఎల్లప్పుడూ చురుకుగా ఉంటుంది;
  • డేటా నోడ్ - ఇండెక్స్ చేయబడిన డేటాను నిల్వ చేస్తుంది మరియు దానితో వివిధ పనులను చేస్తుంది;
  • ఇంజెస్ట్ నోడ్ - ఇండెక్సింగ్ ముందు డేటాను మార్చడానికి పైప్‌లైన్‌లను నిర్వహిస్తుంది;
  • కోఆర్డినేటింగ్ నోడ్ - రూటింగ్ అభ్యర్థనలు, శోధన ప్రాసెసింగ్ దశను తగ్గించడం, మాస్ ఇండెక్సింగ్‌ను సమన్వయం చేయడం;
  • హెచ్చరిక నోడ్ — హెచ్చరిక పనులను ప్రారంభించడం;
  • మెషిన్ లెర్నింగ్ నోడ్ - ప్రాసెసింగ్ మెషిన్ లెర్నింగ్ టాస్క్‌లు.

దిగువ రేఖాచిత్రం అధిక డేటా లభ్యతను సాధించడానికి నోడ్‌లలో డేటా ఎలా నిల్వ చేయబడి మరియు ప్రతిరూపం చేయబడుతుందో చూపిస్తుంది.

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

ప్రతి ప్రతిరూపం యొక్క డేటా విలోమ సూచికలో నిల్వ చేయబడుతుంది, ఇది ఎలా జరుగుతుందో దిగువ రేఖాచిత్రం చూపుతుంది:

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

సెట్టింగ్

వివరాలు చూడగలరు ఇక్కడ, నేను హెల్మ్ చార్ట్‌ని ఉపయోగిస్తాను:

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

PLG స్టాక్

మీరు ఈ సంక్షిప్త పదాన్ని కనుగొనలేకపోతే ఆశ్చర్యపోకండి, ఎందుకంటే ఇది గ్రాఫానా లోకి అని పిలుస్తారు. ఏదైనా సందర్భంలో, ఈ స్టాక్ జనాదరణ పొందుతోంది ఎందుకంటే ఇది నిరూపితమైన సాంకేతిక పరిష్కారాలను ఉపయోగిస్తుంది. ప్రముఖ విజువలైజేషన్ సాధనం గ్రాఫానా గురించి మీరు ఇప్పటికే విని ఉండవచ్చు. దీని సృష్టికర్తలు, ప్రోమేతియస్ ప్రేరణతో, అడ్డంగా కొలవగల, అధిక-పనితీరు గల లాగ్ అగ్రిగేషన్ సిస్టమ్ అయిన Lokiని అభివృద్ధి చేశారు. Loki మెటాడేటాను మాత్రమే సూచిక చేస్తుంది, జర్నల్‌లు కాదు, ఇది ఉపయోగించడానికి సులభమైన మరియు తక్కువ ఖర్చుతో కూడిన సాంకేతిక పరిష్కారం.

ప్రోమ్‌టైల్ - ఆపరేటింగ్ సిస్టమ్ నుండి Loki క్లస్టర్‌కి లాగ్‌లను పంపే ఏజెంట్. గ్రాఫనా Loki నుండి డేటా ఆధారంగా ఒక విజువలైజేషన్ సాధనం.

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

Loki ప్రోమేతియస్ వలె అదే సూత్రాలపై నిర్మించబడింది, ఇది కుబెర్నెటెస్ లాగ్‌లను నిల్వ చేయడానికి మరియు విశ్లేషించడానికి బాగా సరిపోతుంది.

లోకీ ఆర్కిటెక్చర్

Loki సమాంతర స్కేలింగ్‌ను అనుమతించడం ద్వారా ఒకే ప్రక్రియగా లేదా బహుళ ప్రక్రియలుగా అమలు చేయబడుతుంది.

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

ఇది ఏకశిలా అప్లికేషన్‌గా లేదా మైక్రోసర్వీస్‌గా కూడా పని చేస్తుంది. ఒకే ప్రక్రియగా అమలు చేయడం స్థానిక అభివృద్ధికి లేదా చిన్నపాటి పర్యవేక్షణకు ఉపయోగపడుతుంది. పారిశ్రామిక అమలు మరియు స్కేలబుల్ పనిభారం కోసం, మైక్రోసర్వీస్ ఎంపికను ఉపయోగించమని సిఫార్సు చేయబడింది. డేటాను వ్రాయడం మరియు చదవడం కోసం మార్గాలు వేరు చేయబడ్డాయి, కాబట్టి దానిని చక్కగా ట్యూన్ చేయవచ్చు మరియు అవసరమైన విధంగా స్కేల్ చేయవచ్చు.

వివరాలలోకి వెళ్లకుండా లాగ్ సేకరణ వ్యవస్థ యొక్క నిర్మాణాన్ని చూద్దాం:

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

మరియు ఇక్కడ వివరణ (మైక్రోసర్వీస్ ఆర్కిటెక్చర్):

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

భాగాలు:

ప్రోమ్‌టైల్ — నోడ్‌లలో (సేవల సమితిగా) ఇన్‌స్టాల్ చేయబడిన ఏజెంట్, ఇది టాస్క్‌ల నుండి లాగ్‌లను తీసివేస్తుంది మరియు లాగ్‌లను ట్యాగ్ చేసే మెటాడేటాను పొందేందుకు కుబెర్నెట్స్ APIని యాక్సెస్ చేస్తుంది. ఇది లాగ్‌ను ప్రధాన Loki సేవకు పంపుతుంది. మెటాడేటా మ్యాపింగ్ ప్రోమేతియస్ వలె అదే ట్యాగింగ్ నియమాలకు మద్దతు ఇస్తుంది.

పంపిణీదారు — బఫర్‌గా పనిచేసే సర్వీస్ డిస్ట్రిబ్యూటర్. మిలియన్ల కొద్దీ రికార్డులను ప్రాసెస్ చేయడానికి, ఇది ఇన్‌కమింగ్ డేటాను ప్యాక్ చేస్తుంది, అది వచ్చినప్పుడు బ్లాక్‌లలో కంప్రెస్ చేస్తుంది. అనేక డేటా సింక్‌లు ఒకే సమయంలో అమలవుతున్నాయి, అయితే ఒక ఇన్‌కమింగ్ డేటా స్ట్రీమ్‌కు చెందిన లాగ్‌లు దాని అన్ని బ్లాక్‌లకు వాటిలో ఒకదానిలో మాత్రమే కనిపిస్తాయి. ఇది సింక్‌ల రింగ్ మరియు సీక్వెన్షియల్ హ్యాషింగ్‌గా నిర్వహించబడుతుంది. తప్పు సహనం మరియు రిడెండెన్సీ కోసం, ఇది n సార్లు చేయబడుతుంది (3 కాన్ఫిగర్ చేయకపోతే).

ఇంజెస్టర్ - సర్వీస్ రిసీవర్. జోడించిన లాగ్‌లతో డేటా బ్లాక్‌లు కంప్రెస్ చేయబడతాయి. బ్లాక్ తగినంత పరిమాణంలో ఉన్న తర్వాత, బ్లాక్ డేటాబేస్కు ఫ్లష్ చేయబడుతుంది. మెటాడేటా సూచికకు వెళుతుంది మరియు లాగ్ బ్లాక్ నుండి డేటా భాగాలు (సాధారణంగా వస్తువు నిల్వ)కి వెళుతుంది. రీసెట్ చేసిన తర్వాత, రిసీవర్ కొత్త బ్లాక్‌ను సృష్టిస్తుంది, ఇక్కడ కొత్త ఎంట్రీలు జోడించబడతాయి.

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

ఇండెక్స్ - డేటాబేస్, DynamoDB, Cassandra, Google BigTable, మొదలైనవి.

రాళ్లను - సంపీడన రూపంలో లాగ్ బ్లాక్స్, సాధారణంగా ఆబ్జెక్ట్ నిల్వలో నిల్వ చేయబడతాయి, ఉదాహరణకు, S3.

క్వెరియర్ - అన్ని మురికి పనులను చేసే పఠన మార్గం. ఇది సమయ పరిధి మరియు టైమ్‌స్టాంప్‌ను చూస్తుంది, ఆపై సరిపోలికలను కనుగొనడానికి సూచికను చూస్తుంది. తరువాత, ఇది డేటా బ్లాక్‌లను చదివి ఫలితాన్ని పొందేందుకు వాటిని ఫిల్టర్ చేస్తుంది.

ఇప్పుడు ప్రతిదీ చర్యలో చూద్దాం.

సెట్టింగ్

కుబెర్నెట్స్‌లో ఇన్‌స్టాల్ చేయడానికి సులభమైన మార్గం హెల్మ్‌ని ఉపయోగించడం. మీరు దీన్ని ఇప్పటికే ఇన్‌స్టాల్ చేసి కాన్ఫిగర్ చేశారని మేము అనుకుంటాము (మరియు మూడవ వెర్షన్! సుమారు అనువాదకుడు)

రిపోజిటరీని జోడించి, స్టాక్‌ను ఇన్‌స్టాల్ చేయండి.

$ 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

Etcd కొలమానాల కోసం Prometheus మరియు Etcd పాడ్ లాగ్‌ల కోసం Loki నుండి డేటాను చూపే ఉదాహరణ డాష్‌బోర్డ్ క్రింద ఉంది.

కుబెర్నెటెస్‌లో లాగిన్ చేయడం: EFK vs PLG

ఇప్పుడు రెండు వ్యవస్థల నిర్మాణాన్ని చర్చిద్దాం మరియు వాటి సామర్థ్యాలను ఒకదానితో ఒకటి పోల్చండి.

పోలిక

ప్రశ్న భాష

పూర్తి-వచన శోధన సామర్థ్యాలను అందించడానికి సాగే శోధన ప్రశ్న DSL మరియు లూసీన్ ప్రశ్న భాషను ఉపయోగిస్తుంది. ఇది విస్తృత ఆపరేటర్ మద్దతుతో స్థాపించబడిన, శక్తివంతమైన శోధన ఇంజిన్. దానితో, మీరు సందర్భం ద్వారా శోధించవచ్చు మరియు ఔచిత్యాన్ని బట్టి క్రమబద్ధీకరించవచ్చు.

రింగ్ యొక్క మరొక వైపు LogQL ఉంది, ఇది PromQL (ప్రోమెథియస్ ప్రశ్న భాష) యొక్క వారసుడు అయిన Lokiలో ఉపయోగించబడుతుంది. ఇది లాగ్ డేటాను ఫిల్టర్ చేయడానికి మరియు ఎంచుకోవడానికి లాగ్ ట్యాగ్‌లను ఉపయోగిస్తుంది. వివరించిన విధంగా కొన్ని ఆపరేటర్లు మరియు అంకగణితాన్ని ఉపయోగించడం సాధ్యమవుతుంది ఇక్కడ, కానీ సామర్థ్యాల పరంగా అది సాగే భాష కంటే వెనుకబడి ఉంది.

Lokiలోని ప్రశ్నలు ట్యాగ్‌లతో అనుబంధించబడినందున, అవి కొలమానాలతో పరస్పర సంబంధం కలిగి ఉండటం సులభం మరియు ఫలితంగా, వాటితో కార్యాచరణ పర్యవేక్షణను నిర్వహించడం సులభం.

స్కేలబిలిటీ

రెండు స్టాక్‌లు క్షితిజ సమాంతరంగా స్కేలబుల్‌గా ఉంటాయి, కానీ ప్రత్యేక రీడ్ అండ్ రైట్ పాత్‌లు మరియు మైక్రోసర్వీస్ ఆర్కిటెక్చర్ ఉన్నందున Loki దీన్ని సులభతరం చేస్తుంది. Loki మీ అవసరాలకు అనుగుణంగా అనుకూలీకరించబడుతుంది మరియు లాగ్ డేటా యొక్క చాలా పెద్ద వాల్యూమ్‌ల కోసం ఉపయోగించవచ్చు.

బహుళత్వం

క్లస్టర్ మల్టీటెనెన్స్ అనేది OPEX సంక్షిప్తీకరణలో ఒక సాధారణ థీమ్, రెండు స్టాక్‌లు మల్టీటెనన్సీని అందిస్తాయి. సాగే శోధన కోసం అనేకం ఉన్నాయి మార్గాలు క్లయింట్ వేరు: ప్రతి క్లయింట్‌కు ప్రత్యేక సూచిక, క్లయింట్-ఆధారిత రూటింగ్, ప్రత్యేకమైన క్లయింట్ ఫీల్డ్‌లు, శోధన ఫిల్టర్‌లు. Loki ఉంది మద్దతు HTTP X-స్కోప్-OrgID హెడర్ రూపంలో.

ఖర్చు

Loki డేటాను ఇండెక్స్ చేయదు, కేవలం మెటాడేటా మాత్రమే కారణంగా చాలా తక్కువ ఖర్చుతో కూడుకున్నది. ఇది సాధిస్తుంది నిల్వపై పొదుపు మరియు మెమరీ (కాష్), ఎందుకంటే ఆబ్జెక్ట్ నిల్వ బ్లాక్ నిల్వ కంటే చౌకగా ఉంటుంది, ఇది సాగే శోధన క్లస్టర్‌లలో ఉపయోగించబడుతుంది.

తీర్మానం

EFK స్టాక్‌ను వివిధ ప్రయోజనాల కోసం ఉపయోగించవచ్చు, గరిష్ట సౌలభ్యాన్ని మరియు విశ్లేషణలు, విజువలైజేషన్ మరియు ప్రశ్నల కోసం ఫీచర్-రిచ్ కిబానా ఇంటర్‌ఫేస్‌ను అందిస్తుంది. మెషిన్ లెర్నింగ్ సామర్థ్యాల ద్వారా దీన్ని మరింత మెరుగుపరచవచ్చు.

లోకీ స్టాక్ దాని మెటాడేటా డిస్కవరీ మెకానిజం కారణంగా కుబెర్నెట్స్ పర్యావరణ వ్యవస్థలో ఉపయోగపడుతుంది. మీరు గ్రాఫానా మరియు లాగ్‌లలో సమయ శ్రేణి ఆధారంగా పర్యవేక్షణ కోసం డేటాను సులభంగా పరస్పరం అనుసంధానించవచ్చు.

ఖర్చు మరియు దీర్ఘకాలిక లాగ్ నిల్వ విషయానికి వస్తే, Loki అనేది క్లౌడ్ సొల్యూషన్‌లలోకి ఒక అద్భుతమైన ప్రవేశ స్థానం.

మార్కెట్లో మరిన్ని ప్రత్యామ్నాయాలు ఉన్నాయి - కొన్ని మీకు మంచివి కావచ్చు. ఉదాహరణకు, GKE ఒక అద్భుతమైన పర్యవేక్షణ పరిష్కారాన్ని అందించే Stackdriver ఇంటిగ్రేషన్‌ను కలిగి ఉంది. ఈ వ్యాసంలోని మా విశ్లేషణలో మేము వాటిని చేర్చలేదు.

సూచనలు:

ఈ కథనాన్ని ఉద్యోగులు హబ్ర్ కోసం అనువదించారు మరియు సిద్ధం చేశారు మురికివాడ శిక్షణ కేంద్రం - ఇంటెన్సివ్ కోర్సులు, వీడియో కోర్సులు మరియు ప్రాక్టీసింగ్ స్పెషలిస్ట్‌ల నుండి కార్పొరేట్ శిక్షణ (కుబెర్నెట్స్, డెవొప్స్, డాకర్, అన్సిబుల్, సెఫ్, SRE, ఎజైల్)

మూలం: www.habr.com

ఒక వ్యాఖ్యను జోడించండి