لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا

ہیلو، میرا نام یوجین ہے، میں سٹی موبل میں B2B ٹیم لیڈر ہوں۔ ہماری ٹیم کے کاموں میں سے ایک شراکت داروں سے ٹیکسی آرڈر کرنے کے لیے انضمام کی حمایت کرنا ہے، اور ایک مستحکم سروس کو یقینی بنانے کے لیے، ہمیں ہمیشہ یہ سمجھنا چاہیے کہ ہماری مائیکرو سروسز میں کیا ہو رہا ہے۔ اور اس کے لیے آپ کو لاگز کی مسلسل نگرانی کرنے کی ضرورت ہے۔

سٹی موبل میں، ہم لاگز کے ساتھ کام کرنے کے لیے ELK اسٹیک (ElasticSearch، Logstash، Kibana) استعمال کرتے ہیں، اور وہاں آنے والے ڈیٹا کی مقدار بہت زیادہ ہے۔ درخواستوں کے اس بڑے پیمانے پر مسائل تلاش کرنا جو نئے کوڈ کی تعیناتی کے بعد ظاہر ہو سکتی ہیں کافی مشکل ہے۔ اور ان کی بصری شناخت کے لیے، کبانا کے پاس ڈیش بورڈ سیکشن ہے۔

Habré پر بہت سے مضامین ہیں جن میں مثالیں ہیں کہ ڈیٹا حاصل کرنے اور ذخیرہ کرنے کے لیے ELK اسٹیک کیسے ترتیب دیا جائے، لیکن ڈیش بورڈ بنانے کے لیے کوئی متعلقہ مواد موجود نہیں ہے۔ لہذا، میں یہ دکھانا چاہتا ہوں کہ کبانا میں آنے والے لاگز کی بنیاد پر ڈیٹا کی بصری نمائندگی کیسے کی جائے۔

ایڈجسٹمنٹ

اسے واضح کرنے کے لیے، میں نے ELK اور Filebeat کے ساتھ ایک Docker امیج بنائی۔ اور ایک چھوٹے کنٹینر میں رکھ دیا۔ پروگرام گو میں، جو ہماری مثال کے طور پر ٹیسٹ لاگز تیار کرے گا۔ میں ELK کی ترتیب کو تفصیل سے بیان نہیں کروں گا، Habré پر اس کے بارے میں کافی لکھا ہوا ہے۔

کنفگ ریپوزٹری کو کلون کریں۔ docker-compose اور ELK کی ترتیبات، اور اسے کمانڈ کے ساتھ لانچ کریں۔ docker-compose up. جان بوجھ کر کلید شامل نہیں کرنا -dELK اسٹیک کی ترقی کو دیکھنے کے لیے۔

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-*" درج کریں۔ اگر سب کچھ صحیح طریقے سے ترتیب دیا گیا ہے، تو نیچے Kibana ان اشاریہ جات دکھائے گا جو اصول کے تحت آتے ہیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
اگلے صفحے پر، کلیدی فیلڈ کو ٹائم اسٹیمپ کے ساتھ منتخب کریں، ہمارے معاملے میں ایسا ہے۔ @timestamp.

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
اس سے انڈیکس کی ترتیبات کا صفحہ سامنے آئے گا، لیکن اس وقت ہماری طرف سے مزید کارروائی کی ضرورت نہیں ہے۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا

اب ہم دوبارہ دریافت سیکشن میں جا سکتے ہیں، جہاں ہم لاگ انٹریز دیکھیں گے۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا

ڈیش بورڈ

بائیں مینو میں، ڈیش بورڈ تخلیق سیکشن پر کلک کریں اور متعلقہ صفحہ پر جائیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
"نیا ڈیش بورڈ بنائیں" پر کلک کریں اور ڈیش بورڈ میں اشیاء شامل کرنے کے لیے صفحہ پر جائیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
"نیا بنائیں" بٹن پر کلک کریں، اور سسٹم آپ کو ڈیٹا ڈسپلے کی قسم منتخب کرنے کا اشارہ کرے گا۔ کبانہ میں ان کی ایک بڑی تعداد ہے، لیکن ہم "عمودی بار" اور ایک ٹیبلر "ڈیٹا ٹیبل" کی تصویری نمائندگی بنانے پر غور کریں گے۔ پریزنٹیشن کی دیگر اقسام کو اسی طرح ترتیب دیا گیا ہے۔ 
لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
کچھ دستیاب اشیاء پر B اور E کا لیبل لگا ہوا ہے، جس کا مطلب ہے کہ فارمیٹ تجرباتی ہے یا بیٹا ٹیسٹنگ میں۔ وقت کے ساتھ، فارمیٹ تبدیل ہو سکتا ہے یا کبانا سے مکمل طور پر غائب ہو سکتا ہے۔

