Juniper NETWORKS - логоТелеметрия в Junos за AI/ML работни натоварвания
Автор: Шалини Мукерджи

Въведение

Тъй като AI клъстерният трафик изисква мрежи без загуби с висока пропускателна способност и ниска латентност, критичен елемент от AI мрежата е събирането на данни за наблюдение. Junos Telemetry позволява детайлно наблюдение на ключови показатели за ефективност, включително прагове и броячи за управление на задръстванията и балансиране на натоварването на трафика. gRPC сесиите поддържат поточно предаване на телеметрични данни. gRPC е модерна рамка с отворен код и висока производителност, която е изградена на HTTP/2 транспорт. Той дава възможност за собствени възможности за двупосочен стрийминг и включва гъвкави персонализирани метаданни в заглавките на заявките. Първоначалната стъпка в телеметрията е да знаете какви данни трябва да се събират. След това можем да анализираме тези данни в различни формати. След като съберем данните, е важно да ги представим във формат, който е лесен за наблюдение, вземане на решения и подобряване на предлаганата услуга. В тази статия използваме стек за телеметрия, състоящ се от Telegraf, InfluxDB и Grafana. Този телеметричен стек събира данни с помощта на модел за насочване. Традиционните модели на изтегляне са ресурсоемки, изискват ръчна намеса и могат да включват информационни пропуски в данните, които събират. Push моделите преодоляват тези ограничения, като доставят данни асинхронно. Те обогатяват данните, като използват лесен за използване tags и имена. След като данните са в по-четлив формат, ние ги съхраняваме в база данни и ги използваме в интерактивна визуализация web приложение за анализ на мрежата. Фигура. 1 ни показва как този стек е проектиран за ефективно събиране на данни, съхранение и визуализация, от мрежови устройства, изпращащи данни към колектора, до данните, които се показват на таблата за управление за анализ.

Juniper NETWORKS Телеметрия в софтуера Junos за AI ML Workloads -

TIG стек

Използвахме Ubuntu сървър, за да инсталираме целия софтуер, включително TIG стека.

Телеграф
За събиране на данни използваме Telegraf на Ubuntu сървър, работещ с 22.04.2. Версията на Telegraf, работеща в тази демонстрация, е 1.28.5.
Telegraf е управляван от приставки сървърен агент за събиране и отчитане на показатели. Използва процесор plugins за обогатяване и нормализиране на данните. Изходът plugins се използват за изпращане на тези данни до различни хранилища на данни. В този документ използваме две plugins: един за сензори openconfig, а другият за собствени сензори на Juniper.
InfluxDB
За да съхраняваме данните в база данни с времеви редове, използваме InfluxDB. Плъгинът за изход в Telegraf изпраща данните към InfluxDB, който ги съхранява по много ефективен начин. Използваме V1.8, тъй като няма наличен CLI за V2 и по-нови.
Графана
Grafana се използва за визуализиране на тези данни. Grafana изтегля данните от InfluxDB и позволява на потребителите да създават богати и интерактивни табла за управление. Тук работим с версия 10.2.2.

Конфигурация на превключвателя

За да реализираме този стек, първо трябва да конфигурираме превключвателя, както е показано на Фигура 2. Използвали сме порт 50051. Тук може да се използва всеки порт. Влезте в превключвателя QFX и добавете следната конфигурация.

Juniper NETWORKS Телеметрия в софтуера Junos за AI ML Workloads – Switch

Забележка: Тази конфигурация е за лаборатории/POC, тъй като паролата се предава в чист текст. Използвайте SSL, за да избегнете това.

Околна среда

Juniper NETWORKS Телеметрия в Junos за AI ML Workloads Software - Околна среда

Nginx
Това е необходимо, ако не можете да разкриете порта, на който се хоства Grafana. Следващата стъпка е да инсталирате nginx на сървъра на Ubuntu, за да служи като обратен прокси агент. След като nginx е инсталиран, добавете редовете, показани на Фигура 4, към файла „по подразбиране“ и преместете файла от /etc/nginx в /etc/nginx/sites-enabled.

