Juniper NETWORKS- logotipiAI/ML ish yuklari uchun Junos-da telemetriya
Muallif: Shalini Mukherji

Kirish

AI klaster trafigi yuqori o'tkazuvchanlik va past kechikish bilan yo'qotishsiz tarmoqlarni talab qilganligi sababli, AI tarmog'ining muhim elementi monitoring ma'lumotlarini yig'ishdir. Junos Telemetry asosiy ishlash ko'rsatkichlarini, jumladan, tirbandlikni boshqarish va transport yukini muvozanatlash uchun chegaralar va hisoblagichlarni batafsil kuzatish imkonini beradi. gRPC seanslari telemetriya ma'lumotlarini uzatishni qo'llab-quvvatlaydi. gRPC HTTP/2 transportida qurilgan zamonaviy, ochiq manbali, yuqori unumdorlikdagi tizimdir. U mahalliy ikki tomonlama oqim imkoniyatlarini kengaytiradi va so'rov sarlavhalarida moslashuvchan moslashtirilgan metama'lumotlarni o'z ichiga oladi. Telemetriyadagi dastlabki qadam qanday ma'lumotlarni to'plash kerakligini bilishdir. Keyin biz ushbu ma'lumotlarni turli formatlarda tahlil qilishimiz mumkin. Maʼlumotlarni toʻplaganimizdan soʻng uni kuzatish, qaror qabul qilish va taklif etilayotgan xizmatni yaxshilash oson boʻlgan formatda taqdim etish muhim. Ushbu maqolada biz Telegraf, InfluxDB va Grafanadan iborat telemetriya stekidan foydalanamiz. Ushbu telemetriya to'plami push modeli yordamida ma'lumotlarni to'playdi. An'anaviy tortish modellari resurslarni ko'p talab qiladi, qo'lda aralashuvni talab qiladi va ular to'playdigan ma'lumotlarda ma'lumot bo'shliqlarini o'z ichiga olishi mumkin. Push modellari ma'lumotlarni asinxron tarzda yetkazib berish orqali ushbu cheklovlarni yengib chiqadi. Ular foydalanuvchilarga qulay foydalanish orqali ma'lumotlarni boyitadi tags va ismlar. Ma'lumotlar o'qilishi mumkin bo'lgan formatga ega bo'lgach, biz uni ma'lumotlar bazasida saqlaymiz va interaktiv vizualizatsiyada foydalanamiz web tarmoqni tahlil qilish uchun dastur. Rasm. 1-rasmda ushbu stek qanday qilib samarali ma'lumotlarni yig'ish, saqlash va vizualizatsiya qilish uchun mo'ljallanganligini ko'rsatadi, tarmoq qurilmalari ma'lumotlarni kollektorga uzatadi va tahlil qilish uchun asboblar panelida ko'rsatiladi.

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya -

TIG to'plami

Biz barcha dasturlarni, shu jumladan TIG stekini o'rnatish uchun Ubuntu serveridan foydalandik.

telegraf
Ma'lumot to'plash uchun biz 22.04.2 ishlaydigan Ubuntu serverida Telegrafdan foydalanamiz. Ushbu demoda ishlaydigan Telegraf versiyasi 1.28.5.
Telegraf - bu ko'rsatkichlarni to'plash va hisobot berish uchun plaginga asoslangan server agenti. Bu protsessordan foydalanadi plugins ma'lumotlarni boyitish va normallashtirish. Chiqish plugins Ushbu ma'lumotlarni turli xil ma'lumotlar do'konlariga yuborish uchun ishlatiladi. Ushbu hujjatda biz ikkitadan foydalanamiz plugins: biri openconfig sensorlari uchun, ikkinchisi esa Juniper mahalliy sensorlari uchun.
InfluxDB
Vaqt seriyali ma'lumotlar bazasida ma'lumotlarni saqlash uchun biz InfluxDB dan foydalanamiz. Telegraf-dagi chiqish plagini ma'lumotlarni InfluxDB-ga yuboradi, bu esa uni juda samarali tarzda saqlaydi. Biz V1.8 dan foydalanmoqdamiz, chunki V2 va undan yuqori versiyalar uchun CLI mavjud emas.
Grafana
Grafana ushbu ma'lumotlarni vizualizatsiya qilish uchun ishlatiladi. Grafana InfluxDB dan ma'lumotlarni oladi va foydalanuvchilarga boy va interaktiv boshqaruv panellarini yaratishga imkon beradi. Bu erda biz 10.2.2 versiyasini ishga tushirmoqdamiz.

