Telemetria në Junos për ngarkesat e punës AI/ML
Autor: Shalini Mukherjee
Hyrje
Meqenëse trafiku i grupeve të AI kërkon rrjete pa humbje me xhiro të lartë dhe vonesë të ulët, një element kritik i rrjetit të AI është mbledhja e të dhënave të monitorimit. Junos Telemetry mundëson monitorimin granular të treguesve kryesorë të performancës, duke përfshirë pragjet dhe numëruesit për menaxhimin e mbingarkesës dhe balancimin e ngarkesës së trafikut. Seancat gRPC mbështesin transmetimin e të dhënave të telemetrisë. gRPC është një kornizë moderne, me burim të hapur, me performancë të lartë, e ndërtuar në transportin HTTP/2. Ai fuqizon aftësitë e transmetimit me dy drejtime vendase dhe përfshin meta të dhëna fleksibël me porosi në titujt e kërkesave. Hapi fillestar në telemetri është të dimë se çfarë të dhënash duhet të mblidhen. Më pas mund t'i analizojmë këto të dhëna në formate të ndryshme. Pasi të mbledhim të dhënat, është e rëndësishme t'i prezantojmë ato në një format që është i lehtë për t'u monitoruar, marrë vendime dhe përmirësuar shërbimin që ofrohet. Në këtë punim, ne përdorim një pirg telemetrie të përbërë nga Telegraf, InfluxDB dhe Grafana. Kjo pirg telemetrike mbledh të dhëna duke përdorur një model shtytës. Modelet tradicionale të tërheqjes kërkojnë burime intensive, kërkojnë ndërhyrje manuale dhe mund të përfshijnë boshllëqe informacioni në të dhënat që mbledhin. Modelet Push i kapërcejnë këto kufizime duke ofruar të dhëna në mënyrë asinkrone. Ata pasurojnë të dhënat duke përdorur lehtësisht përdorues tags dhe emrat. Pasi të dhënat janë në një format më të lexueshëm, ne i ruajmë ato në një bazë të dhënash dhe i përdorim në një vizualizim interaktiv web aplikacion për analizimin e rrjetit. Figura. 1 na tregon se si është projektuar ky grumbull për mbledhjen, ruajtjen dhe vizualizimin efikas të të dhënave, nga pajisjet e rrjetit që shtyjnë të dhënat te mbledhësi deri te të dhënat që shfaqen në panelet e kontrollit për analizë.
TIG Stack
Ne përdorëm një server Ubuntu për të instaluar të gjithë softuerin duke përfshirë pirgun TIG.
Telegrafi
Për të mbledhur të dhëna, ne përdorim Telegraf në një server Ubuntu që funksionon 22.04.2. Versioni i Telegraf që funksionon në këtë demonstrim është 1.28.5.
Telegraf është një agjent server i drejtuar nga shtojcat për mbledhjen dhe raportimin e metrikave. Ai përdor procesor plugins për të pasuruar dhe normalizuar të dhënat. Prodhimi plugins përdoren për të dërguar këto të dhëna në dyqane të ndryshme të të dhënave. Në këtë dokument ne përdorim dy plugins: një për sensorët e konfigurimit të hapur dhe tjetri për sensorët vendas të Juniper.
InfluxDB
Për të ruajtur të dhënat në një bazë të dhënash të serive kohore, ne përdorim InfluxDB. Shtojca e daljes në Telegraf i dërgon të dhënat në InfluxDB, e cila i ruan ato në një mënyrë shumë efikase. Ne po përdorim V1.8 pasi nuk ka CLI të pranishëm për V2 dhe më lart.
Grafana
Grafana përdoret për të vizualizuar këto të dhëna. Grafana tërheq të dhënat nga InfluxDB dhe i lejon përdoruesit të krijojnë panele të pasura dhe interaktive. Këtu, ne po ekzekutojmë versionin 10.2.2.
Konfigurimi në çelës
Për të implementuar këtë stack, së pari duhet të konfigurojmë ndërprerësin siç tregohet në figurën 2. Ne kemi përdorur portin 50051. Çdo port mund të përdoret këtu. Hyni në çelësin QFX dhe shtoni konfigurimin e mëposhtëm.
Shënim: Ky konfigurim është për laboratorët/POC-të pasi fjalëkalimi transmetohet në tekst të qartë. Përdorni SSL për të shmangur këtë.
Mjedisi
Nginx
Kjo është e nevojshme nëse nuk jeni në gjendje të ekspozoni portin në të cilin është pritur Grafana. Hapi tjetër është instalimi i nginx në serverin Ubuntu për të shërbyer si agjent i kundërt proxy. Pasi të instalohet nginx, shtoni linjat e paraqitura në Figurën 4 në skedarin "default" dhe zhvendoseni skedarin nga /etc/nginx në /etc/nginx/sites-enabled.
Sigurohuni që muri i zjarrit të jetë rregulluar për të dhënë akses të plotë në shërbimin nginx siç tregohet në figurën 5.
Pasi të instalohet nginx dhe të bëhen ndryshimet e kërkuara, ne duhet të jemi në gjendje të aksesojmë Grafana nga a web shfletuesi duke përdorur adresën IP të serverit Ubuntu ku është instaluar i gjithë softueri.
Ka një defekt të vogël në Grafana që nuk të lejon të rivendosësh fjalëkalimin e paracaktuar. Përdorni këto hapa nëse hasni në këtë problem.
Hapat që duhen kryer në serverin Ubuntu për të vendosur fjalëkalimin në Grafana:
- Shkoni te /var/lib/grafana/grafana.db
- Instaloni sqllite3
o sudo apt instaloni sqlite3 - Ekzekutoni këtë komandë në terminalin tuaj
o sqlite3 grafana.db - Hapet linja e komandës Sqlite; ekzekutoni pyetjen e mëposhtme:
>fshij nga përdoruesi ku login='admin' - Rinisni grafana dhe shkruani admin si emër përdoruesi dhe fjalëkalim. Kërkon një fjalëkalim të ri.
Pasi të jetë instaluar i gjithë softueri, krijoni skedarin e konfigurimit në Telegraf i cili do të ndihmojë në tërheqjen e të dhënave të telemetrisë nga çelësi dhe shtyrjen e tyre në InfluxDB.
Shtojca Openconfig Sensor
Në serverin Ubuntu, modifikoni skedarin /etc/telegraf/telegraf.conf për të shtuar të gjitha të kërkuarat plugins dhe sensorë. Për sensorët opencong, ne përdorim shtesën gNMI të paraqitur në Figurën 6. Për qëllime demo, shtoni emrin e hostit si "spine1", numrin e portit "50051" që përdoret për gRPC, emrin e përdoruesit dhe fjalëkalimin e çelësit dhe numrin sekonda për ritheksim në rast dështimi.
Në strofën e abonimit, shtoni një emër unik, "cpu" për këtë sensor të veçantë, shtegun e sensorit dhe intervalin kohor për marrjen e këtyre të dhënave nga çelësi. Shtoni të njëjtat hyrje shtesë.gnmi dhe inputs.gnmi.subscription për të gjithë sensorët e konfigurimit të hapur. (Figura 6)
Shtojca e sensorit vendas
Kjo është një shtojcë e ndërfaqes së telemetrisë Juniper e përdorur për sensorët vendas. Në të njëjtin skedar telegraf.conf, shtoni hyrjet e shtojcës së sensorit vendas.jti_openconfig_telemetry ku fushat janë pothuajse të njëjta me openconfig. Përdorni një ID unike të klientit për çdo sensor; këtu, ne përdorim "telegraf3". Emri unik i përdorur këtu për këtë sensor është "mem" (Figura 7).
Së fundi, shtoni një shtojcë dalëse outputs.influxdb për të dërguar këto të dhëna sensori në InuxDB. Këtu, baza e të dhënave emërtohet “telegraf” me emrin e përdoruesit si “inux” dhe fjalëkalimin “inuxdb” (Figura 8).
Pasi të keni redaktuar skedarin telegraf.conf, rinisni shërbimin telegraf. Tani, kontrolloni në InfluxDB CLI për t'u siguruar nëse matjet janë krijuar për të gjithë sensorët unikë. Shkruani "influx" për të hyrë në InfluxDB CLI.
Siç shihet në figurë. 9, futni prompt influxDB dhe përdorni bazën e të dhënave "telegraf". Të gjithë emrat unikë që u janë dhënë sensorëve janë renditur si matje.
Për të parë daljen e çdo matjeje, vetëm për t'u siguruar që skedari i telegrafit është i saktë dhe sensori po funksionon, përdorni komandën "zgjidh * nga kufiri i cpu 1" siç tregohet në Figurën 10.
Sa herë që bëhen ndryshime në skedarin telegraf.conf, sigurohuni që të ndaloni InfluxDB, rinisni Telegrafin dhe më pas nisni InfluxDB.
Hyni në Grafana nga shfletuesi dhe krijoni panele kontrolli pasi të siguroheni që të dhënat janë mbledhur në mënyrë korrekte.
Shkoni te Lidhjet > InfuxDB > Shto burim të ri të dhënash.
- Jepni një emër këtij burimi të të dhënave. Në këtë demonstrim është "test-1".
- Nën strofën HTTP, përdorni IP-në e serverit Ubuntu dhe portin 8086.
- Në detajet e InfluxDB, përdorni të njëjtin emër të bazës së të dhënave, "telegraf", dhe jepni emrin e përdoruesit dhe fjalëkalimin e serverit Ubuntu.
- Kliko Ruaj & testo. Sigurohuni që të shihni mesazhin "i suksesshëm".
- Pasi burimi i të dhënave të shtohet me sukses, shkoni te Paneli i kontrollit dhe klikoni I ri. Le të krijojmë disa panele kontrolli që janë thelbësore për ngarkesat e punës AI/ML në modalitetin e redaktuesit.
ExampLes Of Graphs Sensor
Më poshtë janë ishampdisa nga disa sportele kryesore që janë thelbësore për monitorimin e një rrjeti AI/ML.
PërqindjatagPërdorimi për një ndërfaqe hyrëse et-0/0/0 në shpinë-1
- Zgjidhni burimin e të dhënave si test-1.
- Në seksionin FROM, zgjidhni matjen si "ndërfaqe". Ky është emri unik i përdorur për këtë shteg sensori.
- Në seksionin WHERE, zgjidhni pajisjen:tag, dhe në tag vlera, zgjidhni emrin e hostit të çelësit, domethënë spine1.
- Në seksionin SELECT, zgjidhni degën e sensorit që dëshironi të monitoroni; në këtë rast zgjidhni "field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)". Tani në të njëjtin seksion, klikoni në "+" dhe shtoni këtë llogaritje matematikore (/50000000000 * 100). Ne në thelb jemi duke llogaritur përqindjentagPërdorimi i një ndërfaqe 400G.
- Sigurohuni që FORMAT-i të jetë "seritë kohore" dhe emërtoni grafikun në seksionin ALIAS.
Pushimi maksimal i tamponit për çdo radhë
- Zgjidhni burimin e të dhënave si test-1.
- Në seksionin FROM, zgjidhni matjen si "buffer".
- Në seksionin WHERE, ka tre fusha për t'u mbushur. Zgjidhni pajisjen::tag, dhe në tag vlera zgjidhni emrin e hostit të ndërprerësit (dmth. spine-1); DHE zgjidhni /cos/interfaces/interface/@name::tag dhe zgjidhni ndërfaqen (dmth. et- 0/0/0); DHE zgjidhni radhën gjithashtu, /cos/interfaces/interface/queues/queue/@queue::tag dhe zgjidhni numrin e radhës 4.
- Në seksionin SELECT, zgjidhni degën e sensorit që dëshironi të monitoroni; në këtë rast zgjidhni "field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy)."
- Sigurohuni që FORMAT-i të jetë "seri kohore" dhe emërtoni grafikun në seksionin ALIAS.
Ju mund të grumbulloni të dhëna për ndërfaqe të shumta në të njëjtin grafik siç shihet në Figurën 17 për et-0/0/0, et-0/0/1, et-0/0/2 etj.
PFC dhe ECN derivati mesatar
Për të gjetur derivatin mesatar (ndryshimin në vlerë brenda një intervali kohor), përdorni modalitetin e kërkesës së papërpunuar.
Ky është pyetja e fluksit që ne kemi përdorur për të gjetur derivatin mesatar midis dy vlerave PFC në et-0/0/0 të Spine-1 në një sekondë.
SELECT derivat(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interface” WHERE (“pajisje”::tag = 'Spine-1') DHE $timeFilter GRUPI SIPAS kohe ($interval)
SELECT derivat(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interface” WHERE (“pajisje”::tag = 'Spine-1') DHE $timeFilter GRUPI SIPAS kohe ($interval)
Gabimet e burimeve hyrëse nënkuptojnë derivatin
Kërkesa e papërpunuar për derivatet mesatare të gabimeve të burimeve është:
SELECT derivat(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interface” WHERE (“pajisje”::tag = 'Spine-1') DHE $timeFilter GRUPI SIPAS kohe ($interval)
Pikat e bishtit do të thotë derivat
Kërkesa e papërpunuar për derivatin mesatar të pikave të bishtit është:
SELECT derivat(mean("/cos/interfaces/interface/queues/queue/tailDropBytes"), 1s) FROM "buffer" WHERE ("pajisje"::tag = 'Fletë-1' DHE "/cos/interfaces/interface/@name"::tag = 'et-0/0/0' DHE "/cos/interfaces/interface/queues/queue/@queue"::tag = '4') DHE $timeFilter GROUP BY BY time($__interval) fill(null)
Shfrytëzimi i CPU-së
- Zgjidhni burimin e të dhënave si test-1.
- Në seksionin FROM, zgjidhni matjen si "newcpu"
- Në WHERE, ka tre fusha për t'u mbushur. Zgjidh pajisjen::tag dhe në tag vlera zgjidhni emrin e hostit të çelësit (dmth. spine-1). DHE në /components/component/properties/property/emri:tag, dhe zgjidhni cpuutilization-total AND në emër::tag zgjidhni RE0.
- Në seksionin SELECT, zgjidhni degën e sensorit që dëshironi të monitoroni. Në këtë rast, zgjidhni "fushën (gjendja/vlera)".
Pyetja e papërpunuar për gjetjen e derivatit jo-negativ të bishtit bie për ndërprerës të shumëfishtë në ndërfaqe të shumta në bit/sek.
SELECT jo_negative_derivative(mean("/cos/interfaces/interface/queues/queue/tailDropBytes"), 1s)*8 FROM "buer" WHERE (pajisja::tag =~ /^Spine-[1-2]$/) dhe (“/cos/interfaces/interface/@name”::tag =~ /et-0\/0\/[0-9]/ ose "/cos/interfaces/interface/@name"::tag=~/et-0\/0\/1[0-5]/) DHE $timeFilter GRUPI SIPAS kohës ($__interval),pajisja::tag mbush (null)
Këta ishin disa nga ishamppjesë e grafikëve që mund të krijohen për monitorimin e një rrjeti AI/ML.
Përmbledhje
Ky punim ilustron metodën e tërheqjes së të dhënave telemetrike dhe vizualizimit të tyre duke krijuar grafikë. Ky punim flet në mënyrë specifike për sensorët AI/ML, si vendas ashtu edhe të hapur, por konfigurimi mund të përdoret për të gjitha llojet e sensorëve. Ne kemi përfshirë gjithashtu zgjidhje për çështje të shumta që mund të hasni gjatë krijimit të konfigurimit. Hapat dhe rezultatet e përshkruara në këtë punim janë specifike për versionet e pirgut TIG të përmendur më parë. Ai mund të ndryshojë në varësi të versionit të softuerit, sensorëve dhe versionit Junos.
Referencat
Juniper Yang Data Model Explorer për të gjitha opsionet e sensorëve
https://apps.juniper.net/ydm-explorer/
Forumi Openconfig për sensorët openconfig
https://www.openconfig.net/projects/models/
Korporata dhe selia e shitjeve
Juniper Networks, Inc.
1133 Rruga e Inovacionit
Sunnyvale, CA 94089 SHBA
Telefoni: 888. JUNIPER (888.586.4737)
ose +1.408.745.2000
Faks: +1.408.745.2100
www.juniper.net
Selia e APAC dhe EMEA
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Holandë
Telefoni: +31.207.125.700
Faks: +31.207.125.701
E drejta e autorit 2023 Juniper Networks. Inc. Të drejtat e ajrit të rezervuara. Juniper Networks, logoja e Juniper Networks, Juniper, Junos dhe marka të tjera tregtare janë marka të regjistruara të Juniper Networks. duke përfshirë dhe/ose filialet e saj në Shtetet e Bashkuara dhe vende të tjera. Emrat e tjerë mund të jenë marka tregtare të pronarëve të tyre përkatës. Juniper Networks nuk mban asnjë përgjegjësi për ndonjë pasaktësi në këtë dokument. Juniper Networks rezervon të drejtën për të ndryshuar. modifikoj. transferoni, ose rishikoni ndryshe këtë publikim pa paralajmërim.
Dërgo komente te: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml
Dokumentet / Burimet
![]() |
Telemetria e RRJETAVE dëllinjë në Junos për Softuerin e ngarkesave të punës AI ML [pdfUdhëzuesi i përdoruesit Telemetria në Junos për softuerin e ngarkesave të punës AI ML, Softuerin Junos për Softuerin e ngarkesave të punës AI ML, Softuerin e ngarkesave të punës AI ML, Softuerin e ngarkesave të punës, softuerin |