AI/ML ورک بوجھ کے لیے Junos میں ٹیلی میٹری
مصنفہ: شالنی مکھرجی
تعارف
چونکہ AI کلسٹر ٹریفک کو ہائی تھرو پٹ اور کم لیٹنسی والے نقصان کے بغیر نیٹ ورکس کی ضرورت ہوتی ہے، AI نیٹ ورک کا ایک اہم عنصر مانیٹرنگ ڈیٹا کا مجموعہ ہے۔ Junos Telemetry اہم کارکردگی کے اشارے کی دانے دار نگرانی کو قابل بناتا ہے، بشمول بھیڑ کے انتظام اور ٹریفک بوجھ کے توازن کے لیے حدیں اور کاؤنٹرز۔ gRPC سیشن ٹیلی میٹری ڈیٹا کی سٹریمنگ کی حمایت کرتے ہیں۔ gRPC ایک جدید، اوپن سورس، اعلی کارکردگی کا فریم ورک ہے جو HTTP/2 ٹرانسپورٹ پر بنایا گیا ہے۔ یہ مقامی دو طرفہ سلسلہ بندی کی صلاحیتوں کو تقویت دیتا ہے اور درخواست کے ہیڈر میں لچکدار کسٹم میٹا ڈیٹا شامل کرتا ہے۔ ٹیلی میٹری کا ابتدائی مرحلہ یہ جاننا ہے کہ کون سا ڈیٹا اکٹھا کرنا ہے۔ اس کے بعد ہم اس ڈیٹا کا مختلف فارمیٹس میں تجزیہ کر سکتے ہیں۔ ایک بار جب ہم ڈیٹا اکٹھا کر لیتے ہیں، تو اسے ایک ایسے فارمیٹ میں پیش کرنا ضروری ہے جس کی نگرانی کرنا، فیصلے کرنا اور پیش کی جانے والی سروس کو بہتر بنانا آسان ہو۔ اس مقالے میں، ہم ٹیلی گراف، انفلوکس ڈی بی، اور گرافانا پر مشتمل ایک ٹیلی میٹری اسٹیک استعمال کرتے ہیں۔ یہ ٹیلی میٹری اسٹیک پش ماڈل کا استعمال کرتے ہوئے ڈیٹا اکٹھا کرتا ہے۔ روایتی پل ماڈلز وسائل سے بھرپور ہوتے ہیں، ان میں دستی مداخلت کی ضرورت ہوتی ہے، اور ان کے جمع کردہ ڈیٹا میں معلوماتی خلا شامل ہو سکتا ہے۔ پش ماڈل ڈیٹا کو غیر مطابقت پذیر طریقے سے فراہم کر کے ان حدود پر قابو پاتے ہیں۔ وہ یوزر فرینڈلی کا استعمال کرکے ڈیٹا کو بہتر بناتے ہیں۔ tags اور نام. ایک بار جب ڈیٹا زیادہ پڑھنے کے قابل فارمیٹ میں ہو جاتا ہے، تو ہم اسے ڈیٹا بیس میں محفوظ کرتے ہیں اور اسے انٹرایکٹو ویژولائزیشن میں استعمال کرتے ہیں۔ web نیٹ ورک کا تجزیہ کرنے کے لیے درخواست۔ پیکر 1 ہمیں دکھاتا ہے کہ اس اسٹیک کو کس طرح موثر ڈیٹا اکٹھا کرنے، اسٹوریج، اور ویژولائزیشن کے لیے ڈیزائن کیا گیا ہے، نیٹ ورک ڈیوائسز سے ڈیٹا کو جمع کرنے والے تک پہنچانے والے ڈیٹا تک تجزیہ کے لیے ڈیش بورڈز پر دکھائے جانے والے ڈیٹا تک۔
ٹی آئی جی اسٹیک
ہم نے TIG اسٹیک سمیت تمام سافٹ ویئر انسٹال کرنے کے لیے Ubuntu سرور کا استعمال کیا۔
ٹیلی گراف
ڈیٹا اکٹھا کرنے کے لیے، ہم 22.04.2 پر چلنے والے Ubuntu سرور پر Telegraf استعمال کرتے ہیں۔ اس ڈیمو میں چلنے والا ٹیلی گراف ورژن 1.28.5 ہے۔
ٹیلی گراف میٹرکس کو جمع کرنے اور رپورٹ کرنے کے لیے پلگ ان سے چلنے والا سرور ایجنٹ ہے۔ یہ پروسیسر استعمال کرتا ہے۔ plugins ڈیٹا کو بہتر اور معمول پر لانے کے لیے۔ آؤٹ پٹ plugins اس ڈیٹا کو مختلف ڈیٹا اسٹورز کو بھیجنے کے لیے استعمال کیا جاتا ہے۔ اس دستاویز میں ہم دو استعمال کرتے ہیں۔ plugins: ایک اوپن کنفگ سینسرز کے لیے اور دوسرا جونیپر مقامی سینسر کے لیے۔
InfluxDB
ٹائم سیریز ڈیٹا بیس میں ڈیٹا کو ذخیرہ کرنے کے لیے، ہم InfluxDB استعمال کرتے ہیں۔ ٹیلی گراف میں آؤٹ پٹ پلگ ان ڈیٹا کو InfluxDB کو بھیجتا ہے، جو اسے انتہائی موثر انداز میں اسٹور کرتا ہے۔ ہم V1.8 استعمال کر رہے ہیں کیونکہ V2 اور اس سے اوپر کے لیے کوئی CLI موجود نہیں ہے۔
گرافانا
گرافانا اس ڈیٹا کو دیکھنے کے لیے استعمال کیا جاتا ہے۔ Grafana InfluxDB سے ڈیٹا کھینچتا ہے اور صارفین کو بھرپور اور انٹرایکٹو ڈیش بورڈ بنانے کی اجازت دیتا ہے۔ یہاں، ہم ورژن 10.2.2 چلا رہے ہیں۔
سوئچ پر کنفیگریشن
اس اسٹیک کو لاگو کرنے کے لیے، ہمیں سب سے پہلے سوئچ کو کنفیگر کرنے کی ضرورت ہے جیسا کہ شکل 2 میں دکھایا گیا ہے۔ ہم نے پورٹ 50051 استعمال کیا ہے۔ یہاں کوئی بھی پورٹ استعمال کیا جا سکتا ہے۔ QFX سوئچ میں لاگ ان کریں اور درج ذیل کنفیگریشن شامل کریں۔
نوٹ: یہ کنفیگریشن لیبز/پی او سی کے لیے ہے کیونکہ پاس ورڈ واضح متن میں منتقل ہوتا ہے۔ اس سے بچنے کے لیے SSL استعمال کریں۔
ماحولیات
Nginx
اس کی ضرورت ہے اگر آپ اس پورٹ کو ظاہر کرنے سے قاصر ہیں جس پر گرافانا کی میزبانی کی گئی ہے۔ اگلا مرحلہ ریورس پراکسی ایجنٹ کے طور پر کام کرنے کے لیے Ubuntu سرور پر nginx انسٹال کرنا ہے۔ nginx انسٹال ہونے کے بعد، شکل 4 میں دکھائی گئی لائنوں کو "ڈیفالٹ" فائل میں شامل کریں اور فائل کو /etc/nginx سے /etc/nginx/sites-enabled میں منتقل کریں۔
اس بات کو یقینی بنائیں کہ nginx سروس تک مکمل رسائی دینے کے لیے فائر وال کو ایڈجسٹ کیا گیا ہے جیسا کہ شکل 5 میں دکھایا گیا ہے۔
ایک بار جب nginx انسٹال ہو جاتا ہے اور مطلوبہ تبدیلیاں کر لی جاتی ہیں، تو ہمیں A سے Grafana تک رسائی حاصل کرنے کے قابل ہونا چاہیے۔ web اوبنٹو سرور کا آئی پی ایڈریس استعمال کرکے براؤزر جہاں تمام سافٹ ویئر انسٹال ہیں۔
گرافانا میں ایک چھوٹی سی خرابی ہے جو آپ کو پہلے سے طے شدہ پاس ورڈ کو دوبارہ ترتیب دینے نہیں دیتی ہے۔ اگر آپ اس مسئلے سے دوچار ہیں تو ان اقدامات کا استعمال کریں۔
گرافانا میں پاس ورڈ سیٹ کرنے کے لیے اوبنٹو سرور پر کیے جانے والے اقدامات:
- /var/lib/grafana/grafana.db پر جائیں۔
- sqllite3 انسٹال کریں۔
o sudo apt sqlite3 انسٹال کریں۔ - اس کمانڈ کو اپنے ٹرمینل پر چلائیں۔
o sqlite3 grafana.db - Sqlite کمانڈ پرامپٹ کھلتا ہے۔ درج ذیل استفسار کو چلائیں:
> صارف سے حذف کریں جہاں لاگ ان = 'ایڈمن' - گرافانا کو دوبارہ شروع کریں اور ایڈمن کو بطور صارف نام اور پاس ورڈ ٹائپ کریں۔ یہ ایک نئے پاس ورڈ کا اشارہ کرتا ہے۔
تمام سافٹ ویئر انسٹال ہونے کے بعد، ٹیلی گراف میں کنفگ فائل بنائیں جس سے ٹیلی میٹری ڈیٹا کو سوئچ سے نکال کر InfluxDB پر دھکیلنے میں مدد ملے گی۔
اوپن کنفگ سینسر پلگ ان
Ubuntu سرور پر، تمام مطلوبہ چیزیں شامل کرنے کے لیے /etc/telegraf/telegraf.conf فائل میں ترمیم کریں۔ plugins اور سینسر. اوپن کنفگ سینسرز کے لیے، ہم شکل 6 میں دکھایا گیا gNMI پلگ ان استعمال کرتے ہیں۔ ڈیمو مقاصد کے لیے، میزبان نام کو "spine1" کے طور پر، پورٹ نمبر "50051" جو gRPC کے لیے استعمال ہوتا ہے، سوئچ کا صارف نام اور پاس ورڈ، اور نمبر شامل کریں۔ ناکامی کی صورت میں دوبارہ ڈائل کرنے کے لیے سیکنڈ کا۔
سبسکرپشن سٹینز میں، اس مخصوص سینسر کے لیے ایک منفرد نام، "cpu" شامل کریں، سینسر کا راستہ، اور سوئچ سے اس ڈیٹا کو حاصل کرنے کے لیے وقت کا وقفہ۔ ایک ہی پلگ ان inputs.gnmi اور inputs.gnmi.subscription تمام اوپن کنفگ سینسرز کے لیے شامل کریں۔ (شکل 6)
مقامی سینسر پلگ ان
یہ جونیپر ٹیلی میٹری انٹرفیس پلگ ان ہے جو مقامی سینسرز کے لیے استعمال ہوتا ہے۔ اسی telegraf.conf فائل میں، مقامی سینسر پلگ ان inputs.jti_openconfig_telemetry شامل کریں جہاں فیلڈز تقریباً openconfig جیسے ہی ہیں۔ ہر سینسر کے لیے ایک منفرد کلائنٹ آئی ڈی استعمال کریں۔ یہاں، ہم "telegraf3" استعمال کرتے ہیں۔ اس سینسر کے لیے یہاں استعمال کیا جانے والا منفرد نام "میم" ہے (شکل 7)۔
آخر میں، اس سینسر ڈیٹا کو InfluxDB کو بھیجنے کے لیے ایک آؤٹ پٹ پلگ ان outputs.influxdb شامل کریں۔ یہاں، ڈیٹا بیس کو "ٹیلی گراف" کا نام دیا گیا ہے جس میں صارف نام "انفلوکس" اور پاس ورڈ "انفلوکس ڈی بی" (شکل 8) ہے۔
telegraf.conf فائل میں ترمیم کرنے کے بعد، ٹیلی گراف سروس کو دوبارہ شروع کریں۔ اب، InfluxDB CLI میں یہ یقینی بنانے کے لیے چیک کریں کہ آیا تمام منفرد سینسر کے لیے پیمائشیں بنائی گئی ہیں۔ InfluxDB CLI میں داخل ہونے کے لیے "influx" ٹائپ کریں۔
جیسا کہ شکل میں دیکھا گیا ہے۔ 9، influxDB پرامپٹ درج کریں اور ڈیٹا بیس "telegraf" استعمال کریں۔ سینسر کو دیئے گئے تمام منفرد نام پیمائش کے طور پر درج ہیں۔
کسی ایک پیمائش کے آؤٹ پٹ کو دیکھنے کے لیے، صرف یہ یقینی بنانے کے لیے کہ ٹیلی گراف فائل درست ہے اور سینسر کام کر رہا ہے، جیسا کہ شکل 1 میں دکھایا گیا ہے "select* from cpu limit 10" کمانڈ استعمال کریں۔
جب بھی telegraf.conf فائل میں تبدیلیاں کی جائیں، InfluxDB کو روکنا، Telegraf کو دوبارہ شروع کرنا، اور پھر InfluxDB شروع کرنا یقینی بنائیں۔
براؤزر سے گرافانا پر لاگ ان کریں اور اس بات کو یقینی بنانے کے بعد کہ ڈیٹا درست طریقے سے جمع کیا جا رہا ہے ڈیش بورڈز بنائیں۔
کنکشنز > InfuxDB > نیا ڈیٹا سورس شامل کریں پر جائیں۔
- اس ڈیٹا سورس کو ایک نام دیں۔ اس ڈیمو میں یہ "ٹیسٹ-1" ہے۔
- HTTP سٹینزا کے تحت، Ubuntu سرور IP اور 8086 پورٹ استعمال کریں۔
- InfluxDB تفصیلات میں، وہی ڈیٹا بیس کا نام، "telegraf" استعمال کریں اور Ubuntu سرور کا صارف نام اور پاس ورڈ فراہم کریں۔
- محفوظ کریں اور ٹیسٹ پر کلک کریں۔ یقینی بنائیں کہ آپ کو پیغام نظر آتا ہے، "کامیاب"۔
- ڈیٹا ماخذ کامیابی سے شامل ہونے کے بعد، ڈیش بورڈز پر جائیں اور نیا پر کلک کریں۔ آئیے چند ڈیش بورڈز بنائیں جو ایڈیٹر موڈ میں AI/ML ورک بوجھ کے لیے ضروری ہیں۔
Exampلیس آف سینسر گراف
مندرجہ ذیل سابق ہیں۔ampکچھ بڑے کاؤنٹرز جو کہ AI/ML نیٹ ورک کی نگرانی کے لیے ضروری ہیں۔
پرسنtagریڑھ کی ہڈی-0 پر داخل ہونے والے انٹرفیس et-0/0/1 کے لیے e استعمال
- ڈیٹا سورس کو بطور ٹیسٹ-1 منتخب کریں۔
- FROM سیکشن میں، پیمائش کو بطور "انٹرفیس" منتخب کریں۔ یہ اس سینسر پاتھ کے لیے استعمال ہونے والا منفرد نام ہے۔
- WHERE سیکشن میں، ڈیوائس کو منتخب کریں::tag، اور میں tag قدر، سوئچ کا میزبان نام منتخب کریں، یعنی spine1۔
- SELECT سیکشن میں، سینسر کی وہ شاخ منتخب کریں جس کی آپ نگرانی کرنا چاہتے ہیں۔ اس معاملے میں "fild(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)" کا انتخاب کریں۔ اب اسی حصے میں، "+" پر کلک کریں اور اس حسابی ریاضی (/50000000000 * 100) کو شامل کریں۔ ہم بنیادی طور پر فیصد کا حساب لگا رہے ہیں۔tag400G انٹرفیس کا استعمال۔
- یقینی بنائیں کہ فارمیٹ "ٹائم سیریز" ہے اور ALIAS سیکشن میں گراف کو نام دیں۔
کسی بھی قطار کے لیے چوٹی بفر قبضے
- ڈیٹا سورس کو بطور ٹیسٹ-1 منتخب کریں۔
- FROM سیکشن میں، پیمائش کو بطور "بفر" منتخب کریں۔
- WHERE سیکشن میں، بھرنے کے لیے تین فیلڈز ہیں۔ آلہ منتخب کریں::tag، اور میں tag قدر سوئچ کے میزبان نام کو منتخب کریں (یعنی ریڑھ کی ہڈی -1)؛ اور منتخب کریں /cos/interfaces/interface/@name::tag اور انٹرفیس کو منتخب کریں (یعنی et- 0/0/0)؛ اور قطار کو بھی منتخب کریں، /cos/interfaces/interface/queues/queue/@queue::tag اور قطار نمبر 4 کا انتخاب کریں۔
- SELECT سیکشن میں، سینسر کی وہ شاخ منتخب کریں جس کی آپ نگرانی کرنا چاہتے ہیں۔ اس معاملے میں "فیلڈ(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy)" کا انتخاب کریں۔
- یقینی بنائیں کہ فارمیٹ "ٹائم سیریز" ہے اور گراف کو ALIAS سیکشن میں نام دیں۔
آپ ایک ہی گراف پر متعدد انٹرفیس کے لیے ڈیٹا کو جمع کر سکتے ہیں جیسا کہ شکل 17 میں et-0/0/0، et-0/0/1، et-0/0/2 وغیرہ کے لیے دیکھا گیا ہے۔
پی ایف سی اور ای سی این کا مطلب مشتق ہے۔
اوسط مشتق (ایک وقت کی حد کے اندر قدر میں فرق) تلاش کرنے کے لیے، خام استفسار وضع استعمال کریں۔
یہ انفلکس استفسار ہے جسے ہم نے ایک سیکنڈ میں Spine-0 کے et-0/0/1 پر دو PFC قدروں کے درمیان اوسط اخذ کرنے کے لیے استعمال کیا ہے۔
منتخب مشتق ("/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts")، 1s) "انٹرفیس" سے کہاں ("ڈیوائس"::tag = 'سپائن-1') اور $timeFilter GROUP BY time($interval)
منتخب مشتق("/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts")، 1s) "انٹرفیس" سے کہاں ("ڈیوائس"::tag = 'سپائن-1') اور $timeFilter GROUP BY time($interval)
ان پٹ وسائل کی خرابیوں کا مطلب مشتق ہے۔
وسائل کی غلطیوں کے لیے خام استفسار کا مطلب مشتق ہے:
منتخب مشتق ("/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors"), 1s) "انٹرفیس" سے کہاں ("ڈیوائس"::tag = 'سپائن-1') اور $timeFilter GROUP BY time($interval)
دم کے قطرے کا مطلب مشتق ہے۔
ٹیل ڈراپس کے لیے خام سوال کا مطلب مشتق ہے:
منتخب مشتق (مطلب("/cos/interfaces/interface/queues/queue/tailDropBytes")، 1s) "بفر" سے جہاں ("ڈیوائس"::tag = 'Leaf-1' اور "/cos/interfaces/interface/@name"::tag = 'et-0/0/0' اور "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') اور $timeFilter GROUP BY time($__interval) fll(null)
سی پی یو کا استعمال
- ڈیٹا سورس کو بطور ٹیسٹ-1 منتخب کریں۔
- FROM سیکشن میں، پیمائش کو "newcpu" کے بطور منتخب کریں۔
- WHERE میں، بھرنے کے لیے تین فیلڈز ہیں۔ آلہ منتخب کریں::tag اور میں tag قدر سوئچ کا میزبان نام منتخب کریں (یعنی ریڑھ کی ہڈی -1)۔ اور /components/component/properties/property/name میں:tag، اور منتخب کریں cpuutilization-total AND in name::tag RE0 کو منتخب کریں۔
- SELECT سیکشن میں، سینسر کی وہ شاخ منتخب کریں جس کی آپ نگرانی کرنا چاہتے ہیں۔ اس صورت میں، "فیلڈ(ریاست/قدر)" کا انتخاب کریں۔
بٹس/سیکنڈ میں متعدد انٹرفیس پر متعدد سوئچز کے لیے ٹیل ڈراپس کے غیر منفی مشتق کو تلاش کرنے کے لیے خام سوال۔
non_negative_derivative(مطلب("/cos/interfaces/interface/queues/queue/tailDropBytes")، 1s)*8 "بفر" سے جہاں (ڈیوائس::) کو منتخب کریںtag =~ /^Spine-[1-2]$/) اور (“/cos/interfaces/interface/@name”::tag =~ /et-0\/0\/[0-9]/ یا "/cos/interfaces/interface/@name"::tag=~/et-0\/0\/1[0-5]/) اور $timeFilter GROUP BY time($__interval),device::tag بھرنا (نال)
یہ سابق میں سے کچھ تھے۔ampان گرافوں کے لیس جو AI/ML نیٹ ورک کی نگرانی کے لیے بنائے جا سکتے ہیں۔
خلاصہ
یہ مقالہ ٹیلی میٹری ڈیٹا کو کھینچنے اور گراف بنا کر اسے دیکھنے کے طریقہ کار کی وضاحت کرتا ہے۔ یہ کاغذ خاص طور پر AI/ML سینسر کے بارے میں بات کرتا ہے، دونوں مقامی اور اوپن کنفگ لیکن سیٹ اپ کو ہر قسم کے سینسر کے لیے استعمال کیا جا سکتا ہے۔ ہم نے متعدد مسائل کے حل بھی شامل کیے ہیں جن کا آپ کو سیٹ اپ بناتے وقت سامنا کرنا پڑ سکتا ہے۔ اس مقالے میں دکھائے گئے اقدامات اور نتائج پہلے ذکر کیے گئے TIG اسٹیک کے ورژن کے لیے مخصوص ہیں۔ یہ سافٹ ویئر کے ورژن، سینسرز اور جونوس ورژن کے لحاظ سے تبدیلی کے تابع ہے۔
حوالہ جات
تمام سینسر کے اختیارات کے لیے جونیپر یانگ ڈیٹا ماڈل ایکسپلورر
https://apps.juniper.net/ydm-explorer/
اوپن کنفگ سینسرز کے لیے اوپن کنفگ فورم
https://www.openconfig.net/projects/models/
کارپوریٹ اور سیلز ہیڈ کوارٹر
Juniper Networks, Inc.
1133 اختراعی طریقہ
سنی ویلے ، سی اے 94089 امریکہ۔
فون: 888. JUNIPER (888.586.4737)
یا +1.408.745.2000
فیکس: +1.408.745.2100
www.juniper.net
اے پی اے سی اور ای ایم ای اے ہیڈ کوارٹر
جونیپر نیٹ ورکس انٹرنیشنل BV
بوئنگ ایونیو 240
1119 PZ Schiphol-Rijk
ایمسٹرڈیم، نیدرلینڈز
فون: +31.207.125.700
فیکس: +31.207.125.701
کاپی رائٹ 2023 جونیپر نیٹ ورکس۔ Inc. Ail کے حقوق محفوظ ہیں۔ جونیپر نیٹ ورکس، جونیپر نیٹ ورکس لوگو، جونیپر، جونوس، اور دیگر ٹریڈ مارک جونیپر نیٹ ورکس کے رجسٹرڈ ٹریڈ مارک ہیں۔ inc. اور/یا ریاستہائے متحدہ اور دیگر ممالک میں اس کے ملحقہ۔ دوسرے نام ان کے متعلقہ مالکان کے ٹریڈ مارک ہو سکتے ہیں۔ Juniper Networks اس دستاویز میں کسی بھی غلطی کی ذمہ داری قبول نہیں کرتا ہے۔ جونیپر نیٹ ورکس تبدیلی کا حق محفوظ رکھتا ہے۔ ترمیم کریں منتقل کریں، یا بصورت دیگر نوٹس کے بغیر اس اشاعت پر نظر ثانی کریں۔
رائے بھیجیں: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml
دستاویزات / وسائل
![]() |
AI ML ورک لوڈز سافٹ ویئر کے لیے Junos میں Juniper NETWORKS ٹیلی میٹری [پی ڈی ایف] یوزر گائیڈ AI ML ورک لوڈز سافٹ ویئر کے لیے Junos میں ٹیلی میٹری، AI ML ورک لوڈز سافٹ ویئر کے لیے Junos، AI ML ورک لوڈز سافٹ ویئر، ورک لوڈز سافٹ ویئر، سافٹ ویئر |