Juniper NETWORKS- логоТелеметрија во Junos за оптоварување со AI/ML
Автор: Шалини Мукерџи

Вовед

Бидејќи сообраќајот на кластерот за вештачка интелигенција бара мрежи без загуби со висока пропусност и мала латентност, критичен елемент на мрежата на вештачка интелигенција е собирањето податоци за следење. Junos Telemetry овозможува грануларно следење на клучните индикатори за перформанси, вклучувајќи прагови и бројачи за управување со застојот и балансирање на сообраќајното оптоварување. Сесиите на gRPC поддржуваат стриминг на телеметриски податоци. gRPC е модерна рамка со отворен код, со високи перформанси која е изградена на HTTP/2 транспорт. Ги зајакнува можностите за природен двонасочен стриминг и вклучува флексибилни сопствени метаподатоци во заглавијата на барањата. Почетниот чекор во телеметријата е да се знае кои податоци треба да се соберат. Потоа можеме да ги анализираме овие податоци во различни формати. Откако ќе ги собереме податоците, важно е да ги претставиме во формат што е лесен за следење, донесување одлуки и подобрување на услугата што се нуди. Во овој труд, користиме стек за телеметрија што се состои од Telegraf, InfluxDB и Grafana. Овој телеметриски стек собира податоци со помош на модел на притисни. Традиционалните модели на влечење се интензивни за ресурси, бараат рачна интервенција и може да вклучат празнини во информациите во податоците што ги собираат. Push моделите ги надминуваат овие ограничувања со доставување податоци асинхроно. Тие ги збогатуваат податоците со користење на user-friendly tags и имиња. Откако податоците се во почитлив формат, ги складираме во база на податоци и ги користиме во интерактивна визуелизација web апликација за анализа на мрежата. Слика. 1 ни покажува како овој оџак е дизајниран за ефикасно собирање, складирање и визуелизација на податоци, од мрежни уреди што ги туркаат податоците до собирачот до податоците што се прикажуваат на контролните табли за анализа.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software -

ТИГ Стак

Користивме Ubuntu сервер за да го инсталираме целиот софтвер вклучувајќи го и оџакот TIG.

Телеграф
За собирање податоци, користиме Telegraf на сервер на Ubuntu кој работи на 22.04.2. Верзијата на Телеграф што работи во ова демо е 1.28.5.
Телеграф е сервер управуван од приклучоци за собирање и известување метрика. Користи процесор plugins за збогатување и нормализирање на податоците. Излезот plugins се користат за испраќање на овие податоци до различни продавници за податоци. Во овој документ користиме два plugins: еден за сензори со отворена конфигурација, а другиот за сензори на Juniper.
InfluxDB
За да ги зачуваме податоците во база на податоци за временски серии, користиме InfluxDB. Излезниот приклучок во Телеграф ги испраќа податоците до InfluxDB, кој ги складира на многу ефикасен начин. Ние користиме V1.8 бидејќи нема присутен CLI за V2 и погоре.
Графана
Графана се користи за визуелизација на овие податоци. Графана ги извлекува податоците од InfluxDB и им овозможува на корисниците да креираат богати и интерактивни контролни табли. Еве, ние работиме со верзија 10.2.2.

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

За да го имплементираме овој стек, прво треба да го конфигурираме прекинувачот како што е прикажано на слика 2. Ја користевме портата 50051. Секоја порта може да се користи овде. Најавете се на прекинувачот QFX и додајте ја следнава конфигурација.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Switch

Забелешка: Оваа конфигурација е за лаборатории/POC, бидејќи лозинката се пренесува во јасен текст. Користете SSL за да го избегнете ова.

Животна средина

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Environment

Нгинкс
Ова е потребно ако не можете да го изложите пристаништето на кое е хостирана Grafana. Следниот чекор е да се инсталира nginx на серверот Ubuntu за да служи како обратен прокси агент. Откако ќе се инсталира nginx, додајте ги линиите прикажани на Слика 4 во „стандардната“ датотека и преместете ја датотеката од /etc/nginx во /etc/nginx/sites-enabled.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx1

Осигурете се дека заштитниот ѕид е прилагоден за да овозможи целосен пристап до услугата nginx како што е прикажано на Слика 5.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx2

Откако ќе се инсталира nginx и ќе се направат потребните промени, треба да можеме да пристапиме до Grafana од a web прелистувач со користење на IP адресата на серверот Ubuntu каде што е инсталиран целиот софтвер.
Има мала грешка во Графана што не дозволува да ја ресетирате стандардната лозинка. Користете ги овие чекори ако наидете на овој проблем.
Чекори што треба да се извршат на серверот Ubuntu за поставување на лозинката во Grafana:

  • Одете на /var/lib/grafana/grafana.db
  • Инсталирајте sqllite3
    o sudo apt инсталирај sqlite3
  • Извршете ја оваа команда на вашиот терминал
    o sqlite3 grafana.db
  •  Се отвора командната линија Sqlite; извршете го следново барање:
    >избриши од корисникот каде што login='admin'
  • Рестартирајте ја grafana и внесете admin како корисничко име и лозинка. Бара нова лозинка.

