AI/ML कार्यभार के लिए Junos में टेलीमेट्री
लेखक: शालिनी मुखर्जी
परिचय
चूंकि AI क्लस्टर ट्रैफ़िक को उच्च थ्रूपुट और कम विलंबता वाले दोषरहित नेटवर्क की आवश्यकता होती है, इसलिए AI नेटवर्क का एक महत्वपूर्ण तत्व निगरानी डेटा का संग्रह है। जूनोस टेलीमेट्री भीड़ प्रबंधन और ट्रैफ़िक लोड संतुलन के लिए थ्रेसहोल्ड और काउंटर सहित प्रमुख प्रदर्शन संकेतकों की बारीक निगरानी को सक्षम बनाता है। gRPC सत्र टेलीमेट्री डेटा की स्ट्रीमिंग का समर्थन करते हैं। gRPC एक आधुनिक, ओपन-सोर्स, उच्च प्रदर्शन वाला ढांचा है जो HTTP/2 ट्रांसपोर्ट पर बनाया गया है। यह मूल द्विदिश स्ट्रीमिंग क्षमताओं को सशक्त बनाता है और अनुरोध हेडर में लचीला कस्टम-मेटाडेटा शामिल करता है। टेलीमेट्री में प्रारंभिक चरण यह जानना है कि कौन सा डेटा एकत्र किया जाना है। फिर हम इस डेटा का विभिन्न प्रारूपों में विश्लेषण कर सकते हैं। एक बार जब हम डेटा एकत्र कर लेते हैं, तो इसे ऐसे प्रारूप में प्रस्तुत करना महत्वपूर्ण होता है जो निगरानी करने, निर्णय लेने और पेश की जा रही सेवा को बेहतर बनाने में आसान हो। इस पेपर में, हम टेलीग्राफ, इनफ्लक्सडीबी और ग्राफाना से युक्त एक टेलीमेट्री स्टैक का उपयोग करते हैं। यह टेलीमेट्री स्टैक एक पुश मॉडल का उपयोग करके डेटा एकत्र करता है। पारंपरिक पुल मॉडल संसाधन-गहन होते हैं, उन्हें मैन्युअल हस्तक्षेप की आवश्यकता होती है, और उनके द्वारा एकत्रित किए गए डेटा में सूचना अंतराल शामिल हो सकते हैं। पुश मॉडल डेटा को अतुल्यकालिक रूप से वितरित करके इन सीमाओं को दूर करते हैं। वे उपयोगकर्ता-अनुकूल उपयोग करके डेटा को समृद्ध करते हैं tags और नाम। एक बार जब डेटा अधिक पठनीय प्रारूप में होता है, तो हम इसे डेटाबेस में संग्रहीत करते हैं और इसे इंटरैक्टिव विज़ुअलाइज़ेशन में उपयोग करते हैं web नेटवर्क का विश्लेषण करने के लिए अनुप्रयोग। चित्र 1 हमें दिखाता है कि कैसे इस स्टैक को कुशल डेटा संग्रह, भंडारण और विज़ुअलाइज़ेशन के लिए डिज़ाइन किया गया है, नेटवर्क डिवाइस से डेटा को कलेक्टर तक पहुंचाने से लेकर विश्लेषण के लिए डैशबोर्ड पर प्रदर्शित होने वाले डेटा तक।
टीआईजी स्टैक
हमने TIG स्टैक सहित सभी सॉफ्टवेयर को स्थापित करने के लिए उबंटू सर्वर का उपयोग किया।
तार
डेटा एकत्र करने के लिए, हम 22.04.2 पर चलने वाले उबंटू सर्वर पर टेलीग्राफ का उपयोग करते हैं। इस डेमो में चल रहा टेलीग्राफ संस्करण 1.28.5 है।
टेलीग्राफ़ मेट्रिक्स एकत्र करने और रिपोर्ट करने के लिए एक प्लगइन संचालित सर्वर एजेंट है। यह प्रोसेसर का उपयोग करता है plugins डेटा को समृद्ध और सामान्य बनाने के लिए। plugins इस डेटा को विभिन्न डेटा स्टोर में भेजने के लिए उपयोग किया जाता है। इस दस्तावेज़ में हम दो का उपयोग करते हैं pluginsएक ओपनकॉन्फ़िग सेंसर के लिए और दूसरा जुनिपर नेटिव सेंसर के लिए।
इनफ्लक्सडीबी
डेटा को टाइम सीरीज़ डेटाबेस में स्टोर करने के लिए, हम InfluxDB का उपयोग करते हैं। टेलीग्राफ में आउटपुट प्लगइन डेटा को InfluxDB पर भेजता है, जो इसे अत्यधिक कुशल तरीके से स्टोर करता है। हम V1.8 का उपयोग कर रहे हैं क्योंकि V2 और इसके बाद के संस्करण के लिए कोई CLI मौजूद नहीं है।
ग्राफाना
इस डेटा को विज़ुअलाइज़ करने के लिए ग्राफ़ाना का उपयोग किया जाता है। ग्राफ़ाना इनफ़्लक्सडीबी से डेटा खींचता है और उपयोगकर्ताओं को समृद्ध और इंटरैक्टिव डैशबोर्ड बनाने की अनुमति देता है। यहाँ, हम संस्करण 10.2.2 चला रहे हैं।
स्विच पर कॉन्फ़िगरेशन
इस स्टैक को लागू करने के लिए, हमें सबसे पहले स्विच को चित्र 2 में दिखाए अनुसार कॉन्फ़िगर करना होगा। हमने पोर्ट 50051 का उपयोग किया है। यहाँ कोई भी पोर्ट इस्तेमाल किया जा सकता है। QFX स्विच में लॉग इन करें और निम्न कॉन्फ़िगरेशन जोड़ें।
टिप्पणी: यह कॉन्फ़िगरेशन लैब/POC के लिए है क्योंकि पासवर्ड स्पष्ट टेक्स्ट में प्रेषित किया जाता है। इससे बचने के लिए SSL का उपयोग करें।
पर्यावरण
nginx
यह तब आवश्यक है जब आप उस पोर्ट को उजागर करने में असमर्थ हों जिस पर ग्राफ़ाना होस्ट किया गया है। अगला चरण रिवर्स प्रॉक्सी एजेंट के रूप में काम करने के लिए उबंटू सर्वर पर nginx स्थापित करना है। एक बार nginx स्थापित हो जाने के बाद, चित्र 4 में दिखाई गई पंक्तियों को "डिफ़ॉल्ट" फ़ाइल में जोड़ें और फ़ाइल को /etc/nginx से /etc/nginx/sites-enabled में ले जाएँ।
सुनिश्चित करें कि फ़ायरवॉल को nginx सेवा तक पूर्ण पहुँच देने के लिए समायोजित किया गया है जैसा कि चित्र 5 में दिखाया गया है।
एक बार nginx स्थापित हो जाने और आवश्यक परिवर्तन कर दिए जाने के बाद, हमें Grafana को एक से दूसरे में एक्सेस करने में सक्षम होना चाहिए। web उबंटू सर्वर के आईपी पते का उपयोग करके ब्राउज़र जहां सभी सॉफ्टवेयर स्थापित हैं।
ग्राफ़ाना में एक छोटी सी गड़बड़ी है जो आपको डिफ़ॉल्ट पासवर्ड रीसेट करने की अनुमति नहीं देती है। यदि आप इस समस्या का सामना करते हैं तो इन चरणों का उपयोग करें।
ग्राफाना में पासवर्ड सेट करने के लिए उबंटू सर्वर पर किए जाने वाले चरण:
- /var/lib/grafana/grafana.db पर जाएं
- sqllite3 स्थापित करें
o sudo apt install sqlite3 - अपने टर्मिनल पर यह कमांड चलाएँ
o sqlite3 grafana.db - SQLite कमांड प्रॉम्प्ट खुलता है; निम्नलिखित क्वेरी चलाएँ:
> उपयोगकर्ता से हटाएं जहां लॉगिन = 'व्यवस्थापक' - grafana को पुनः आरंभ करें और उपयोगकर्ता नाम और पासवर्ड के रूप में admin टाइप करें। यह एक नया पासवर्ड मांगेगा।
एक बार सभी सॉफ्टवेयर स्थापित हो जाने के बाद, टेलीग्राफ में कॉन्फ़िगरेशन फ़ाइल बनाएं जो स्विच से टेलीमेट्री डेटा खींचने और इसे इनफ्लक्सडीबी में पुश करने में मदद करेगी।
ओपनकॉन्फ़िग सेंसर प्लगइन
उबंटू सर्वर पर, सभी आवश्यक जानकारी जोड़ने के लिए /etc/telegraf/telegraf.conf फ़ाइल को संपादित करें plugins और सेंसर। ओपनकॉन्फ़िगरेशन सेंसर के लिए, हम चित्र 6 में दिखाए गए gNMI प्लगइन का उपयोग करते हैं। डेमो उद्देश्यों के लिए, होस्टनाम को "स्पाइन1" के रूप में जोड़ें, पोर्ट नंबर "50051" जो कि gRPC के लिए उपयोग किया जाता है, स्विच का उपयोगकर्ता नाम और पासवर्ड, और विफलता के मामले में रीडायल के लिए सेकंड की संख्या।
सब्सक्रिप्शन स्टैन्ज़ा में, इस विशेष सेंसर के लिए एक अद्वितीय नाम, "cpu", सेंसर पथ, और स्विच से इस डेटा को प्राप्त करने के लिए समय अंतराल जोड़ें। सभी खुले कॉन्फ़िगरेशन सेंसर के लिए समान प्लगइन inputs.gnmi और inputs.gnmi.subscription जोड़ें। (चित्र 6)
नेटिव सेंसर प्लगइन
यह एक जूनिपर टेलीमेट्री इंटरफ़ेस प्लगइन है जिसका उपयोग नेटिव सेंसर के लिए किया जाता है। उसी telegraf.conf फ़ाइल में, नेटिव सेंसर प्लगइन inputs.jti_openconfig_telemetry जोड़ें जहाँ फ़ील्ड लगभग openconfig के समान हैं। प्रत्येक सेंसर के लिए एक अद्वितीय क्लाइंट आईडी का उपयोग करें; यहाँ, हम "telegraf3" का उपयोग करते हैं। इस सेंसर के लिए यहाँ उपयोग किया गया अद्वितीय नाम "mem" है (चित्र 7)।
अंत में, इस सेंसर डेटा को InfluxDB पर भेजने के लिए आउटपुट प्लगइन outputs.influxdb जोड़ें। यहाँ, डेटाबेस का नाम “telegraf” है, जिसका उपयोगकर्ता नाम “influx” और पासवर्ड “influxdb” है (चित्र 8)।
एक बार जब आप telegraf.conf फ़ाइल को संपादित कर लें, तो टेलीग्राफ सेवा को पुनः आरंभ करें। अब, InfluxDB CLI में जाँच करें कि क्या सभी अद्वितीय सेंसर के लिए माप बनाए गए हैं। InfluxDB CLI में प्रवेश करने के लिए “influx” टाइप करें।
जैसा कि चित्र 9 में देखा गया है, influxDB प्रॉम्प्ट दर्ज करें और डेटाबेस "टेलीग्राफ" का उपयोग करें। सेंसर को दिए गए सभी अद्वितीय नाम माप के रूप में सूचीबद्ध हैं।
किसी एक माप का आउटपुट देखने के लिए, बस यह सुनिश्चित करने के लिए कि टेलीग्राफ फ़ाइल सही है और सेंसर काम कर रहा है, चित्र 1 में दिखाए अनुसार "select * from cpu limit 10" कमांड का उपयोग करें।
प्रत्येक बार जब telegraf.conf फ़ाइल में परिवर्तन किया जाता है, तो InfluxDB को रोकना, Telegraf को पुनः आरंभ करना और फिर InfluxDB को प्रारंभ करना सुनिश्चित करें।
ब्राउज़र से ग्राफाना पर लॉग ऑन करें और यह सुनिश्चित करने के बाद कि डेटा सही ढंग से एकत्र किया जा रहा है, डैशबोर्ड बनाएं।
कनेक्शन > InfuxDB > नया डेटा स्रोत जोड़ें पर जाएँ।
- इस डेटा स्रोत को एक नाम दें। इस डेमो में यह “test-1” है।
- HTTP स्टैंजा के अंतर्गत, Ubuntu सर्वर IP और 8086 पोर्ट का उपयोग करें।
- InfluxDB विवरण में, समान डेटाबेस नाम, "telegraf" का उपयोग करें और Ubuntu सर्वर का उपयोगकर्ता नाम और पासवर्ड प्रदान करें।
- सेव एंड टेस्ट पर क्लिक करें। सुनिश्चित करें कि आपको “सफल” संदेश दिखाई दे।
- डेटा स्रोत सफलतापूर्वक जुड़ जाने के बाद, डैशबोर्ड पर जाएँ और नया क्लिक करें। आइए कुछ डैशबोर्ड बनाएँ जो संपादक मोड में AI/ML वर्कलोड के लिए आवश्यक हैं।
Exampसेंसर ग्राफ़ का विवरण
निम्नलिखित पूर्व हैंampकुछ प्रमुख काउंटरों की सूची जो AI/ML नेटवर्क की निगरानी के लिए आवश्यक हैं।
प्रतिशतtagस्पाइन-0 पर इनग्रेस इंटरफ़ेस et-0/0/1 के लिए ई उपयोग
- डेटा स्रोत को test-1 के रूप में चुनें.
- FROM सेक्शन में, माप को “इंटरफ़ेस” के रूप में चुनें। यह इस सेंसर पथ के लिए उपयोग किया जाने वाला अद्वितीय नाम है।
- WHERE अनुभाग में, डिवाइस चुनें::tag, और इसमें tag मान, स्विच का होस्टनाम चुनें, अर्थात, स्पाइन1.
- SELECT सेक्शन में, वह सेंसर ब्रांच चुनें जिसे आप मॉनिटर करना चाहते हैं; इस मामले में “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)” चुनें। अब उसी सेक्शन में, “+” पर क्लिक करें और यह गणना गणित (/50000000000 * 100) जोड़ें। हम मूल रूप से प्रतिशत की गणना कर रहे हैंtag400G इंटरफ़ेस का उपयोग.
- सुनिश्चित करें कि FORMAT “समय-श्रृंखला” है, और ALIAS अनुभाग में ग्राफ को नाम दें।
किसी भी कतार के लिए अधिकतम बफर अधिभोग
- डेटा स्रोत को test-1 के रूप में चुनें.
- FROM अनुभाग में, माप को “बफर” के रूप में चुनें।
- WHERE अनुभाग में, भरने के लिए तीन फ़ील्ड हैं। डिवाइस चुनें::tag, और इसमें tag value स्विच का होस्टनाम चुनें (अर्थात स्पाइन-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 आदि के लिए देखा जा सकता है।
पीएफसी और ईसीएन माध्य व्युत्पन्न
माध्य व्युत्पन्न (समय सीमा के भीतर मूल्य में अंतर) खोजने के लिए, रॉ क्वेरी मोड का उपयोग करें।
यह इन्फ्लक्स क्वेरी है जिसका उपयोग हमने एक सेकंड में स्पाइन-0 के et-0/0/1 पर दो PFC मानों के बीच औसत व्युत्पन्न खोजने के लिए किया है।
SELECT derived(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “interface” WHERE (“device”::tag = 'स्पाइन-1') और $timeFilter समूह द्वारा time($interval)
SELECT derived(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interface” WHERE (“device”::tag = 'स्पाइन-1') और $timeFilter समूह द्वारा time($interval)
इनपुट संसाधन त्रुटियाँ माध्य व्युत्पन्न
संसाधन त्रुटि माध्य व्युत्पन्न के लिए कच्ची क्वेरी है:
SELECT derived(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interface” WHERE (“device”::tag = 'स्पाइन-1') और $timeFilter समूह द्वारा time($interval)
टेल ड्रॉप्स माध्य व्युत्पन्न
टेल ड्रॉप्स माध्य व्युत्पन्न के लिए कच्ची क्वेरी है:
SELECT derived(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “buffer” WHERE (“device”::tag = 'पत्ता-1' और “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' और “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') और $timeFilter समूह द्वारा time($__interval) fill(null)
सीपीयू का उपयोग
- डेटा स्रोत को test-1 के रूप में चुनें.
- FROM अनुभाग में, माप को “newcpu” के रूप में चुनें
- WHERE में, भरने के लिए तीन फ़ील्ड हैं। डिवाइस चुनें::tag और इसमें tag मान स्विच का होस्टनाम चुनें (अर्थात स्पाइन-1)। और /components/component/properties/property/name में:tag, और नाम में cpuutilization-total AND का चयन करें::tag RE0 का चयन करें.
- SELECT सेक्शन में, वह सेंसर ब्रांच चुनें जिसे आप मॉनिटर करना चाहते हैं। इस मामले में, “field(state/value)” चुनें।
बिट्स/सेकंड में एकाधिक इंटरफेस पर एकाधिक स्विचों के लिए टेल ड्रॉप्स के गैर-ऋणात्मक व्युत्पन्न को खोजने के लिए कच्ची क्वेरी।
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 “buffer” से जहां (device::tag =~ /^स्पाइन-[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 भरें(शून्य)
ये कुछ पूर्व थेampएआई/एमएल नेटवर्क की निगरानी के लिए बनाए जा सकने वाले ग्राफों की संख्या कम है।
सारांश
यह पेपर टेलीमेट्री डेटा खींचने और ग्राफ बनाकर उसे विज़ुअलाइज़ करने की विधि को दर्शाता है। यह पेपर खास तौर पर AI/ML सेंसर के बारे में बात करता है, दोनों नेटिव और ओपनकॉन्फ़िग लेकिन सेटअप का इस्तेमाल सभी तरह के सेंसर के लिए किया जा सकता है। हमने सेटअप बनाते समय आपके सामने आने वाली कई समस्याओं के समाधान भी शामिल किए हैं। इस पेपर में दर्शाए गए चरण और आउटपुट पहले बताए गए TIG स्टैक के संस्करणों के लिए विशिष्ट हैं। यह सॉफ़्टवेयर, सेंसर और जूनोस संस्करण के संस्करण के आधार पर बदल सकता है।
संदर्भ
सभी सेंसर विकल्पों के लिए जुनिपर यांग डेटा मॉडल एक्सप्लोरर
https://apps.juniper.net/ydm-explorer/
ओपनकॉन्फ़िगरेशन सेंसर के लिए ओपनकॉन्फ़िगरेशन फ़ोरम
https://www.openconfig.net/projects/models/
कॉर्पोरेट और बिक्री मुख्यालय
जुनिपर नेटवर्क्स, इंक.
1133 इनोवेशन वे
सनीवेल, सीए 94089 यूएसए
फ़ोन: 888. जुनिपर (888.586.4737)
या +1.408.745.2000
फैक्स: +1.408.745.2100
www.juniper.net
एपीएसी और ईएमईए मुख्यालय
जुनिपर नेटवर्क्स इंटरनेशनल बीवी
बोइंग एवेन्यू 240
1119 पीजेड शिफोल-रिज्को
एम्स्टर्डम, नीदरलैंड
फ़ोन: +31.207.125.700
फैक्स: +31.207.125.701
कॉपीराइट 2023 जुनिपर नेटवर्क्स. इंक. सभी अधिकार सुरक्षित हैं। जुनिपर नेटवर्क्स, जुनिपर नेटवर्क्स लोगो, जुनिपर, जूनोस और अन्य ट्रेडमार्क जुनिपर नेटवर्क्स. इंक. और/या संयुक्त राज्य अमेरिका और अन्य देशों में इसके सहयोगियों के पंजीकृत ट्रेडमार्क हैं। अन्य नाम उनके संबंधित स्वामियों के ट्रेडमार्क हो सकते हैं। जुनिपर नेटवर्क्स इस दस्तावेज़ में किसी भी अशुद्धि के लिए कोई जिम्मेदारी नहीं लेता है। जुनिपर नेटवर्क्स बिना किसी सूचना के इस प्रकाशन को बदलने, संशोधित करने, स्थानांतरित करने या अन्यथा संशोधित करने का अधिकार सुरक्षित रखता है।
प्रतिक्रिया भेजें: design-center-comments@juniper.net V1.0/240807/ejm5-टेलीमेट्री-junos-ai-ml
दस्तावेज़ / संसाधन
![]() |
जुनिपर नेटवर्क्स एआई एमएल वर्कलोड सॉफ्टवेयर के लिए जुनोस में टेलीमेट्री [पीडीएफ] उपयोगकर्ता गाइड एआई एमएल वर्कलोड सॉफ्टवेयर के लिए जूनोस में टेलीमेट्री, एआई एमएल वर्कलोड सॉफ्टवेयर के लिए जूनोस, एआई एमएल वर्कलोड सॉफ्टवेयर, वर्कलोड सॉफ्टवेयर, सॉफ्टवेयर |