Juniper NETWORKS Телеметрия в Junos за AI ML Workloads Software - Nginx

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx1

Уверете се, че защитната стена е настроена, за да дава пълен достъп до услугата nginx, както е показано на фигура 5.

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx2

След като nginx бъде инсталиран и необходимите промени са направени, трябва да имаме достъп до Grafana от a web браузър, като използвате IP адреса на Ubuntu сървъра, където е инсталиран целият софтуер.
Има малък проблем в Grafana, който не ви позволява да нулирате паролата по подразбиране. Използвайте тези стъпки, ако се натъкнете на този проблем.
Стъпки, които трябва да се извършат на сървъра на Ubuntu, за да зададете паролата в Grafana:

  • Отидете на /var/lib/grafana/grafana.db
  • Инсталирайте sqllite3
    o sudo apt инсталирайте sqlite3
  • Изпълнете тази команда на вашия терминал
    o sqlite3 grafana.db
  •  Отваря се командния ред на Sqlite; изпълнете следната заявка:
    > изтриване от потребител, където login='admin'
  • Рестартирайте grafana и въведете admin като потребителско име и парола. Той подканва за нова парола.

След като целият софтуер е инсталиран, създайте конфигурационен файл в Telegraf, който ще ви помогне да изтеглите телеметричните данни от превключвателя и да ги изпратите към InfluxDB.

Openconfig сензорен плъгин

На сървъра на Ubuntu редактирайте файла /etc/telegraf/telegraf.conf, за да добавите всички необходими plugins и сензори. За сензорите openconfig използваме плъгина gNMI, показан на фигура 6. За демонстрационни цели добавете името на хоста като „spine1“, номера на порта „50051“, който се използва за gRPC, потребителското име и паролата на превключвателя и номера секунди за повторно набиране в случай на повреда.
В строфата за абонамент добавете уникално име, „cpu“ за този конкретен сензор, пътя на сензора и интервала от време за извличане на тези данни от комутатора. Добавете една и съща добавка inputs.gnmi и inputs.gnmi.subscription за всички отворени конфигурационни сензори. (Фигура 6)

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx3

Приставка за собствен сензор

Това е приставка за телеметричен интерфейс на Juniper, използвана за собствени сензори. В същия файл telegraf.conf добавете родния сензорен плъгин inputs.jti_openconfig_telemetry, където полетата са почти същите като openconfig. Използвайте уникален клиентски идентификатор за всеки сензор; тук използваме „telegraf3“. Уникалното име, използвано тук за този сензор, е „mem“ (Фигура 7).

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx4

И накрая, добавете изходен плъгин outputs.influxdb, за да изпратите тези данни от сензора към InfluxDB. Тук базата данни е наречена „telegraf“ с потребителско име „influx” и парола „influxdb” (Фигура 8).

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx5

След като редактирате файла telegraf.conf, рестартирайте услугата telegraf. Сега проверете в InfluxDB CLI, за да се уверите дали измерванията са създадени за всички уникални сензори. Въведете „influx”, за да влезете в InfluxDB CLI.

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx6

Както се вижда на фигура. 9, въведете подканата на influxDB и използвайте базата данни „telegraf”. Всички уникални имена, дадени на сензорите, са посочени като измервания.
За да видите резултата от което и да е едно измерване, само за да се уверите, че телеграфният файл е правилен и сензорът работи, използвайте командата „изберете * от ограничение на процесора 1“, както е показано на Фигура 10.

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx7