Откако ќе се инсталира целиот софтвер, креирајте ја конфигурациската датотека во Telegraf која ќе помогне да се извлечат податоците за телеметрија од прекинувачот и да се туркаат на InfluxDB.

Приклучок за Openconfig Sensor

На серверот Ubuntu, уредете ја датотеката /etc/telegraf/telegraf.conf за да ги додадете сите потребни plugins и сензори. За сензорите opencong, го користиме приклучокот gNMI прикажан на слика 6. За демо цели, додајте го името на домаќинот како „spine1“, бројот на портата „50051“ што се користи за gRPC, корисничкото име и лозинката на прекинувачот и бројот од секунди за повторно бирање во случај на дефект.
Во строфата за претплата, додадете уникатно име, „процесор“ за овој конкретен сензор, патеката на сензорот и временскиот интервал за земање на овие податоци од прекинувачот. Додајте ги истите влезови за приклучок.gnmi и inputs.gnmi.претплата за сите отворени сензори за конфигурација. (Слика 6)

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx3

Приклучок за мајчин сензор

Ова е приклучок за интерфејс за телеметрија Juniper што се користи за природни сензори. Во истата датотека telegraf.conf, додајте ги приклучоците за мајчин сензор.jti_openconfig_telemetry каде што полињата се речиси исти како openconfig. Користете уникатен клиент ID за секој сензор; овде користиме „телеграф3“. Уникатното име што се користи овде за овој сензор е „мем“ (Слика 7).

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx4

На крај, додадете излезен приклучок outputs.influxdb за да ги испратите овие податоци од сензорот до InfluxDB. Овде, базата на податоци е именувана „телеграф“ со корисничко име како „прилив“ и лозинка „inuxdb“ (Слика 8).

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx5

Откако ќе ја уредите датотеката telegraf.conf, рестартирајте ја услугата telegraf. Сега, проверете во InuxDB CLI за да се уверите дали се создадени мерења за сите уникатни сензори. Внесете „прилив“ за да влезете во InfluxDB CLI.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx6

Како што се гледа на слика. 9, внесете го промптот influxDB и користете ја базата на податоци „телеграф“. Сите уникатни имиња дадени на сензорите се наведени како мерења.
За да го видите излезот од кое било мерење, само за да бидете сигурни дека датотеката телеграф е точна и дека сензорот работи, користете ја командата „избери * од границата на процесорот 1“ како што е прикажано на Слика 10.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx7

Секогаш кога се прават промени во датотеката telegraf.conf, проверете дали сте го прекинале InfluxDB, рестартирајте го Telegraf и потоа стартувајте го InfluxDB.
Најавете се на Grafana од прелистувачот и креирајте контролни табли откако ќе се уверите дека податоците се собираат правилно.
Одете во Конекции > InfuxDB > Додајте нов извор на податоци.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx8

  1. Дајте име на овој извор на податоци. Во оваа демонстрација е „тест-1“.
  2.  Под строфата HTTP, користете ја IP-серверот на Ubuntu и портата 8086.
    Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx9
  3. Во деталите за InfluxDB, користете го истото име на базата на податоци „telegraf“ и наведете ги корисничкото име и лозинката на серверот Ubuntu.
  4. Кликнете Зачувај и тестирај. Погрижете се да ја видите пораката „успешно“.
    Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Nginx10
  5. Откако изворот на податоци е успешно додаден, одете во Контролни табли и кликнете Ново. Дозволете ни да создадеме неколку контролни табли кои се од суштинско значење за оптоварувањата на AI/ML во режим на уредувач.

Examples на графикони на сензори

Следниве се прampнекои главни бројачи кои се од суштинско значење за следење на AI/ML мрежа.
Персенtage искористување за влезен интерфејс et-0/0/0 на 'рбетот-1
Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Graphics

  • Изберете го изворот на податоци како тест-1.
  • Во делот FROM, изберете го мерењето како „интерфејс“. Ова е единственото име што се користи за оваа патека на сензорот.
  • Во делот WHERE, изберете уред:tag, и во tag вредност, изберете го името на домаќинот на прекинувачот, односно 'рбетот1.
  • Во делот SELECT, изберете ја гранката на сензорот што сакате да ја следите; во овој случај изберете „field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)“. Сега во истиот дел, кликнете на „+“ и додадете ја оваа пресметковна математика (/50000000000 * 100). Ние во основа го пресметуваме процентотtage користење на интерфејс од 400G.
  • Проверете дали FORMAT-от е „временска серија“ и именувајте го графикот во делот ALIAS.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Graphs1Максимално зафаќање на тампон за која било редица

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Graphs2

  • Изберете го изворот на податоци како тест-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).“
  • Проверете дали FORMAT-от е „временска серија“ и именувајте го графикот во делот ALIAS.

