Juniper NETWORKS- logoՀեռաչափություն Junos-ում AI/ML աշխատանքային ծանրաբեռնվածության համար
Հեղինակ՝ Շալինի Մուխերջի

Ներածություն

Քանի որ AI կլաստերի երթևեկությունը պահանջում է անկորուստ ցանցեր՝ բարձր թողունակությամբ և ցածր ուշացումով, AI ցանցի կարևոր տարրը մոնիտորինգի տվյալների հավաքումն է: Junos Telemetry-ն թույլ է տալիս վերահսկել հիմնական կատարողականի ցուցանիշները, ներառյալ գերբեռնվածության կառավարման և երթևեկության բեռի հավասարակշռման շեմերը և հաշվիչները: gRPC նիստերն աջակցում են հեռաչափության տվյալների հոսքին: gRPC-ն ժամանակակից, բաց կոդով, բարձր արդյունավետության շրջանակ է, որը կառուցված է HTTP/2 տրանսպորտի վրա: Այն հզորացնում է մայրենի երկկողմանի հոսքային հնարավորությունները և ներառում է ճկուն հատուկ մետատվյալներ հարցումների վերնագրերում: Հեռաչափության սկզբնական քայլը իմանալն է, թե ինչ տվյալներ պետք է հավաքվեն: Այնուհետև մենք կարող ենք վերլուծել այս տվյալները տարբեր ձևաչափերով: Տվյալները հավաքելուց հետո կարևոր է դրանք ներկայացնել այնպիսի ձևաչափով, որը հեշտ է վերահսկել, որոշումներ կայացնել և բարելավել առաջարկվող ծառայությունը: Այս հոդվածում մենք օգտագործում ենք հեռաչափության կույտ, որը բաղկացած է Telegraf-ից, InfluxDB-ից և Grafana-ից: Հեռաչափության այս կույտը հավաքում է տվյալներ՝ օգտագործելով push մոդելը: Ավանդական ձգողական մոդելները ռեսուրսներ են պահանջում, պահանջում են ձեռքով միջամտություն և կարող են ներառել տեղեկատվության բացերը իրենց հավաքած տվյալների մեջ: Push մոդելները հաղթահարում են այս սահմանափակումները՝ փոխանցելով տվյալները ասինխրոն: Նրանք հարստացնում են տվյալները՝ օգտագործելով օգտագործողի համար հարմար tags և անուններ։ Երբ տվյալները ավելի ընթեռնելի ձևաչափ են ստանում, մենք դրանք պահում ենք տվյալների բազայում և օգտագործում ինտերակտիվ վիզուալիզացիայի մեջ web ցանցի վերլուծության հավելված: Նկար. 1-ը ցույց է տալիս, թե ինչպես է այս կույտը նախագծված տվյալների արդյունավետ հավաքագրման, պահպանման և վիզուալիզացիայի համար՝ սկսած ցանցային սարքերից, որոնք տվյալները մղում են դեպի կոլեկցիոներ, մինչև վերլուծության համար վահանակների վրա ցուցադրվող տվյալները:

Juniper NETWORKS Telemetry in Junos for AI ML Workloads Software -

TIG Stack

Մենք օգտագործեցինք Ubuntu սերվեր՝ ամբողջ ծրագրակազմը, ներառյալ TIG փաթեթը, տեղադրելու համար:

Telegraph
Տվյալներ հավաքելու համար մենք օգտագործում ենք Telegraf-ը Ubuntu սերվերի վրա, որն աշխատում է 22.04.2. Այս ցուցադրությունում աշխատող Telegraf-ի տարբերակը 1.28.5 է:
Telegraf-ը պլագինների վրա հիմնված սերվերի գործակալ է չափումների հավաքագրման և հաշվետվությունների համար: Այն օգտագործում է պրոցեսոր plugins հարստացնել և նորմալացնել տվյալները։ Արդյունքը plugins օգտագործվում են այս տվյալները տարբեր տվյալների խանութներ ուղարկելու համար: Այս փաստաթղթում մենք օգտագործում ենք երկու pluginsմեկը openconfig սենսորների համար, իսկ մյուսը Juniper բնիկ սենսորների համար:
InfluxDB
Տվյալները ժամանակային շարքերի տվյալների բազայում պահելու համար մենք օգտագործում ենք InfluxDB: Telegraf-ի ելքային պլագինը տվյալները ուղարկում է InfluxDB, որը պահպանում է դրանք շատ արդյունավետ կերպով: Մենք օգտագործում ենք V1.8-ը, քանի որ V2-ի և վերևի համար CLI չկա:
Գրաֆանա
Grafana-ն օգտագործվում է այս տվյալները պատկերացնելու համար: Grafana-ն տվյալները վերցնում է 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

