హలో, నా పేరు Evgeniy, నేను Citymobilలో B2B టీమ్ లీడ్ని. భాగస్వాముల నుండి టాక్సీ ఆర్డరింగ్ కోసం ఇంటిగ్రేషన్లకు మద్దతు ఇవ్వడం మరియు స్థిరమైన సేవను నిర్ధారించడం మా బృందం యొక్క పనిలో ఒకటి, మా మైక్రోసర్వీస్లలో ఏమి జరుగుతుందో మేము ఎల్లప్పుడూ అర్థం చేసుకోవాలి. మరియు దీని కోసం మీరు నిరంతరం లాగ్లను పర్యవేక్షించవలసి ఉంటుంది.
సిటీమొబిల్లో, లాగ్లతో పని చేయడానికి మేము ELK స్టాక్ను (ఎలాస్టిక్సెర్చ్, లాగ్స్టాష్, కిబానా) ఉపయోగిస్తాము మరియు అక్కడ అందుకున్న డేటా పరిమాణం అపారమైనది. ఈ అభ్యర్థనల సమూహంలో, కొత్త కోడ్ని అమలు చేసిన తర్వాత కనిపించే సమస్యలను కనుగొనడం చాలా కష్టం. మరియు వాటిని స్పష్టంగా గుర్తించడానికి, కిబానాలో డాష్బోర్డ్ విభాగం ఉంది.
డేటాను స్వీకరించడానికి మరియు నిల్వ చేయడానికి ELK స్టాక్ను ఎలా సెటప్ చేయాలో ఉదాహరణలతో Habréలో చాలా కొన్ని కథనాలు ఉన్నాయి, కానీ డ్యాష్బోర్డ్ను రూపొందించడంలో సంబంధిత అంశాలు లేవు. అందువల్ల, కిబానాలో ఇన్కమింగ్ లాగ్ల ఆధారంగా డేటా యొక్క దృశ్యమాన ప్రాతినిధ్యాన్ని ఎలా సృష్టించాలో నేను చూపించాలనుకుంటున్నాను.
సర్దుబాటు
దీన్ని మరింత స్పష్టం చేయడానికి, నేను ELK మరియు Filebeatతో డాకర్ చిత్రాన్ని సృష్టించాను. మరియు ఒక కంటైనర్లో చిన్నదాన్ని ఉంచారు
కాన్ఫిగరేషన్తో రిపోజిటరీని క్లోనింగ్ చేయడం docker-compose
మరియు ELK సెట్టింగ్లు, మరియు ఆదేశంతో దీన్ని ప్రారంభించండి docker-compose up
. నేను ఉద్దేశపూర్వకంగా కీని జోడించడం లేదు. -d
ELK స్టాక్ యొక్క ప్రక్రియను చూడటానికి.
git clone https://github.com/et-soft/habr-elk
cd habr-elk
docker-compose up
ప్రతిదీ సరిగ్గా కాన్ఫిగర్ చేయబడితే, మేము లాగ్లలో ఒక ఎంట్రీని చూస్తాము (బహుశా వెంటనే కాదు, మొత్తం స్టాక్తో కంటైనర్ను ప్రారంభించే ప్రక్రియ చాలా నిమిషాలు పట్టవచ్చు):
{"type":"log","@timestamp":"2020-09-20T05:55:14Z","tags":["info","http","server","Kibana"],"pid":6,"message":"http server running at http://0:5601"}
చిరునామా ద్వారా localhost:5061
కిబానా తెరవాలి.
మేము కాన్ఫిగర్ చేయవలసిన ఏకైక విషయం ఏమిటంటే, ఏ డేటా ప్రదర్శించబడాలి అనే దాని గురించి సమాచారంతో కిబానా కోసం ఇండెక్స్ నమూనాను సృష్టించడం. దీన్ని చేయడానికి, ఒక కర్ల్ అభ్యర్థనను అమలు చేయండి లేదా గ్రాఫికల్ ఇంటర్ఫేస్లో వరుస చర్యలను చేద్దాం.
$ curl -XPOST -D- 'http://localhost:5601/api/saved_objects/index-pattern'
-H 'Content-Type: application/json'
-H 'kbn-xsrf: true'
-d '{"attributes":{"title":"logstash-*","timeFieldName":"@timestamp"}}'
GUI ద్వారా ఇండెక్స్ నమూనాను సృష్టిస్తోంది
కాన్ఫిగర్ చేయడానికి, ఎడమవైపు మెనులో డిస్కవర్ విభాగాన్ని ఎంచుకుని, ఇండెక్స్ నమూనా సృష్టి పేజీకి వెళ్లండి.
“సూచిక నమూనాను సృష్టించు” బటన్పై క్లిక్ చేయడం ద్వారా, మేము ఇండెక్స్ సృష్టి పేజీకి తీసుకెళ్లబడతాము. "ఇండెక్స్ నమూనా పేరు" ఫీల్డ్లో, "logstash-*"ని నమోదు చేయండి. ప్రతిదీ సరిగ్గా కాన్ఫిగర్ చేయబడితే, కిబానా క్రింద నియమం పరిధిలోకి వచ్చే సూచికలను చూపుతుంది.
తర్వాతి పేజీలో, టైమ్స్టాంప్తో కీ ఫీల్డ్ను ఎంచుకోండి, మా విషయంలో ఇది @timestamp
.
ఫలితంగా, సూచిక సెట్టింగ్ల పేజీ కనిపిస్తుంది, కానీ ఇప్పుడు మా నుండి అదనపు చర్యలు అవసరం లేదు.
ఇప్పుడు మనం డిస్కవర్ విభాగానికి తిరిగి వెళ్ళవచ్చు, అక్కడ మనం లాగ్ ఎంట్రీలను చూస్తాము.
డాష్బోర్డ్
ఎడమవైపు మెనులో, డాష్బోర్డ్ సృష్టి విభాగంపై క్లిక్ చేసి, సంబంధిత పేజీకి వెళ్లండి.
“క్రొత్త డాష్బోర్డ్ని సృష్టించు”పై క్లిక్ చేసి, డాష్బోర్డ్కు ఆబ్జెక్ట్లను జోడించడం కోసం పేజీని పొందండి.
"క్రొత్తది సృష్టించు" బటన్పై క్లిక్ చేయండి మరియు డేటా ప్రదర్శన రకాన్ని ఎంచుకోమని సిస్టమ్ మిమ్మల్ని అడుగుతుంది. కిబానాలో వాటిలో పెద్ద సంఖ్యలో ఉన్నాయి, అయితే మేము గ్రాఫికల్ రిప్రజెంటేషన్ "లంబ పట్టీ" మరియు పట్టిక "డేటా టేబుల్"ని సృష్టించడాన్ని పరిశీలిస్తాము. ఇతర రకాల ప్రదర్శనలు ఇదే విధంగా కాన్ఫిగర్ చేయబడ్డాయి.
అందుబాటులో ఉన్న కొన్ని అంశాలు B మరియు E అని లేబుల్ చేయబడ్డాయి, ఫార్మాట్ ప్రయోగాత్మకంగా లేదా బీటాలో ఉందని సూచిస్తుంది. కాలక్రమేణా, కిబానా నుండి ఫార్మాట్ మారవచ్చు లేదా పూర్తిగా అదృశ్యం కావచ్చు.
నిలువు పట్టీ
"వర్టికల్ బార్" ఉదాహరణ కోసం, మా సేవ యొక్క విజయవంతమైన మరియు విజయవంతం కాని ప్రతిస్పందన స్థితిగతుల నిష్పత్తి యొక్క హిస్టోగ్రామ్ను రూపొందిద్దాం. సెట్టింగ్లను పూర్తి చేసిన తర్వాత, మేము ఈ క్రింది గ్రాఫ్ను పొందుతాము:
మేము <400 ప్రతిస్పందన స్థితితో అన్ని అభ్యర్థనలను విజయవంతమైనవిగా మరియు సమస్యాత్మకమైనవి - >= 400గా వర్గీకరిస్తాము.
“నిలువు పట్టీ” చార్ట్ని సృష్టించడానికి, మేము డేటా మూలాన్ని ఎంచుకోవాలి. మేము ఇంతకు ముందు సృష్టించిన ఇండెక్స్ నమూనాను ఎంచుకోండి.
డిఫాల్ట్గా, మీరు డేటా మూలాన్ని ఎంచుకున్న తర్వాత, ఒక నిరంతర గ్రాఫ్ కనిపిస్తుంది. దాన్ని ఏర్పాటు చేద్దాం.
“బకెట్లు” బ్లాక్లో, “జోడించు” బటన్ను క్లిక్ చేసి, “X-asis”ని ఎంచుకుని, X-అక్షాన్ని కాన్ఫిగర్ చేయండి. దాని వెంట లాగ్లోకి ప్రవేశించే రికార్డుల టైమ్స్టాంప్లను ప్లాట్ చేద్దాం. “అగ్రిగేషన్” ఫీల్డ్లో, “తేదీ హిస్టోగ్రామ్” ఎంచుకోండి మరియు “ఫీల్డ్”లో “@ టైమ్స్టాంప్” ఎంచుకోండి, ఇది తాత్కాలిక ఫీల్డ్ను సూచిస్తుంది. “కనీస విరామం”ని “ఆటో” స్థితిలో వదిలివేద్దాం మరియు అది స్వయంచాలకంగా మన ప్రదర్శనకు సర్దుబాటు అవుతుంది.
"అప్డేట్" బటన్పై క్లిక్ చేయడం ద్వారా, మేము ప్రతి 30 సెకన్లకు అభ్యర్థనల సంఖ్యతో గ్రాఫ్ని చూస్తాము.
ఇప్పుడు Y యాక్సిస్పై నిలువు వరుసలను సెటప్ చేద్దాం. ఇప్పుడు మనం ఎంచుకున్న సమయ వ్యవధిలో మొత్తం అభ్యర్థనల సంఖ్యను ప్రదర్శిస్తాము.
"అగ్రిగేషన్" విలువను "సమ్ బకెట్"కి మారుద్దాం, ఇది విజయవంతమైన మరియు విఫలమైన అభ్యర్థనల నుండి డేటాను కలపడానికి అనుమతిస్తుంది. బకెట్ -> అగ్రిగేషన్ బ్లాక్లో, “ఫిల్టర్లు” ద్వారా అగ్రిగేషన్ని ఎంచుకుని, “స్టేటస్కోడ్ >= 400” ద్వారా ఫిల్టరింగ్ని సెట్ చేయండి. మరియు "కస్టమ్ లేబుల్" ఫీల్డ్లో మేము చార్ట్లోని లెజెండ్లో మరియు సాధారణ జాబితాలో మరింత స్పష్టమైన ప్రదర్శన కోసం మా సూచిక పేరును సూచిస్తాము.
సెట్టింగ్ల బ్లాక్లో ఉన్న "అప్డేట్" బటన్ను క్లిక్ చేయడం ద్వారా, మేము సమస్యాత్మక ప్రశ్నలతో గ్రాఫ్ని పొందుతాము.
మీరు లెజెండ్ పక్కన ఉన్న సర్కిల్పై క్లిక్ చేస్తే, మీరు నిలువు వరుసల రంగును మార్చగల విండో కనిపిస్తుంది.
ఇప్పుడు విజయవంతమైన అభ్యర్థనలపై డేటాను చార్ట్కు జోడిద్దాం. "మెట్రిక్స్" విభాగంలో, "జోడించు" బటన్ను క్లిక్ చేసి, "Y-యాక్సిస్" ఎంచుకోండి.
సృష్టించిన మెట్రిక్లో మేము తప్పు అభ్యర్థనల కోసం అదే సెట్టింగ్లను చేస్తాము. ఫిల్టర్లో మాత్రమే మనం "స్టేటస్కోడ్ <400"ని సూచిస్తాము.
కొత్త కాలమ్ యొక్క రంగును మార్చడం ద్వారా, మేము సమస్యాత్మక మరియు విజయవంతమైన అభ్యర్థనల నిష్పత్తి యొక్క ప్రదర్శనను పొందుతాము.
స్క్రీన్ పైభాగంలో ఉన్న "సేవ్" బటన్ను క్లిక్ చేసి, పేరును పేర్కొనడం ద్వారా, మేము డాష్బోర్డ్లో మొదటి గ్రాఫ్ని చూస్తాము.
డేటా టేబుల్
ఇప్పుడు “డేటా టేబుల్” టేబుల్ వీక్షణను చూద్దాం. అభ్యర్థనలు ఉన్న అన్ని URLల జాబితా మరియు ఈ అభ్యర్థనల సంఖ్యతో పట్టికను రూపొందిద్దాం. నిలువు పట్టీ ఉదాహరణలో వలె, మేము మొదట డేటా మూలాన్ని ఎంచుకుంటాము.
దీని తరువాత, ఒక నిలువు వరుసతో ఒక పట్టిక తెరపై ప్రదర్శించబడుతుంది, ఇది ఎంచుకున్న సమయ విరామం కోసం మొత్తం అభ్యర్థనల సంఖ్యను చూపుతుంది.
మేము "బకెట్లు" బ్లాక్ను మాత్రమే మారుస్తాము. "జోడించు" బటన్ను క్లిక్ చేసి, "విభజన అడ్డు వరుసలు" ఎంచుకోండి.
"అగ్రిగేషన్" ఫీల్డ్లో, "నిబంధనలు" ఎంచుకోండి. మరియు కనిపించే "ఫీల్డ్" ఫీల్డ్లో, "url.keyword"ని ఎంచుకోండి.
"అనుకూల లేబుల్" ఫీల్డ్లో "Url" విలువను పేర్కొనడం ద్వారా మరియు "అప్డేట్" క్లిక్ చేయడం ద్వారా, ఎంచుకున్న సమయ వ్యవధిలో ప్రతి URL కోసం అభ్యర్థనల సంఖ్యతో మేము కోరుకున్న పట్టికను అందుకుంటాము.
స్క్రీన్ పైభాగంలో, "సేవ్" బటన్ను మళ్లీ క్లిక్ చేసి, పట్టిక పేరును పేర్కొనండి, ఉదాహరణకు Urls. డాష్బోర్డ్కి తిరిగి వెళ్లి, సృష్టించబడిన రెండు వీక్షణలను చూద్దాం.
డాష్బోర్డ్తో పని చేస్తోంది
డాష్బోర్డ్ను సృష్టించేటప్పుడు, మేము డిస్ప్లే ఆబ్జెక్ట్ సెట్టింగ్లలో ప్రాథమిక వీక్షణ పారామితులను మాత్రమే సెట్ చేస్తాము. ఆబ్జెక్ట్లలో ఫిల్టర్ల కోసం డేటాను పేర్కొనడంలో అర్థం లేదు, ఉదాహరణకు, “తేదీ పరిధి”, “యూజర్జెంట్ ద్వారా ఫిల్టరింగ్”, “అభ్యర్థన దేశం ద్వారా ఫిల్టర్ చేయడం” మొదలైనవి. కావలసిన సమయ వ్యవధిని పేర్కొనడం లేదా ప్రశ్న ప్యానెల్లో అవసరమైన ఫిల్టరింగ్ను సెట్ చేయడం చాలా సౌకర్యవంతంగా ఉంటుంది, ఇది వస్తువుల పైన ఉంది.
ఈ ప్యానెల్లో జోడించిన ఫిల్టర్లు మొత్తం డ్యాష్బోర్డ్కు వర్తింపజేయబడతాయి మరియు ప్రస్తుత ఫిల్టర్ చేసిన డేటా ప్రకారం అన్ని డిస్ప్లే వస్తువులు మళ్లీ అమర్చబడతాయి.
తీర్మానం
కిబానా అనేది ఏదైనా డేటాను అనుకూలమైన రీతిలో దృశ్యమానం చేయడానికి మిమ్మల్ని అనుమతించే శక్తివంతమైన సాధనం. నేను రెండు ప్రధాన రకాల ప్రదర్శనల సెటప్ని చూపించడానికి ప్రయత్నించాను. కానీ ఇతర రకాలు ఇదే విధంగా కాన్ఫిగర్ చేయబడ్డాయి. మరియు నేను తెర వెనుక వదిలిపెట్టిన సెట్టింగుల సమృద్ధి మీ అవసరాలకు అనుగుణంగా చార్ట్లను చాలా సరళంగా అనుకూలీకరించడానికి మిమ్మల్ని అనుమతిస్తుంది.
మూలం: www.habr.com