Можете да собирате податоци за повеќе интерфејси на истиот график како што е прикажано на Слика 17 за et-0/0/0, et-0/0/1, et-0/0/2 итн.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Graphs3

PFC и ECN значи дериват
Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - дериват

За да го пронајдете средниот дериват (разликата во вредноста во временски опсег), користете го режимот на необработено барање.
Ова е барањето за прилив што го користевме за да го најдеме средниот дериват помеѓу две вредности на PFC на et-0/0/0 на Spine-1 во секунда.
ИЗБЕРЕТЕ извод (средно („/интерфејси/интерфејс[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts“), 1s) FROM „интерфејс“ WHERE („уред“::tag = 'Рбет-1') И $timeFilter ГРУПАЦИЈА ПО време ($интервал)

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Слично за ECN

ИЗБЕРЕТЕ извод(средно(„/интерфејси/интерфејс[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts“), 1s) FROM „интерфејс“ WHERE („уред“::tag = 'Рбет-1') И $timeFilter ГРУПАЦИЈА ПО време ($интервал)

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Слично за ECN1

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

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Слично за ECN2

Необработеното барање за грешки во ресурсите значи дериват е:
ИЗБЕРЕТЕ извод (средно („/интерфејси/интерфејс[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors“), 1s) FROM „интерфејс“ WHERE („уред“::tag = 'Рбет-1') И $timeFilter ГРУПАЦИЈА ПО време ($интервал)

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Слично за ECN3

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

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Слично за ECN4

Необработеното барање за значителен дериват на капки од опашката е:
ИЗБЕРЕТЕ извод (средно („/cos/интерфејси/интерфејс/редици/редица/tailDropBytes“), 1s) FROM „bufer“ WHERE („уред“::tag = 'Leaf-1' И „/cos/interfaces/interface/@name“::tag = 'et-0/0/0' И „/cos/interfaces/interface/queues/queue/@queue“::tag = '4') И $timeFilter ГРУПАЦИЈА ПО време ($__интервал) пополнете (null)
 Користење на процесорот

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - CPU utilization

  • Изберете го изворот на податоци како тест-1.
  • Во делот FROM, изберете го мерењето како „newcpu“
  • Во WHERE, има три полиња за пополнување. Изберете уред::tag и во tag вредност изберете го името на домаќинот на прекинувачот (т.е. 'рбетот-1). И во /components/component/properties/property/name:tag, и изберете cputilization-total AND во име::tag изберете RE0.
  • Во делот SELECT, изберете ја гранката на сензорот што сакате да ја следите. Во овој случај, изберете „поле (состојба/вредност)“.

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - CPU utilization1

Необработеното барање за пронаоѓање на ненегативниот дериват на опашката паѓа за повеќе прекинувачи на повеќе интерфејси во битови/сек.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM „buer“ 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]/) И $timeФилтер ГРУПИРАЈ ПО време ($__интервал),уред::tag пополни (нула)

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - CPU utilization2

Ова беа некои од ексampдел од графиконите што може да се креираат за следење на AI/ML мрежа.

Резиме

Овој труд го илустрира методот на влечење на телеметриски податоци и нивно визуелизирање преку создавање графикони. Овој труд конкретно зборува за сензори за AI/ML, и природна и отворена конфигурација, но поставувањето може да се користи за сите видови сензори. Вклучивме и решенија за повеќе проблеми со кои може да се соочите при креирањето на поставката. Чекорите и излезите прикажани во овој труд се специфични за верзиите на оџакот TIG споменати претходно. Тоа е предмет на промена во зависност од верзијата на софтверот, сензорите и верзијата на Junos.

Референци

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

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - икона

Корпоративно и продажно седиште
Juniper Networks, Inc.
1133 Начин на иновации
Sunnyvale, CA 94089 САД
Телефон: 888. JUNIPER (888.586.4737)
или +1.408.745.2000
Факс: +1.408.745.2100
www.juniper.net
Седиште на APAC и EMEA
Juniper Networks International BV
Боинг авенија 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 Telemetry In Junos за AI ML Workloads Software [pdf] Упатство за корисникот
Телеметрија во Junos за софтвер за оптоварување на AI ML, софтвер за оптоварување на AI ML, софтвер за оптоварување на AI ML, софтвер за оптоварување на работа, софтвер

Референци

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

Вашата адреса за е-пошта нема да биде објавена. Задолжителните полиња се означени *