Համոզվեք, որ firewall-ը հարմարեցված է nginx ծառայությանը լիարժեք մուտք ապահովելու համար, ինչպես ցույց է տրված Նկար 5-ում:

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

Երբ nginx-ը տեղադրվի և անհրաժեշտ փոփոխությունները կատարվեն, մենք պետք է կարողանանք մուտք գործել Grafana a-ից web զննարկիչը՝ օգտագործելով Ubuntu սերվերի IP հասցեն, որտեղ տեղադրված է ամբողջ ծրագրակազմը:
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 Sensor Plugin

Ubuntu սերվերում խմբագրեք /etc/telegraf/telegraf.conf ֆայլը՝ ավելացնելու բոլոր պահանջվողները plugins և սենսորներ: Opencong սենսորների համար մենք օգտագործում ենք gNMI plugin-ը, որը ներկայացված է Նկար 6-ում: Դեմո նպատակների համար ավելացրեք հոսթի անունը որպես «spine1», պորտի համարը «50051», որն օգտագործվում է gRPC-ի համար, անջատիչի օգտանունը և գաղտնաբառը, և համարը: վայրկյաններ՝ ձախողման դեպքում կրկին հավաքելու համար:
Բաժանորդագրության տողում ավելացրեք եզակի անուն՝ «cpu» այս կոնկրետ սենսորի համար, սենսորի ուղին և այս տվյալները անջատիչից վերցնելու ժամանակային ընդմիջումը: Ավելացրեք նույն plugin inputs.gnmi և inputs.gnmi.subscription բոլոր բաց կազմաձևման սենսորների համար: (Նկար 6)

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

Native Sensor Plugin

Սա Juniper հեռաչափության ինտերֆեյսի պլագին է, որն օգտագործվում է բնիկ սենսորների համար: Նույն telegraf.conf ֆայլում ավելացրեք բնիկ սենսորային պլագին inputs.jti_openconfig_telemetry, որտեղ դաշտերը գրեթե նույնն են, ինչ openconfig. Օգտագործեք եզակի հաճախորդի ID յուրաքանչյուր սենսորի համար. այստեղ մենք օգտագործում ենք «telegraf3»: Այս սենսորի համար այստեղ օգտագործվող եզակի անունը «mem» է (Նկար 7):

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

Վերջապես, ավելացրեք outputs.influxdb ելքային հավելված՝ այս սենսորային տվյալները InuxDB ուղարկելու համար: Այստեղ տվյալների բազան կոչվում է «telegraf»՝ օգտանունով որպես «inux» և գաղտնաբառով «inuxdb» (Նկար 8):

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

Telegraf.conf ֆայլը խմբագրելուց հետո վերագործարկեք telegraf ծառայությունը: Այժմ ստուգեք InfluxDB CLI-ում, որպեսզի համոզվեք, որ չափումներ են ստեղծվել բոլոր եզակի սենսորների համար: Մուտքագրեք «inux»՝ InfluxDB CLI մուտքագրելու համար:

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

Ինչպես երևում է Նկարում: 9, մուտքագրեք influxDB հուշումը և օգտագործեք «telegraf» տվյալների բազան: Սենսորներին տրված բոլոր եզակի անունները թվարկված են որպես չափումներ:
Ցանկացած չափման արդյունքը տեսնելու համար պարզապես համոզվելու համար, որ telegraf ֆայլը ճիշտ է, և սենսորն աշխատում է, օգտագործեք «ընտրել * պրոցեսորի սահմանաչափից 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 տողի ներքո օգտագործեք Ubuntu սերվերի IP-ն և 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. Տվյալների աղբյուրը հաջողությամբ ավելացնելուց հետո գնացեք Dashboards և սեղմեք Նոր: Եկեք ստեղծենք մի քանի վահանակներ, որոնք կարևոր են AI/ML աշխատանքային բեռների համար խմբագրման ռեժիմում:

ExampՍենսորային գրաֆիկների les