Всеки път, когато се правят промени във файла telegraf.conf, не забравяйте да спрете InfluxDB, рестартирайте Telegraf и след това стартирайте InfluxDB.
Влезте в Grafana от браузъра и създайте табла за управление, след като се уверите, че данните се събират правилно.
Отидете на Connections > InfuxDB > Add new data source.

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx8

  1. Дайте име на този източник на данни. В тази демонстрация това е „тест-1“.
  2.  Под HTTP строфата използвайте IP адреса на сървъра на Ubuntu и 8086 порт.
    Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx9
  3. В подробностите за InfluxDB използвайте същото име на база данни, „telegraf“, и предоставете потребителското име и паролата на Ubuntu сървъра.
  4. Щракнете върху Запазване и тестване. Уверете се, че виждате съобщението „успешно“.
    Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания на AI ML - Nginx10
  5. След като източникът на данни бъде добавен успешно, отидете на Табла за управление и щракнете върху Нов. Нека създадем няколко табла за управление, които са от съществено значение за работните натоварвания на AI/ML в режим на редактор.

ExampLes Of Sensor Graphs

Следните са прampфайлове на някои основни броячи, които са от съществено значение за наблюдение на AI/ML мрежа.
Процентtage използване за входен интерфейс et-0/0/0 на spine-1
Juniper NETWORKS Телеметрия в софтуера Junos за AI ML Workloads – Графики

  • Изберете източник на данни като test-1.
  • В секцията FROM изберете измерването като „интерфейс“. Това е уникалното име, използвано за този сензорен път.
  • В секцията WHERE изберете устройство ::tag, и в tag стойност, изберете името на хоста на превключвателя, тоест spine1.
  • В секцията ИЗБОР изберете клона на сензора, който искате да наблюдавате; в този случай изберете „field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”. Сега в същия раздел щракнете върху „+“ и добавете тази математика за изчисление (/50000000000 * 100). Ние основно изчисляваме процентаtage използване на 400G интерфейс.
  • Уверете се, че FORMAT е „time-series“ и наименувайте графиката в секцията ALIAS.

Juniper NETWORKS Телеметрия в софтуера Junos за AI ML Workloads – Графики1Пикова заетост на буфера за всяка опашка

Juniper NETWORKS Телеметрия в софтуера Junos за AI ML Workloads – Графики2

  • Изберете източник на данни като test-1.
  • В секцията FROM изберете измерването като „буфер“.
  • В секцията WHERE има три полета за попълване. Изберете устройство ::tag, и в tag стойност изберете името на хоста на превключвателя (т.е. spine-1); И изберете /cos/interfaces/interface/@name::tag и изберете интерфейса (т.е. et-0/0/0); И изберете и опашката, /cos/interfaces/interface/queues/queue/@queue::tag и изберете опашката номер 4.
  • В секцията ИЗБОР изберете клона на сензора, който искате да наблюдавате; в този случай изберете „поле(/cos/interfaces/interface/queues/queue/PeakBuerOccupancy).“
  • Уверете се, че FORMAT е „time-series“ и наименувайте графиката в секцията ALIAS.

Можете да събирате данни за множество интерфейси на една и съща графика, както се вижда на фигура 17 за et-0/0/0, et-0/0/1, et-0/0/2 и т.н.

Juniper NETWORKS Телеметрия в софтуера Junos за AI ML Workloads – Графики3

PFC и ECN средна производна
Juniper NETWORKS Телеметрия в Junos за AI ML Workloads Software - производно

За намиране на средната производна (разликата в стойността в рамките на времеви диапазон), използвайте режима на необработена заявка.
Това е запитването за приток, което сме използвали, за да намерим средната производна между две PFC стойности на et-0/0/0 на Spine-1 за секунда.
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interface” WHERE (“device”::tag = 'Spine-1') И $timeFilter ГРУПИРАНЕ ПО време ($interval)

Juniper NETWORKS Телеметрия в Junos за AI ML Workloads Software - подобно за ECN

SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interface” WHERE (“устройство”::tag = 'Spine-1') И $timeFilter ГРУПИРАНЕ ПО време ($interval)

Juniper NETWORKS Telemetry в Junos за AI ML Workloads Software - подобно за ECN1

Грешките на входния ресурс означават производна

Juniper NETWORKS Telemetry в Junos за AI ML Workloads Software - подобно за ECN2

Необработената заявка за грешки в ресурсите означава производна е:
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interface” WHERE (“устройство”::tag = 'Spine-1') И $timeFilter ГРУПИРАНЕ ПО време ($interval)