عمودی بار

"عمودی بار" کی مثال کے لیے، آئیے ہماری سروس کے کامیاب اور ناکام جوابی حالات کے تناسب کا ایک ہسٹوگرام بنائیں۔ ترتیبات کے اختتام پر، ہمیں مندرجہ ذیل گراف ملتا ہے:

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
ہم تمام درخواستوں کو جوابی حیثیت کے ساتھ درجہ بندی کریں گے < 400 کو کامیاب، اور >= 400 کو مسئلہ کے طور پر۔

ایک "عمودی بار" چارٹ بنانے کے لیے، ہمیں ڈیٹا کا ذریعہ منتخب کرنے کی ضرورت ہے۔ انڈیکس پیٹرن کو منتخب کریں جو ہم نے پہلے بنایا تھا۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
پہلے سے طے شدہ طور پر، ڈیٹا سورس کو منتخب کرنے کے بعد ایک ہی ٹھوس گراف ظاہر ہوگا۔ آئیے اسے ترتیب دیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
"Buckets" بلاک میں، "Add" بٹن دبائیں، "X-asis" کو منتخب کریں اور X محور کو سیٹ کریں۔ آئیے اس کے ساتھ لاگ میں اندراجات کے ٹائم سٹیمپ کو ایک طرف رکھیں۔ "ایگریگیشن" فیلڈ میں، "تاریخ ہسٹوگرام" کو منتخب کریں، اور "فیلڈ" میں "@timestamp" کو منتخب کریں، جو ٹائم فیلڈ کی نشاندہی کرتا ہے۔ آئیے "کم سے کم وقفہ" کو "آٹو" حالت میں چھوڑ دیں، اور یہ خود بخود ہمارے ڈسپلے کے مطابق ہو جائے گا۔ 

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
"اپ ڈیٹ" بٹن پر کلک کرنے سے، ہم ہر 30 سیکنڈ میں درخواستوں کی تعداد کے ساتھ ایک گراف دیکھیں گے۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
اب آئیے Y-axis کے ساتھ کالم ترتیب دیتے ہیں۔ اب ہم منتخب وقت کے وقفے میں درخواستوں کی کل تعداد دکھا رہے ہیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
آئیے "جمع" کی قدر کو "سم بالٹی" میں تبدیل کریں، جو ہمیں کامیاب اور ناکام درخواستوں کے لیے ڈیٹا کو یکجا کرنے کی اجازت دے گا۔ بالٹی -> ایگریگیشن بلاک میں، "فلٹرز" کے ذریعے جمع کو منتخب کریں اور "statusCode >= 400" کے ذریعے فلٹرنگ سیٹ کریں۔ اور "کسٹم لیبل" فیلڈ میں، ہم چارٹ پر اور عام فہرست میں لیجنڈ میں زیادہ قابل فہم ڈسپلے کے لیے اپنے اشارے کے نام کی نشاندہی کرتے ہیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
سیٹنگز بلاک کے نیچے "اپ ڈیٹ" بٹن پر کلک کرنے سے، ہمیں مسئلہ کی درخواستوں کے ساتھ ایک گراف ملے گا۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
اگر آپ لیجنڈ کے آگے دائرے پر کلک کریں گے تو ایک ونڈو نمودار ہوگی جس میں آپ کالموں کا رنگ تبدیل کر سکتے ہیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
اب آئیے چارٹ میں کامیاب درخواستوں کا ڈیٹا شامل کریں۔ "میٹرکس" سیکشن میں، "شامل کریں" کے بٹن پر کلک کریں اور "Y-axis" کو منتخب کریں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
تخلیق کردہ میٹرک میں، ہم وہی ترتیبات بناتے ہیں جو غلط درخواستوں کے لیے کرتے ہیں۔ صرف فلٹر میں ہم "statusCode <400" کی وضاحت کرتے ہیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
نئے کالم کا رنگ تبدیل کرنے سے، ہمیں مشکل اور کامیاب درخواستوں کے تناسب کا ڈسپلے ملتا ہے۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
اسکرین کے اوپری حصے میں "محفوظ کریں" بٹن پر کلک کرنے اور نام بتانے سے، ہم ڈیش بورڈ پر پہلا چارٹ دیکھیں گے۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا

ڈیٹا ٹیبل

اب ٹیبلر ویو "ڈیٹا ٹیبل" پر غور کریں۔ آئیے ان تمام URLs کی فہرست کے ساتھ ایک ٹیبل بنائیں جن کی درخواست کی گئی تھی اور ان درخواستوں کی تعداد۔ جیسا کہ عمودی بار کی مثال کے ساتھ، ہم سب سے پہلے ڈیٹا کا ذریعہ منتخب کرتے ہیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
اس کے بعد، ایک کالم کے ساتھ ایک ٹیبل اسکرین پر ظاہر ہوگا، جو منتخب وقت کے وقفے کے لیے درخواستوں کی کل تعداد کو ظاہر کرتا ہے۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
ہم صرف "بکیٹس" بلاک کو تبدیل کریں گے۔ "شامل کریں" کے بٹن پر کلک کریں اور "قطاریں تقسیم کریں" کو منتخب کریں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
"ایگریگیشن" فیلڈ میں، "شرائط" کو منتخب کریں۔ اور ظاہر ہونے والی فیلڈ "فیلڈ" میں "url.keyword" کو منتخب کریں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
"کسٹم لیبل" فیلڈ میں "Url" کی قدر بتانے اور "اپ ڈیٹ" پر کلک کرنے سے، ہمیں منتخب مدت کے لیے ہر یو آر ایل کی درخواستوں کی تعداد کے ساتھ مطلوبہ جدول ملے گا۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
اسکرین کے اوپری حصے میں، "محفوظ کریں" کے بٹن پر دوبارہ کلک کریں اور ٹیبل کا نام بتائیں، مثال کے طور پر یو آر ایل۔ آئیے ڈیش بورڈ پر واپس جائیں اور بنائے گئے دونوں نظارے دیکھیں۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا

ڈیش بورڈ کے ساتھ کام کرنا

ڈیش بورڈ بناتے وقت، ہم ڈسپلے آبجیکٹ کی ترتیبات میں صرف مرکزی منظر کے پیرامیٹرز سیٹ کرتے ہیں۔ آبجیکٹ میں فلٹرز کے لیے ڈیٹا بتانا کوئی معنی نہیں رکھتا، مثال کے طور پر، "تاریخ کی حد"، "استعمال کنندہ کے ذریعے فلٹرنگ"، "درخواست ملک کے لحاظ سے فلٹرنگ"، وغیرہ۔ مطلوبہ مدت کی وضاحت کرنا یا استفسار پینل میں ضروری فلٹرنگ سیٹ کرنا زیادہ آسان ہے، جو اشیاء کے اوپر واقع ہے۔

لاگز کی نگرانی کے لیے کبانا میں ڈیش بورڈ بنانا
اس پینل پر شامل کیے گئے فلٹرز پورے ڈیش بورڈ پر لاگو کیے جائیں گے، اور تمام ڈسپلے آبجیکٹ کو اصل فلٹر کردہ ڈیٹا کے مطابق دوبارہ بنایا جائے گا۔

حاصل يہ ہوا

Kibana ایک طاقتور ٹول ہے جو آپ کو کسی بھی ڈیٹا کو آسان طریقے سے دیکھنے کی اجازت دیتا ہے۔ میں نے ڈسپلے کی دو اہم اقسام کی ترتیب دکھانے کی کوشش کی۔ لیکن دوسری اقسام کو اسی طرح ترتیب دیا گیا ہے۔ اور ترتیبات کی کثرت جو میں نے "پردے کے پیچھے" چھوڑی ہے آپ کو اپنی ضروریات کے مطابق چارٹس کو بہت لچکدار طریقے سے اپنی مرضی کے مطابق کرنے کی اجازت دے گی۔

ماخذ: www.habr.com

نیا تبصرہ شامل کریں