Հետևյալներն են նախկինampորոշ հիմնական հաշվիչներ, որոնք կարևոր են AI/ML ցանցի մոնիտորինգի համար:
ՊերչենtagՕգտագործում ներթափանցման ինտերֆեյսի համար et-0/0/0 ողնաշարի 1-ի վրա
Juniper NETWORKS Telemetry in Junos for AI ML Workloads Software - Graphs

  • Ընտրեք տվյալների աղբյուրը որպես թեստ-1:
  • FROM բաժնում ընտրեք չափումը որպես «ինտերֆեյս»: Սա եզակի անունն է, որն օգտագործվում է այս սենսորային ուղու համար:
  • WHERE բաժնում ընտրեք սարքը՝tag, և մեջ tag արժեքը, ընտրեք անջատիչի հոսթի անունը, այսինքն՝ spine1:
  • 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 բաժնում ընտրեք սենսորային ճյուղը, որը ցանկանում եք վերահսկել. այս դեպքում ընտրեք «field(/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 - ածանցյալ

Միջին ածանցյալը (արժեքի տարբերությունը ժամանակային միջակայքում) գտնելու համար օգտագործեք հում հարցման ռեժիմը:
Սա ներհոսքի հարցումն է, որը մենք օգտագործել ենք՝ մեկ վայրկյանում Spine-0-ի et-0/0/1 PFC արժեքների միջև միջին ածանցյալը գտնելու համար:
SELECT ածանցյալ(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interface” WHERE (“սարք”::tag = 'Spine-1') ԵՎ $timeFilter GROUP ԸՍՏ ժամանակի ($interval)

Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - Նմանապես ECN-ի համար

SELECT ածանցյալ(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interface” WHERE (“սարք”::tag = 'Spine-1') ԵՎ $timeFilter GROUP ԸՍՏ ժամանակի ($interval)

Juniper NETWORKS Telemetry in Junos for AI ML Workloads Software - Նմանապես ECN1-ի համար

Մուտքային ռեսուրսի սխալները նշանակում են ածանցյալ

Juniper NETWORKS Telemetry in Junos for AI ML Workloads Software - Նմանապես ECN2-ի համար

Ռեսուրսների սխալների միջին ածանցյալ հարցումը հետևյալն է.
SELECT ածանցյալ(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interface” WHERE (“սարք”::tag = 'Spine-1') ԵՎ $timeFilter GROUP ԸՍՏ ժամանակի ($interval)

Juniper NETWORKS Telemetry in Junos for AI ML Workloads Software - Նմանապես ECN3-ի համար

Պոչի կաթիլները նշանակում են ածանցյալ

Juniper NETWORKS Telemetry in Junos for AI ML Workloads Software - Նմանապես ECN4-ի համար

Պոչի կաթիլների հում հարցումը միջին ածանցյալն է.
SELECT ածանցյալ (mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “buer” WHERE (“device”::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) fill(null)
 CPU-ի օգտագործումը

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

  • Ընտրեք տվյալների աղբյուրը որպես թեստ-1:
  • FROM բաժնում ընտրեք չափումը որպես «newcpu»
  • WHERE-ում կա երեք դաշտ, որը պետք է լրացվի: Ընտրել սարքը::tag և մեջ tag արժեքը ընտրեք անջատիչի հոսթի անունը (այսինքն՝ ողնաշար-1): AND /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 «bur» 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 GROUP BY ժամանակ ($__interval),device::tag լրացնել (null)

Juniper NETWORKS Telemetry in Junos for AI ML Workloads Software - CPU Utilization2

Սրանք նախկիններից մի քանիսն էինampգրաֆիկների les, որոնք կարող են ստեղծվել AI/ML ցանցի մոնիտորինգի համար:

Ամփոփում

Այս հոդվածը ցույց է տալիս հեռաչափության տվյալները քաշելու և դրանք վիզուալացնելու մեթոդը՝ ստեղծելով գրաֆիկներ: Այս հոդվածում մասնավորապես խոսվում է AI/ML սենսորների մասին՝ ինչպես բնիկ, այնպես էլ բաց կոնֆիգուրացիայով, սակայն կարգավորումը կարող է օգտագործվել բոլոր տեսակի սենսորների համար: Մենք նաև ներառել ենք լուծումներ բազմաթիվ խնդիրների համար, որոնց կարող եք հանդիպել կարգավորումը ստեղծելիս: Այս թղթում նկարագրված քայլերն ու արդյունքները հատուկ են վերը նշված TIG փաթեթի տարբերակներին: Այն ենթակա է փոփոխման՝ կախված ծրագրաշարի տարբերակից, սենսորներից և Junos տարբերակից:

Հղումներ

Juniper Yang Data Model Explorer-ը բոլոր սենսորային տարբերակների համար
https://apps.juniper.net/ydm-explorer/
Openconfig ֆորում 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
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-ի գրանցված ապրանքանիշերն են: inc. և/կամ նրա մասնաճյուղերը Միացյալ Նահանգներում և այլ երկրներում: Այլ անունները կարող են լինել իրենց համապատասխան սեփականատերերի ապրանքանիշերը: 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] Օգտագործողի ուղեցույց
Telemetry In Junos for AI ML Workloads Software, Junos for AI ML Workloads Software, AI ML Workloads Software, Workloads Software, Software

Հղումներ

Թողնել մեկնաբանություն

Ձեր էլփոստի հասցեն չի հրապարակվի: Պարտադիր դաշտերը նշված են *