Kommutatordagi konfiguratsiya

Ushbu stekni amalga oshirish uchun avvalo kalitni 2-rasmda ko'rsatilganidek sozlashimiz kerak. Biz 50051 portdan foydalandik. Bu yerda istalgan portdan foydalanish mumkin. QFX kalitiga kiring va quyidagi konfiguratsiyani qo'shing.

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos-da telemetriya - Switch

Eslatma: Ushbu konfiguratsiya laboratoriyalar/POClar uchundir, chunki parol aniq matnda uzatiladi. Buning oldini olish uchun SSL dan foydalaning.

Atrof-muhit

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - Atrof-muhit

Nginx
Agar siz Grafana joylashgan portni ko'rsata olmasangiz, bu kerak bo'ladi. Keyingi qadam teskari proksi-agent sifatida xizmat qilish uchun Ubuntu serveriga nginx-ni o'rnatishdir. Nginx o'rnatilgandan so'ng, 4-rasmda ko'rsatilgan qatorlarni "standart" faylga qo'shing va faylni /etc/nginx dan /etc/nginx/sites-enabled ga o'tkazing.

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx1

5-rasmda ko'rsatilganidek, xavfsizlik devori nginx xizmatiga to'liq kirish imkonini beradigan tarzda sozlanganligiga ishonch hosil qiling.

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx2

Nginx o'rnatilgach va kerakli o'zgarishlar amalga oshirilgach, biz Grafana-ga a orqali kira olishimiz kerak web barcha dasturiy ta'minot o'rnatilgan Ubuntu serverining IP manzilidan foydalangan holda brauzer.
Grafana-da standart parolni tiklashga imkon bermaydigan kichik xatolik mavjud. Agar siz ushbu muammoga duch kelsangiz, ushbu qadamlardan foydalaning.
Grafana-da parolni o'rnatish uchun Ubuntu serverida bajarilishi kerak bo'lgan qadamlar:

  • /var/lib/grafana/grafana.db sahifasiga o'ting
  • Sqllite3 ni o'rnating
    o sudo apt install sqlite3
  • Ushbu buyruqni terminalda ishga tushiring
    o sqlite3 grafana.db
  •  Sqlite buyruq satri ochiladi; quyidagi so'rovni bajaring:
    >login='admin' bo'lgan foydalanuvchidan o'chirish
  • Granani qayta ishga tushiring va foydalanuvchi nomi va parol sifatida adminni kiriting. U yangi parolni so'raydi.

Barcha dasturiy ta'minot o'rnatilgandan so'ng, Telegraf-da konfiguratsiya faylini yarating, bu telemetriya ma'lumotlarini kalitdan tortib olishga va uni InfluxDB-ga surishga yordam beradi.

Openconfig Sensor plagini

Ubuntu serverida barcha kerakli fayllarni qo'shish uchun /etc/telegraf/telegraf.conf faylini tahrirlang. plugins va sensorlar. Openconfig sensorlari uchun biz 6-rasmda ko‘rsatilgan gNMI plaginidan foydalanamiz. Namoyish maqsadida host nomini “spine1”, gRPC uchun ishlatiladigan “50051” port raqami, kalitning foydalanuvchi nomi va paroli hamda raqamni qo‘shing. Muvaffaqiyatsiz bo'lganda qayta terish uchun soniya.
Obuna satrida ushbu sensor uchun noyob nom, "cpu", sensor yo'li va ushbu ma'lumotni kalitdan olish uchun vaqt oralig'ini qo'shing. Barcha ochiq konfiguratsiya sensorlari uchun inputs.gnmi va inputs.gnmi.subscription plaginlarini qo'shing. (6-rasm)

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx3

