القياس عن بعد في Junos لأحمال عمل AI/ML
المؤلف: شاليني موخرجي
مقدمة
نظرًا لأن حركة المرور العنقودية للذكاء الاصطناعي تتطلب شبكات بدون فقدان مع إنتاجية عالية وزمن وصول منخفض، فإن جمع بيانات المراقبة هو عنصر حاسم في شبكة الذكاء الاصطناعي. يتيح القياس عن بعد من Junos المراقبة الدقيقة لمؤشرات الأداء الرئيسية، بما في ذلك الحدود والعدادات لإدارة الازدحام وموازنة أحمال حركة المرور. تدعم جلسات gRPC تدفق بيانات القياس عن بعد. gRPC هو إطار عمل حديث ومفتوح المصدر وعالي الأداء مبني على نقل HTTP/2. فهو يعمل على تمكين إمكانات البث ثنائية الاتجاه الأصلية ويتضمن بيانات تعريف مخصصة مرنة في رؤوس الطلب. الخطوة الأولى في القياس عن بعد هي معرفة البيانات التي سيتم جمعها. يمكننا بعد ذلك تحليل هذه البيانات بتنسيقات مختلفة. بمجرد جمع البيانات، من المهم تقديمها بتنسيق يسهل مراقبته واتخاذ القرارات وتحسين الخدمة المقدمة. في هذه الورقة، نستخدم مكدس القياس عن بعد الذي يتكون من Telegraf وInfluxDB وGrafana. يقوم مكدس القياس عن بعد هذا بجمع البيانات باستخدام نموذج الدفع. نماذج السحب التقليدية تستهلك الكثير من الموارد، وتتطلب تدخلاً يدويًا، ويمكن أن تتضمن فجوات في المعلومات في البيانات التي تجمعها. تتغلب نماذج الدفع على هذه القيود من خلال تقديم البيانات بشكل غير متزامن. أنها تثري البيانات باستخدام سهل الاستخدام tags والأسماء. بمجرد أن تصبح البيانات بتنسيق أكثر قابلية للقراءة، نقوم بتخزينها في قاعدة بيانات واستخدامها في تصور تفاعلي web تطبيق لتحليل الشبكة. شكل. يوضح لنا الشكل 1 كيف تم تصميم هذه المكدس لجمع البيانات وتخزينها وتصورها بكفاءة، بدءًا من أجهزة الشبكة التي تدفع البيانات إلى أداة التجميع إلى البيانات التي يتم عرضها على لوحات المعلومات لتحليلها.
تي آي جي ستاك
استخدمنا خادم Ubuntu لتثبيت كافة البرامج بما في ذلك حزمة TIG.
برقية
لجمع البيانات، نستخدم Telegraf على خادم Ubuntu الذي يعمل بنظام 22.04.2. إصدار Telegraf الذي يعمل في هذا العرض التوضيحي هو 1.28.5.
Telegraf هو وكيل خادم يعتمد على المكونات الإضافية لجمع المقاييس وإعداد التقارير عنها. ويستخدم المعالج plugins لإثراء وتطبيع البيانات. الإخراج plugins يتم استخدامها لإرسال هذه البيانات إلى مخازن البيانات المختلفة. في هذه الوثيقة نستخدم اثنين plugins: أحدهما لأجهزة استشعار openconfig والآخر لأجهزة استشعار Juniper الأصلية.
InfluxDB
لتخزين البيانات في قاعدة بيانات سلسلة زمنية، نستخدم InfluxDB. يرسل البرنامج الإضافي للإخراج في Telegraf البيانات إلى InfluxDB، الذي يقوم بتخزينها بطريقة فعالة للغاية. نحن نستخدم الإصدار 1.8 نظرًا لعدم وجود واجهة سطر الأوامر (CLI) للإصدار 2 وما فوق.
جرافانا
يتم استخدام Grafana لتصور هذه البيانات. تسحب Grafana البيانات من InfluxDB وتسمح للمستخدمين بإنشاء لوحات معلومات غنية وتفاعلية. نحن هنا نقوم بتشغيل الإصدار 10.2.2.
التكوين على التبديل
لتنفيذ هذه المكدس، نحتاج أولاً إلى تكوين المحول كما هو موضح في الشكل 2. لقد استخدمنا المنفذ 50051. ويمكن استخدام أي منفذ هنا. قم بتسجيل الدخول إلى مفتاح QFX وأضف التكوين التالي.
ملحوظة: هذا التكوين مخصص للمختبرات/نقاط الاتصال حيث يتم إرسال كلمة المرور بنص واضح. استخدم SSL لتجنب ذلك.
بيئة
نجينكس
يعد ذلك ضروريًا إذا لم تتمكن من كشف المنفذ الذي تتم استضافة Grafana عليه. الخطوة التالية هي تثبيت nginx على خادم Ubuntu ليكون بمثابة وكيل وكيل عكسي. بمجرد تثبيت nginx، أضف الأسطر الموضحة في الشكل 4 إلى الملف "الافتراضي" وانقل الملف من /etc/nginx إلى /etc/nginx/sites-enabled.
تأكد من ضبط جدار الحماية لمنح الوصول الكامل إلى خدمة nginx كما هو موضح في الشكل 5.
بمجرد تثبيت nginx وإجراء التغييرات المطلوبة، يجب أن نكون قادرين على الوصول إلى Grafana من ملف web المتصفح باستخدام عنوان IP الخاص بخادم Ubuntu حيث تم تثبيت كافة البرامج.
يوجد خلل صغير في Grafana لا يسمح لك بإعادة تعيين كلمة المرور الافتراضية. استخدم هذه الخطوات إذا واجهت هذه المشكلة.
الخطوات الواجب تنفيذها على خادم Ubuntu لتعيين كلمة المرور في Grafana:
- انتقل إلى /var/lib/grafana/grafana.db
- تثبيت sqllite3
o Sudo apt install sqlite3 - قم بتشغيل هذا الأمر على جهازك الطرفي
س sqlite3 grafana.db - يتم فتح موجه أوامر SQLite؛ قم بتشغيل الاستعلام التالي:
> حذف من المستخدم حيث تسجيل الدخول = "المسؤول" - أعد تشغيل grafana واكتب admin كاسم المستخدم وكلمة المرور. ويطالب بكلمة مرور جديدة.
بمجرد تثبيت البرنامج بالكامل، قم بإنشاء ملف التكوين في Telegraf والذي سيساعد في سحب بيانات القياس عن بعد من المحول ودفعها إلى InfluxDB.
البرنامج المساعد استشعار Openconfig
على خادم Ubuntu، قم بتحرير الملف /etc/telegraf/telegraf.conf لإضافة كافة الملفات المطلوبة plugins وأجهزة الاستشعار. بالنسبة لأجهزة استشعار openconfig، نستخدم البرنامج الإضافي gNMI الموضح في الشكل 6. ولأغراض العرض التوضيحي، أضف اسم المضيف كـ "spine1"، ورقم المنفذ "50051" المستخدم لـ gRPC، واسم المستخدم وكلمة المرور للمحول، والرقم ثانية لإعادة الاتصال في حالة الفشل.
في مقطع الاشتراك، أضف اسمًا فريدًا، "وحدة المعالجة المركزية" لهذا المستشعر المحدد، ومسار المستشعر، والفاصل الزمني لالتقاط هذه البيانات من المحول. أضف نفس البرنامج المساعد inputs.gnmi و inputs.gnmi.subscription لجميع مستشعرات التكوين المفتوحة. (الشكل 6)
البرنامج المساعد الاستشعار الأصلي
هذا هو البرنامج المساعد لواجهة القياس عن بعد Juniper المستخدم لأجهزة الاستشعار الأصلية. في نفس ملف telegraf.conf، أضف المدخلات الإضافية للمستشعر الأصلي.jti_openconfig_telemetry حيث تكون الحقول تقريبًا مماثلة لحقول openconfig. استخدم معرف عميل فريدًا لكل مستشعر؛ هنا نستخدم "telegraf3". الاسم الفريد المستخدم هنا لهذا المستشعر هو "mem" (الشكل 7).
وأخيرًا، قم بإضافة البرنامج المساعد للإخراج Outputs.influxdb لإرسال بيانات المستشعر هذه إلى InfluxDB. هنا، تسمى قاعدة البيانات "telegraf" مع اسم المستخدم "influx" وكلمة المرور "influxdb" (الشكل 8).
بمجرد قيامك بتحرير ملف telegraf.conf، أعد تشغيل خدمة telegraf. الآن، تحقق من InfluxDB CLI للتأكد من إنشاء قياسات لجميع المستشعرات الفريدة. اكتب "influx" لإدخال InfluxDB CLI.
كما يظهر في الشكل. 9، أدخل موجه influxDB واستخدم قاعدة البيانات "telegraf". يتم إدراج جميع الأسماء الفريدة المعطاة لأجهزة الاستشعار كقياسات.
لرؤية مخرجات أي قياس، فقط للتأكد من صحة ملف التلغراف وأن المستشعر يعمل، استخدم الأمر "select * from cpu Limit 1" كما هو موضح في الشكل 10.
في كل مرة يتم فيها إجراء تغييرات على ملف telegraf.conf، تأكد من إيقاف InfluxDB، وإعادة تشغيل Telegraf، ثم تشغيل InfluxDB.
قم بتسجيل الدخول إلى Grafana من المتصفح وقم بإنشاء لوحات المعلومات بعد التأكد من جمع البيانات بشكل صحيح.
انتقل إلى الاتصالات > InfuxDB > إضافة مصدر بيانات جديد.
- إعطاء اسم لمصدر البيانات هذا. في هذا العرض التوضيحي هو "الاختبار 1".
- ضمن مقطع HTTP، استخدم عنوان IP لخادم Ubuntu ومنفذ 8086.
- في تفاصيل InfluxDB، استخدم نفس اسم قاعدة البيانات، "telegraf"، وقم بتوفير اسم المستخدم وكلمة المرور لخادم Ubuntu.
- انقر فوق حفظ واختبار. تأكد من ظهور الرسالة "ناجحة".
- بمجرد إضافة مصدر البيانات بنجاح، انتقل إلى لوحات المعلومات وانقر فوق جديد. دعونا ننشئ بعض لوحات المعلومات الضرورية لأحمال عمل AI/ML في وضع المحرر.
Exampعروض الرسوم البيانية الاستشعار
وفيما يلي أمثلة على ذلك:ampأمثلة لبعض العدادات الرئيسية الضرورية لمراقبة شبكة الذكاء الاصطناعي/تعلم الآلة.
بيرسنtagالاستخدام الإلكتروني لواجهة الدخول et-0/0/0 على العمود الفقري-1
- حدد مصدر البيانات كاختبار-1.
- في القسم من، حدد القياس باسم "الواجهة". هذا هو الاسم الفريد المستخدم لمسار المستشعر هذا.
- في قسم "أين"، حدد الجهاز::tag، وفي tag القيمة، حدد اسم المضيف للمفتاح، أي العمود الفقري 1.
- في قسم التحديد، اختر فرع المستشعر الذي تريد مراقبته؛ في هذه الحالة اختر "field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)". الآن في نفس القسم، انقر على "+" وأضف هذه العملية الحسابية (/50000000000 * 100). نحن نحسب النسبة المئوية بشكل أساسيtagه الاستفادة من واجهة 400G.
- تأكد من أن التنسيق هو "سلسلة زمنية"، وقم بتسمية الرسم البياني في قسم الاسم المستعار.
ذروة إشغال المخزن المؤقت لأي قائمة انتظار
- حدد مصدر البيانات كاختبار-1.
- في القسم "من"، حدد القياس على أنه "مخزن مؤقت".
- في قسم "أين"، هناك ثلاثة حقول يجب ملؤها. اختر الجهاز::tag، وفي tag القيمة حدد اسم المضيف للمفتاح (أي العمود الفقري -1)؛ وحدد /cos/interfaces/interface/@name::tag وحدد الواجهة (أي et-0/0/0)؛ وحدد قائمة الانتظار أيضًا، /cos/interfaces/interface/queues/queue/@queue::tag واختر رقم الانتظار 4.
- في قسم التحديد، اختر فرع المستشعر الذي تريد مراقبته؛ في هذه الحالة اختر "field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy)."
- تأكد من أن التنسيق هو "سلسلة زمنية" وقم بتسمية الرسم البياني في قسم الاسم المستعار.
يمكنك تجميع البيانات لواجهات متعددة على نفس الرسم البياني كما هو موضح في الشكل 17 لـ et-0/0/0 وet-0/0/1 وet-0/0/2 وما إلى ذلك.
PFC وECN يعني المشتقة
للعثور على المشتق المتوسط (الفرق في القيمة ضمن نطاق زمني)، استخدم وضع الاستعلام الأولي.
هذا هو استعلام التدفق الذي استخدمناه للعثور على المشتق المتوسط بين قيمتين لـ PFC على et-0/0/0 للعمود الفقري-1 في ثانية.
حدد مشتق (يعني("/interfaces/interface[if_name='et-0/0/0']/state/pfc-counter/tx_pkts")، 1s) من "الواجهة" حيث ("الجهاز"::tag = 'العمود الفقري-1') ومجموعة $timeFilter حسب الوقت(فاصل زمني $)
حدد مشتق (يعني("/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts")، 1s) من "الواجهة" حيث ("الجهاز"::tag = 'العمود الفقري-1') ومجموعة $timeFilter حسب الوقت(فاصل زمني $)
أخطاء موارد الإدخال تعني المشتقة
الاستعلام الأولي عن أخطاء الموارد يعني أن المشتق هو:
حدد مشتق (يعني("/interfaces/interface[if_name='et-0/0/0']/state/error-counters/if_in_resource_errors")، 1s) من "الواجهة" حيث ("الجهاز"::tag = 'العمود الفقري-1') ومجموعة $timeFilter حسب الوقت(فاصل زمني $)
قطرات الذيل تعني مشتق
الاستعلام الأولي عن قطرات الذيل يعني المشتق هو:
حدد مشتق (يعني("/cos/interfaces/interface/queues/queue/tailDropBytes")، 1s) من "المخزن المؤقت" حيث ("الجهاز"::tag = 'الورقة-1' و"/cos/interfaces/interface/@name"::tag = 'et-0/0/0' و "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') ومجموعة $timeFilter حسب الوقت($__interval) ملء(خالية)
استخدام وحدة المعالجة المركزية
- حدد مصدر البيانات كاختبار-1.
- في القسم FROM، حدد القياس باسم "newcpu"
- في المكان، هناك ثلاثة حقول يجب ملؤها. اختر الجهاز::tag وفي tag القيمة حدد اسم المضيف للمفتاح (أي العمود الفقري -1). وفي /components/component/properties/property/name:tag، وحدد cpuutilization-total AND بالاسم::tag حدد RE0.
- في قسم التحديد، اختر فرع المستشعر الذي تريد مراقبته. في هذه الحالة، اختر "الحقل (الحالة/القيمة)".
يسقط الاستعلام الأولي للعثور على المشتق غير السالب للذيل لمفاتيح متعددة على واجهات متعددة بالبت/ثانية.
حدد Non_negative_derivative(mean("/cos/interfaces/interface/queues/queue/tailDropBytes"), 1s)*8 FROM "buffer" حيث (الجهاز::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 حسب الوقت($__interval)، الجهاز::tag ملء (خالية)
وكان هؤلاء بعض من السابقينampالرسوم البيانية التي يمكن إنشاؤها لمراقبة شبكة الذكاء الاصطناعي/تعلم الآلة.
ملخص
يوضح هذا البحث طريقة سحب بيانات القياس عن بعد وتصورها من خلال إنشاء الرسوم البيانية. تتحدث هذه الورقة على وجه التحديد عن مستشعرات الذكاء الاصطناعي/التعلم الآلي، سواء الأصلية أو المفتوحة، ولكن يمكن استخدام الإعداد لجميع أنواع المستشعرات. لقد قمنا أيضًا بتضمين حلول للعديد من المشكلات التي قد تواجهها أثناء إنشاء الإعداد. الخطوات والمخرجات الموضحة في هذه الورقة خاصة بإصدارات مجموعة TIG المذكورة سابقًا. وهو عرضة للتغيير وفقًا لإصدار البرنامج وأجهزة الاستشعار وإصدار Junos.
مراجع
Juniper Yang Data Model Explorer لجميع خيارات المستشعر
https://apps.juniper.net/ydm-explorer/
منتدى Openconfig لأجهزة استشعار openconfig
https://www.openconfig.net/projects/models/
مقر الشركة والمبيعات
شركة جونيبر نتوركس
1133 طريق الابتكار
صنيفيل ، كاليفورنيا 94089 الولايات المتحدة الأمريكية
الهاتف: 888. جونيبر (888.586.4737)
أو +1.408.745.2000
الفاكس: +1.408.745.2100
www.juniper.net
مقر APAC و EMEA
جونيبر نتوركس إنترناشونال بي في
بوينج أفينيو 240
1119 بي زد شيفول-ريجك
أمستردام، هولندا
الهاتف: +31.207.125.700
الفاكس: +31.207.125.701
حقوق الطبع والنشر لعام 2023 محفوظة لشركة جونيبر نتوركس. شركة جميع الحقوق محفوظة. تعد Juniper Networks وشعار Juniper Networks وJuniper وJunos والعلامات التجارية الأخرى علامات تجارية مسجلة لشركة Juniper Networks. شركة. و/أو الشركات التابعة لها في الولايات المتحدة ودول أخرى. قد تكون الأسماء الأخرى علامات تجارية لأصحابها. لا تتحمل شركة Juniper Networks أي مسؤولية عن أي معلومات غير دقيقة في هذه الوثيقة. تحتفظ شركة Juniper Networks بالحق في التغيير. يُعدِّل. نقل أو مراجعة هذا المنشور دون إشعار.
أرسل تعليقك إلى: design-center-comments@juniper.net V1.0/240807/ejm5-القياس عن بعد-junos-ai-ml
المستندات / الموارد
![]() |
القياس عن بعد من Juniper NETWORKS في Junos لبرنامج أحمال عمل AI ML [بي دي اف] دليل المستخدم القياس عن بعد في Junos for AI ML Workloads Software، Junos for AI ML Workloads Software، AI ML Workloads Software، Workloads Software، Software |