හෙලෝ, මගේ නම ඉයුජින්, මම Citymobil හි B2B කණ්ඩායම් නායකයෙක්. අපගේ කණ්ඩායමේ එක් කර්තව්යයක් වන්නේ හවුල්කරුවන්ගෙන් කුලී රථයක් ඇණවුම් කිරීම සඳහා අනුකලනයට සහය වීම සහ ස්ථාවර සේවාවක් සහතික කිරීම සඳහා, අපගේ ක්ෂුද්ර සේවා වල සිදුවන්නේ කුමක්ද යන්න අප සැමවිටම තේරුම් ගත යුතුය. මේ සඳහා ඔබ නිරන්තරයෙන් ලඝු-සටහන් නිරීක්ෂණය කළ යුතුය.
Citymobil වලදී, අපි logs සමඟ වැඩ කිරීමට ELK stack (ElasticSearch, Logstash, Kibana) භාවිතා කරන අතර එහි එන දත්ත ප්රමාණය අති විශාලය. නව කේතය යෙදවීමෙන් පසු දිස්විය හැකි මෙම ඉල්ලීම් සමූහයේ ගැටළු සෙවීම තරමක් අපහසුය. ඔවුන්ගේ දෘශ්ය හඳුනාගැනීම සඳහා, කිබානා සතුව උපකරණ පුවරු අංශයක් ඇත.
දත්ත ලබා ගැනීමට සහ ගබඩා කිරීමට ELK තොගයක් සකසන්නේ කෙසේද යන්න පිළිබඳ උදාහරණ සහිත Habré හි ලිපි කිහිපයක් ඇත, නමුත් උපකරණ පුවරුවක් නිර්මාණය කිරීම සඳහා අදාළ ද්රව්ය නොමැත. එබැවින්, කිබානා හි එන ලඝු-සටහන් මත පදනම්ව දත්ත දෘශ්ය නිරූපණයක් සාදන ආකාරය පෙන්වීමට මට අවශ්යය.
ගැලපුම්
එය වඩාත් පැහැදිලි කිරීමට, මම ELK සහ Filebeat සමඟ Docker රූපයක් නිර්මාණය කළෙමි. සහ කුඩා කන්ටේනරයක තබා ඇත
වින්යාස ගබඩාව ක්ලෝන කරන්න 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 ඉල්ලීමක් ක්රියාත්මක කරන්නෙමු හෝ චිත්රක අතුරුමුහුණත තුළ ක්රියා මාලාවක් සිදු කරන්නෙමු.
$ 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 හරහා දර්ශක රටාවක් නිර්මාණය කිරීම
වින්යාස කිරීම සඳහා, වම් මෙනුවේ Discover කොටස තෝරන්න, සහ දර්ශක රටා නිර්මාණය කිරීමේ පිටුවට යන්න.
"Create index pattern" බොත්තම මත ක්ලික් කිරීමෙන්, අපි දර්ශක නිර්මාණය පිටුවට පිවිසෙමු. "දර්ශක රටා නම" ක්ෂේත්රය තුළ, "logstash-*" ඇතුල් කරන්න. සෑම දෙයක්ම නිවැරදිව වින්යාස කර ඇත්නම්, කිබානාට පහළින් රීතියට වැටෙන දර්ශක පෙන්වනු ඇත.
ඊළඟ පිටුවේ, කාලමුද්රාවක් සහිත යතුරු ක්ෂේත්රය තෝරන්න, අපගේ නඩුවේදී එය එසේ වේ @timestamp
.
මෙය දර්ශක සැකසුම් පිටුව ගෙන එනු ඇත, නමුත් මේ අවස්ථාවේ අපෙන් වැඩිදුර ක්රියාමාර්ග අවශ්ය නොවේ.
දැන් අපට නැවතත් Discover කොටසට යා හැක, එහිදී අපි ලොග් සටහන් දකිනු ඇත.
උපකරණ පුවරුව
වම් මෙනුවේ, උපකරණ පුවරුව සෑදීමේ කොටස මත ක්ලික් කර අදාළ පිටුවට යන්න.
"නව උපකරණ පුවරුව සාදන්න" මත ක්ලික් කර උපකරණ පුවරුවට වස්තු එකතු කිරීම සඳහා පිටුවට යන්න.
"නව සාදන්න" බොත්තම මත ක්ලික් කරන්න, එවිට පද්ධතිය දත්ත සංදර්ශක වර්ගය තෝරා ගැනීමට ඔබෙන් විමසනු ඇත. කිබානා සතුව ඒවා විශාල ප්රමාණයක් ඇත, නමුත් අපි "සිරස් තීරුවේ" චිත්රක නිරූපණයක් සහ වගු "දත්ත වගුවක්" නිර්මාණය කිරීම දෙස බලමු. වෙනත් ආකාරයේ ඉදිරිපත් කිරීම් සමාන ආකාරයකින් වින්යාස කර ඇත.
පවතින සමහර වස්තු B සහ E ලෙස ලේබල් කර ඇත, එයින් අදහස් වන්නේ ආකෘතිය පර්යේෂණාත්මක හෝ බීටා පරීක්ෂණයක පවතින බවයි. කාලයත් සමඟ, ආකෘතිය වෙනස් විය හැකිය හෝ Kibana වෙතින් සම්පූර්ණයෙන්ම අතුරුදහන් විය හැකිය.
සිරස් තීරුව
“සිරස් තීරුව” උදාහරණය සඳහා, අපගේ සේවාවේ සාර්ථක සහ අසාර්ථක ප්රතිචාර තත්ත්වයේ අනුපාතයෙහි ඉතිහාස සටහනක් නිර්මාණය කරමු. සැකසුම් අවසානයේ, අපට පහත ප්රස්ථාරය ලැබේ:
අපි ප්රතිචාර තත්ත්වය < 400 සමඟ ඇති සියලුම ඉල්ලීම් සාර්ථක ලෙස සහ >= 400 ගැටලු සහගත ලෙස වර්ග කරන්නෙමු.
"සිරස් තීරුව" ප්රස්ථාරයක් සෑදීමට, අපි දත්ත මූලාශ්රයක් තෝරාගත යුතුය. අපි කලින් හදපු Index Pattern එක තෝරන්න.
පෙරනිමියෙන්, දත්ත මූලාශ්රයක් තේරීමෙන් පසු තනි ඝන ප්රස්ථාරයක් දිස්වනු ඇත. අපි එය සකස් කරමු.
"Buckets" කොටසේ, "Add" බොත්තම ඔබන්න, "X-asis" තෝරා X අක්ෂය සකසන්න. ලොගයේ ඇතුළත් කිරීම් ලැබීම සඳහා වේලා මුද්දර පසෙකින් තබමු. "Aggregation" ක්ෂේත්රය තුළ, "Date Histogram" තෝරන්න, සහ "Field" තුළ "@timestamp" තෝරන්න, කාල ක්ෂේත්රය දක්වයි. අපි "අවම විරාමය" "ස්වයංක්රීය" තත්වයෙන් තබමු, එය ස්වයංක්රීයව අපගේ සංදර්ශකයට ගැලපේ.
"යාවත්කාලීන" බොත්තම මත ක්ලික් කිරීමෙන්, අපි සෑම තත්පර 30 කට වරක් ඉල්ලීම් ගණන සහිත ප්රස්ථාරයක් දකිනු ඇත.
දැන් අපි Y-අක්ෂය දිගේ තීරු සකස් කරමු.දැන් අපි තෝරාගත් කාල පරතරය තුළ මුළු ඉල්ලීම් ගණන පෙන්වමු.
අපි සාර්ථක සහ අසාර්ථක ඉල්ලීම් සඳහා දත්ත ඒකාබද්ධ කිරීමට ඉඩ සලසන, "එකතු කිරීම" අගය "සමූල බාල්දිය" ලෙස වෙනස් කරමු. Bucket -> Aggregation block හි, "පෙරහන්" මගින් එකතු කිරීම තෝරා "statusCode >= 400" මගින් පෙරීම සකසන්න. තවද "අභිරුචි ලේබලය" ක්ෂේත්රය තුළ, ප්රස්ථාරයේ සහ සාමාන්ය ලැයිස්තුවේ පුරාවෘත්තයේ වඩාත් තේරුම්ගත හැකි සංදර්ශකයක් සඳහා අපි දර්ශකයේ අපගේ නම සඳහන් කරමු.
සැකසුම් බ්ලොක් යටතේ "යාවත්කාලීන" බොත්තම ක්ලික් කිරීමෙන්, ගැටළු ඉල්ලීම් සහිත ප්රස්ථාරයක් අපට ලැබෙනු ඇත.
ඔබ පුරාවෘත්තය අසල ඇති රවුම මත ක්ලික් කළහොත්, ඔබට තීරු වල වර්ණය වෙනස් කළ හැකි කවුළුවක් දිස්වනු ඇත.
දැන් අපි සාර්ථක ඉල්ලීම් පිළිබඳ දත්ත ප්රස්ථාරයට එකතු කරමු. "මිතික" කොටසේ, "එකතු කරන්න" බොත්තම ක්ලික් කර "Y-axis" තෝරන්න.
සාදන ලද මෙට්රික් තුළ, අපි වැරදි ඉල්ලීම් සඳහා සමාන සැකසුම් කරන්නෙමු. පෙරහන තුළ පමණක් අපි "statusCode < 400" සඳහන් කරමු.
නව තීරුවේ වර්ණය වෙනස් කිරීමෙන්, ගැටළුකාරී සහ සාර්ථක ඉල්ලීම්වල අනුපාතය අපට දර්ශනය වේ.
තිරයේ ඉහළින් ඇති "සුරකින්න" බොත්තම ක්ලික් කර නම සඳහන් කිරීමෙන්, අපි උපකරණ පුවරුවේ පළමු වගුව දකිනු ඇත.
දත්ත වගුව
දැන් වගු දර්ශනය "දත්ත වගුව" සලකා බලන්න. අපි ඉල්ලූ සියලුම URL ලැයිස්තුවක් සහ එම ඉල්ලීම් ගණන සහිත වගුවක් සාදන්න. සිරස් තීරු උදාහරණය සමඟින්, අපි පළමුව දත්ත මූලාශ්රයක් තෝරා ගනිමු.
ඊට පසු, එක් තීරුවක් සහිත වගුවක් තිරය මත දිස්වනු ඇත, එය තෝරාගත් කාල පරතරය සඳහා මුළු ඉල්ලීම් ගණන පෙන්වයි.
අපි "බකට්" බ්ලොක් එක පමණක් වෙනස් කරන්නෙමු. "එකතු කරන්න" බොත්තම ක්ලික් කර "පේළි බෙදන්න" තෝරන්න.
"එකතු කිරීම" ක්ෂේත්රයේ, "නියමයන්" තෝරන්න. සහ පෙනෙන "ෆීල්ඩ්" ක්ෂේත්රයේ "url.keyword" තෝරන්න.
"අභිරුචි ලේබලය" ක්ෂේත්රයේ "Url" අගය සඳහන් කිරීමෙන් සහ "යාවත්කාලීන කරන්න" ක්ලික් කිරීමෙන්, තෝරාගත් කාල සීමාව සඳහා එක් එක් URL සඳහා ඉල්ලීම් ගණන සමඟ අපට අවශ්ය වගුව ලැබෙනු ඇත.
තිරයේ මුදුනේ, නැවත "සුරකින්න" බොත්තම ක්ලික් කර වගුවේ නම සඳහන් කරන්න, උදාහරණයක් ලෙස Url. අපි නැවත උපකරණ පුවරුව වෙත ගොස් දර්ශන දෙකම නිර්මාණය කර බලමු.
උපකරණ පුවරුව සමඟ වැඩ කිරීම
උපකරණ පුවරුව නිර්මාණය කරන විට, අපි දර්ශන වස්තු සැකසුම් තුළ ප්රධාන දර්ශන පරාමිතීන් පමණක් සකස් කරමු. වස්තූන් තුළ පෙරහන් සඳහා දත්ත සඳහන් කිරීම තේරුමක් නැත, උදාහරණයක් ලෙස, "දින පරාසය", "පරිශීලකයෙන් පෙරීම", "ඉල්ලීම් රට අනුව පෙරීම" යනාදිය. වස්තූන්ට ඉහළින් පිහිටා ඇති විමසුම් පැනලයේ අපේක්ෂිත කාල සීමාව නියම කිරීම හෝ අවශ්ය පෙරහන සැකසීම වඩාත් පහසු වේ.
මෙම පැනලයේ එකතු කරන ලද පෙරහන් මුළු උපකරණ පුවරුවටම යොදනු ලබන අතර, සියලුම සංදර්ශක වස්තූන් සත්ය පෙරන ලද දත්තවලට අනුකූලව නැවත ගොඩනඟනු ලැබේ.
නිගමනය
කිබානා යනු ඕනෑම දත්තයක් පහසු ආකාරයකින් දෘශ්යමාන කිරීමට ඔබට ඉඩ සලසන ප්රබල මෙවලමකි. මම ප්රධාන සංදර්ශක වර්ග දෙකේ සැකසුම් පෙන්වීමට උත්සාහ කළෙමි. නමුත් වෙනත් වර්ග සමාන ආකාරයකින් වින්යාස කර ඇත. තවද මා විසින් "තිරය පිටුපස" තැබූ සැකසුම් වල බහුලත්වය ඔබට ඔබගේ අවශ්යතාවයට සරිලන පරිදි ප්රස්ථාර ඉතා නම්යශීලීව අභිරුචිකරණය කිරීමට ඉඩ සලසයි.
මූලාශ්රය: www.habr.com