Native sensor plagin

Bu mahalliy sensorlar uchun ishlatiladigan Juniper telemetriya interfeysi plaginidir. Xuddi shu telegraf.conf fayliga inputs.jti_openconfig_telemetry mahalliy sensor plaginini qo'shing, bu erda maydonlar openconfig bilan deyarli bir xil bo'ladi. Har bir sensor uchun noyob mijoz identifikatoridan foydalaning; Bu erda biz "telegraf3" dan foydalanamiz. Ushbu sensor uchun bu erda ishlatiladigan noyob nom "mem" (7-rasm).

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx4

Nihoyat, ushbu sensor ma'lumotlarini InfluxDB ga yuborish uchun outputs.influxdb chiqish plaginini qo'shing. Bu yerda maʼlumotlar bazasi “telegraf” deb nomlanadi, foydalanuvchi nomi “influx” va parol “influxdb” (8-rasm).

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx5

Telegraf.conf faylini tahrir qilganingizdan so'ng telegraf xizmatini qayta ishga tushiring. Endi InfluxDB CLI-ni tekshiring va barcha noyob sensorlar uchun o'lchovlar yaratilganligiga ishonch hosil qiling. InfluxDB CLI ga kirish uchun “influx” ni kiriting.

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx6

Rasmda ko'rsatilganidek. 9, influxDB so'rovini kiriting va "telegraf" ma'lumotlar bazasidan foydalaning. Sensorlarga berilgan barcha noyob nomlar o'lchovlar sifatida keltirilgan.
Har qanday o'lchov natijasini ko'rish uchun telegraf fayli to'g'ri ekanligiga va sensor ishlayotganiga ishonch hosil qilish uchun 1-rasmda ko'rsatilganidek, "Cpu limit 10 dan * ni tanlang" buyrug'idan foydalaning.

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx7

Har safar telegraf.conf fayliga oʻzgartirish kiritilganda, InfluxDB-ni toʻxtatib, Telegraf-ni qayta ishga tushiring va keyin InfluxDB-ni ishga tushiring.
Brauzerdan Grafana-ga kiring va ma'lumotlar to'g'ri to'planganiga ishonch hosil qilgandan so'ng asboblar paneli yarating.
Ulanishlar > InfuxDB > Yangi ma’lumotlar manbasini qo‘shish-ga o‘ting.

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx8

  1. Ushbu ma'lumot manbasiga nom bering. Ushbu demoda bu "test-1".
  2.  HTTP stanzasi ostida Ubuntu server IP va 8086 portidan foydalaning.
    Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx9
  3. InfluxDB tafsilotlarida bir xil ma'lumotlar bazasi nomi, "telegraf" dan foydalaning va Ubuntu serverining foydalanuvchi nomi va parolini kiriting.
  4. "Saqlash va sinov" tugmasini bosing. "Muvaffaqiyatli" degan xabarni ko'rganingizga ishonch hosil qiling.
    Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Nginx10
  5. Ma'lumotlar manbai muvaffaqiyatli qo'shilgandan so'ng, asboblar paneliga o'ting va Yangi tugmasini bosing. Keling, muharrir rejimida AI/ML ish yuklari uchun zarur bo'lgan bir nechta asboblar panelini yarataylik.

ExampSensor grafiklari