Juniper NETWORKS Telemetry в Junos за AI ML Workloads Software - подобно за ECN3

Капките на опашката означават производно

Juniper NETWORKS Telemetry в Junos за AI ML Workloads Software - подобно за ECN4

Необработената заявка за производна на средната стойност на опашката е:
SELECT derivative(mean(“/cos/interfaces/interface/queues/queues/queue/tailDropBytes”), 1s) FROM “буфер” WHERE (“устройство”::tag = 'Leaf-1' И “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' И “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') И $timeFilter ГРУПИРАНЕ ПО time($__interval) fill(null)
 Използване на процесора

Juniper NETWORKS Телеметрия в Junos за AI ML Workloads Software - използване на процесора

  • Изберете източник на данни като test-1.
  • В секцията FROM изберете измерването като „newcpu“
  • В WHERE има три полета за попълване. Изберете устройство ::tag и в tag стойност изберете името на хоста на превключвателя (т.е. spine-1). И в /components/component/properties/property/name:tagи изберете cpuutilization-total И в name::tag изберете RE0.
  • В секцията ИЗБОР изберете клона на сензора, който искате да наблюдавате. В този случай изберете „поле (състояние/стойност)“.

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания AI ML - използване на процесора1

Необработената заявка за намиране на неотрицателната производна на опашката за множество превключватели на множество интерфейси в битове/сек.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “буфер” WHERE (устройство::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 ГРУПИРАНЕ ПО time($__interval),device::tag запълване (нула)

Juniper NETWORKS Телеметрия в Junos за софтуер за работни натоварвания AI ML - използване на процесора2

Това бяха някои от бившитеampфайлове от графиките, които могат да бъдат създадени за наблюдение на AI/ML мрежа.

Резюме

Тази статия илюстрира метода за извличане на телеметрични данни и визуализирането им чрез създаване на графики. Този документ конкретно говори за AI/ML сензори, както собствени, така и openconfig, но настройката може да се използва за всички видове сензори. Също така сме включили решения за множество проблеми, с които може да се сблъскате, докато създавате настройката. Стъпките и резултатите, описани в този документ, са специфични за версиите на стека TIG, споменат по-рано. Подлежи на промяна в зависимост от версията на софтуера, сензорите и версията на Junos.

Референции

Juniper Yang Data Model Explorer за всички сензорни опции
https://apps.juniper.net/ydm-explorer/
Openconfig форум за openconfig сензори
https://www.openconfig.net/projects/models/

Juniper NETWORKS Телеметрия в Junos за AI ML Workloads Software - икона

Корпоративна и търговска централа
Juniper Networks, Inc.
1133 Иновационен път
Сънивейл, Калифорния 94089 САЩ
Телефон: 888. JUNIPER (888.586.4737)
или +1.408.745.2000
Факс: +1.408.745.2100
www.juniper.net
Централни офиси на APAC и EMEA
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Амстердам, Холандия
Телефон: +31.207.125.700
Факс: +31.207.125.701
Авторско право 2023 Juniper Networks. Inc. Всички права запазени. Juniper Networks, логото на Juniper Networks, Juniper, Junos и други търговски марки са регистрирани търговски марки на Juniper Networks. вкл. и/или неговите филиали в Съединените щати и други страни. Други имена може да са търговски марки на съответните им собственици. Juniper Networks не поема отговорност за неточности в този документ. Juniper Networks си запазва правото на промени. променям. прехвърляне или по друг начин да преработите тази публикация без предизвестие.
Изпратете обратна връзка до: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

Документи / Ресурси

Juniper NETWORKS Телеметрия в софтуера Junos за AI ML [pdf] Ръководство за потребителя
Телеметрия в Junos за AI ML софтуер за работни натоварвания, Junos за AI ML софтуер за работни натоварвания, AI ML софтуер за работни натоварвания, софтуер за работни натоварвания, софтуер

Референции

Оставете коментар

Вашият имейл адрес няма да бъде публикуван. Задължителните полета са маркирани *