Quyidagilar sobiqampAI/ML tarmog'ini kuzatish uchun zarur bo'lgan ba'zi asosiy hisoblagichlar.
Foiztage umurtqa-0 da kirish interfeysi et-0/0/1 uchun foydalanish
Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Grafiklar

  • Test-1 sifatida ma'lumotlar manbasini tanlang.
  • FROM bo'limida o'lchovni "interfeys" sifatida tanlang. Bu sensor yo'li uchun ishlatiladigan noyob nom.
  • QAYER bo'limida qurilmani tanlang::tag, va ichida tag qiymat, kalitning xost nomini tanlang, ya'ni spine1.
  • SELECT bo'limida siz kuzatmoqchi bo'lgan sensor tarmog'ini tanlang; bu holda “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”ni tanlang. Endi xuddi shu bo'limda "+" tugmasini bosing va ushbu hisob-kitob matematikasini qo'shing (/50000000000 * 100). Biz asosan foizni hisoblaymiztage 400G interfeysidan foydalanish.
  • FORMAT "vaqt seriyasi" ekanligiga ishonch hosil qiling va ALIAS bo'limidagi grafikni nomlang.

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Grafiklar1Har qanday navbat uchun buferning eng yuqori bandligi

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Grafiklar2

  • Test-1 sifatida ma'lumotlar manbasini tanlang.
  • FROM bo'limida o'lchovni "bufer" sifatida tanlang.
  • QAYER bo'limida to'ldirish uchun uchta maydon mavjud. Qurilmani tanlang::tag, va ichida tag qiymat kommutatorning xost nomini tanlang (ya'ni orqa miya-1); VA /cos/interfaces/interface/@name ni tanlang::tag va interfeysni tanlang (ya'ni et- 0/0/0); VA navbatni ham tanlang, /cos/interfaces/interface/queues/queue/@queue::tag va navbat raqami 4 ni tanlang.
  • SELECT bo'limida siz kuzatmoqchi bo'lgan sensor tarmog'ini tanlang; bu holda “field(/cos/interfaces/interface/queues/queue/PeakBufierOccupancy)”ni tanlang.
  • FORMAT "vaqt qatori" ekanligiga ishonch hosil qiling va ALIAS bo'limida grafikni nomlang.

Siz et-17/0/0, et-0/0/0, et-1/0/0 va boshqalar uchun 2-rasmda ko'rsatilganidek, bir xil grafikda bir nechta interfeyslar uchun ma'lumotlarni jamlashingiz mumkin.

Juniper NETWORKS AI ML ish yuklari dasturi uchun Junos-da telemetriya - Grafiklar3

PFC va ECN lotin degan ma'noni anglatadi
Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - lotin

O'rtacha hosilani (vaqt oralig'idagi qiymatdagi farq) topish uchun xom so'rov rejimidan foydalaning.
Bu biz bir soniya ichida Spine-0 ning et-0/0/1 da ikkita PFC qiymati orasidagi o'rtacha lotinni topish uchun foydalangan oqim so'rovidir.
SELECT lotin(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interfeys” QERDA (“qurilma”::tag = 'Spine-1') VA $timeFilter GROUP BY Time($interval)

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - ECN uchun xuddi shunday

SELECT lotin(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interfeys” QERDA (“qurilma”::tag = 'Spine-1') VA $timeFilter GROUP BY Time($interval)

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - ECN1 uchun xuddi shunday

Kirish manbalari xatolari lotin degan ma'noni anglatadi

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - ECN2 uchun xuddi shunday

Resurs xatolari uchun xom so'rov lotin degan ma'noni anglatadi:
SELECT lotin(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interfeys” QERDA (“qurilma”::tag = 'Spine-1') VA $timeFilter GROUP BY Time($interval)

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - ECN3 uchun xuddi shunday

Quyruq tomchilari hosila degan ma'noni anglatadi

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - ECN4 uchun xuddi shunday

Quyruq tomchilari uchun xom so'rov lotin degan ma'noni anglatadi:
SELECT lotin(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “bufer” dan WHERE (“qurilma”::tag = 'Leaf-1' VA “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' VA “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') VA $timeFilter GROUP BY vaqt ($__interval) to'ldirish(null)
 CPU foydalanish

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - protsessordan foydalanish

  • Test-1 sifatida ma'lumotlar manbasini tanlang.
  • FROM bo'limida o'lchovni "newcpu" sifatida tanlang.
  • WHERE da to'ldirish uchun uchta maydon mavjud. Qurilmani tanlang::tag va ichida tag qiymat kalitning xost nomini tanlang (ya'ni, orqa miya-1). VA /components/component/properties/property/nameda:tag, va cpuutilization-jami VA ni tanlang::tag RE0 ni tanlang.
  • SELECT bo'limida siz kuzatmoqchi bo'lgan sensor tarmog'ini tanlang. Bunday holda, "maydon (holat/qiymat)" ni tanlang.

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - CPUdan foydalanish1

Bit/sek.dagi bir nechta interfeysdagi bir nechta kalitlar uchun quyruq tomchilarining salbiy bo'lmagan hosilasini topish uchun xom so'rov.
Manfiy bo'lmagan_hosilini(mean("/cos/interfaces/interface/queues/queue/tailDropBytes"), 1s)*8 "bufer" dan QAYERDA (qurilma::tag =~ /^Spine-[1-2]$/) va (“/cos/interfaces/interface/@name”::tag =~ /et-0\/0\/[0-9]/ yoki “/cos/interfaces/interface/@name”::tag=~/et-0\/0\/1[0-5]/) VA $timeFilter GROUP BY Time($__interval),device::tag to'ldirish (null)

Juniper NETWORKS AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya - CPUdan foydalanish2

Bular sobiqlarning ba'zilari ediampAI/ML tarmog'ini kuzatish uchun yaratilishi mumkin bo'lgan grafiklar.

Xulosa

Ushbu maqola telemetriya ma'lumotlarini olish va grafiklarni yaratish orqali vizualizatsiya qilish usulini ko'rsatadi. Ushbu maqolada mahalliy va ochiq konfiguratsiyali AI/ML sensorlari haqida so'z boradi, ammo sozlash barcha turdagi sensorlar uchun ishlatilishi mumkin. Shuningdek, biz sozlashni yaratishda duch kelishi mumkin bo'lgan bir nechta muammolar uchun echimlarni kiritdik. Ushbu maqolada tasvirlangan qadamlar va natijalar yuqorida aytib o'tilgan TIG stekining versiyalariga xosdir. U dasturiy ta'minot, sensorlar va Junos versiyasiga qarab o'zgarishi mumkin.

Ma'lumotnomalar

Juniper Yang Data Model Explorer barcha sensorlar uchun
https://apps.juniper.net/ydm-explorer/
Openconfig sensorlari uchun Openconfig forumi
https://www.openconfig.net/projects/models/

Juniper NETWORKS AI ML Workloads dasturi uchun Junos-da telemetriya - belgi

Korporativ va savdo shtab-kvartirasi
Juniper Networks, Inc.
1133 Innovatsion yo'l
Sunnyvale, CA 94089, AQSh
Telefon: 888. JUNIPER (888.586.4737)
yoki +1.408.745.2000
Faks: +1.408.745.2100
www.juniper.net
APAC va EMEA shtab-kvartirasi
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Niderlandiya
Telefon: +31.207.125.700
Faks: +31.207.125.701
Mualliflik huquqi 2023 Juniper Networks. Inc. Ail huquqlari himoyalangan. Juniper Networks, Juniper Networks logotipi, Juniper, Junos va boshqa savdo belgilari Juniper Networks kompaniyasining roʻyxatdan oʻtgan savdo belgilaridir. inc. va/yoki uning Qo'shma Shtatlardagi va boshqa mamlakatlardagi filiallari. Boshqa nomlar tegishli egalarining savdo belgilari bo'lishi mumkin. Juniper Networks ushbu hujjatdagi noaniqliklar uchun javobgarlikni o'z zimmasiga olmaydi. Juniper Networks o'zgartirish huquqini o'zida saqlab qoladi. o'zgartirish. o'tkazish yoki ogohlantirishsiz ushbu nashrni boshqacha tarzda qayta ko'rib chiqish.
Fikr-mulohaza yuboring: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

Hujjatlar / manbalar

Juniper NETWORKS AI ML Workloads dasturi uchun Junos-da telemetriya [pdf] Foydalanuvchi uchun qoʻllanma
AI ML ish yuklari dasturiy ta'minoti uchun Junos'da telemetriya, AI ML ish yuklari dasturiy ta'minoti uchun Junos, AI ML ish yuklari dasturiy ta'minoti, ish yuklari dasturiy ta'minoti, dasturiy ta'minot

Ma'lumotnomalar

Fikr qoldiring

Sizning elektron pochta manzilingiz nashr etilmaydi. Majburiy maydonlar belgilangan *