לוגו Juniper NETWORKSטלמטריה ב-Junos עבור עומסי עבודה של AI/ML
מחבר: שליני Mukherjee

מָבוֹא

מכיוון שתעבורת אשכולות בינה מלאכותית דורשת רשתות ללא אובדן עם תפוקה גבוהה והשהייה נמוכה, מרכיב קריטי ברשת הבינה המלאכותית הוא איסוף נתוני ניטור. Junos Telemetry מאפשרת ניטור פרטני של מדדי ביצועים מרכזיים, כולל ספים ומונים לניהול עומסים ואיזון עומסי תנועה. הפעלות gRPC תומכות בהזרמת נתוני טלמטריה. gRPC היא מסגרת מודרנית, קוד פתוח, עם ביצועים גבוהים, הבנויה על תעבורת HTTP/2. זה מעצים יכולות סטרימינג דו-כיווניות מקוריות וכולל מטא-נתונים מותאמים אישית גמישים בכותרות הבקשות. השלב הראשוני בטלמטריה הוא לדעת אילו נתונים יש לאסוף. לאחר מכן נוכל לנתח נתונים אלה בפורמטים שונים. לאחר שנאסף את הנתונים, חשוב להציג אותם בפורמט שקל לנטר, לקבל החלטות ולשפר את השירות המוצע. במאמר זה, אנו משתמשים בערימת טלמטריה המורכבת מ-Telegraf, InfluxDB ו-Grafana. ערימת טלמטריה זו אוספת נתונים באמצעות מודל דחיפה. מודלים מסורתיים של משיכה הם עתירי משאבים, דורשים התערבות ידנית ויכולים לכלול פערי מידע בנתונים שהם אוספים. מודלים של Push מתגברים על מגבלות אלו על ידי אספקת נתונים באופן אסינכרוני. הם מעשירים את הנתונים על ידי שימוש ידידותי למשתמש tags ושמות. ברגע שהנתונים יהיו בפורמט קריא יותר, אנו מאחסנים אותם במסד נתונים ומשתמשים בהם בהדמיה אינטראקטיבית web אפליקציה לניתוח הרשת. דְמוּת. 1 מראה לנו כיצד ערימה זו מיועדת לאיסוף, אחסון והדמיה יעילים של נתונים, מהתקני רשת שדוחפים נתונים לאספן ועד לנתונים המוצגים על לוחות מחוונים לניתוח.

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML -

מחסנית TIG

השתמשנו בשרת אובונטו כדי להתקין את כל התוכנה כולל ערימת TIG.

טלגרף
כדי לאסוף נתונים, אנו משתמשים ב-Telegraf בשרת אובונטו הפועל על 22.04.2. גרסת Telegraf הפועלת בהדגמה זו היא 1.28.5.
Telegraf הוא סוכן שרת מונחה תוספים לאיסוף ודיווח של מדדים. הוא משתמש במעבד plugins להעשיר ולנרמל את הנתונים. הפלט plugins משמשים לשליחת נתונים אלה למאגרי נתונים שונים. במסמך זה אנו משתמשים בשניים plugins: אחד עבור חיישני תצורה פתוחה והשני עבור חיישנים מקוריים של Juniper.
InfluxDB
כדי לאחסן את הנתונים במסד נתונים של סדרות זמן, אנו משתמשים ב-InfluxDB. תוסף הפלט בטלגרף שולח את הנתונים ל-InfluxDB, אשר מאחסן אותם בצורה יעילה ביותר. אנו משתמשים ב-V1.8 מכיוון שאין CLI עבור V2 ומעלה.
גרפאנה
Grafana משמש כדי להמחיש נתונים אלה. Grafana שואב את הנתונים מ-InfluxDB ומאפשר למשתמשים ליצור לוחות מחוונים עשירים ואינטראקטיביים. כאן, אנו מריצים את גרסה 10.2.2.

תצורה על המתג

כדי ליישם מחסנית זו, עלינו תחילה להגדיר את המתג כפי שמוצג באיור 2. השתמשנו ביציאה 50051. ניתן להשתמש בכל יציאה כאן. היכנס למתג QFX והוסף את התצורה הבאה.

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Switch

פֶּתֶק: תצורה זו מיועדת למעבדות/POCs מכיוון שהסיסמה משודרת בטקסט ברור. השתמש ב-SSL כדי להימנע מכך.

סְבִיבָה

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - סביבה

Nginx
זה נחוץ אם אינך יכול לחשוף את הנמל שבו מתארח גראפנה. השלב הבא הוא התקנת nginx בשרת אובונטו כדי לשמש כסוכן פרוקסי הפוך. לאחר התקנת nginx, הוסף את השורות המוצגות באיור 4 לקובץ "ברירת המחדל" והעבר את הקובץ מ-/etc/nginx ל-/etc/nginx/sites-enabled.

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

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx1

ודא שחומת האש מותאמת כדי לתת גישה מלאה לשירות nginx כפי שמוצג באיור 5.

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx2

לאחר התקנת nginx וביצוע השינויים הנדרשים, אנו אמורים להיות מסוגלים לגשת ל-Grafana מ-a web דפדפן באמצעות כתובת ה-IP של שרת אובונטו בו מותקנת כל התוכנה.
יש תקלה קטנה בגראפאנה שלא מאפשרת לך לאפס את סיסמת ברירת המחדל. השתמש בשלבים אלה אם אתה נתקל בבעיה זו.
שלבים שיש לבצע בשרת אובונטו כדי להגדיר את הסיסמה ב-Grafana:

  • עבור אל /var/lib/grafana/grafana.db
  • התקן sqllite3
    o sudo apt להתקין sqlite3
  • הפעל את הפקודה הזו בטרמינל שלך
    o sqlite3 grafana.db
  •  שורת הפקודה של Sqlite נפתחת; הפעל את השאילתה הבאה:
    >מחק מהמשתמש שבו login='admin'
  • הפעל מחדש את grafana והקלד admin כשם משתמש וסיסמה. הוא מבקש סיסמה חדשה.

לאחר התקנת כל התוכנה, צור את קובץ התצורה ב-Telegraf שיעזור למשוך את נתוני הטלמטריה מהמתג ולדחוף אותו ל-InfluxDB.

תוסף חיישן Openconfig

בשרת אובונטו, ערוך את הקובץ /etc/telegraf/telegraf.conf כדי להוסיף את כל הדרוש plugins וחיישנים. עבור חיישני ה-openconfig, אנו משתמשים בתוסף gNMI המוצג באיור 6. למטרות הדגמה, הוסף את שם המארח בתור "spine1", מספר היציאה "50051" המשמש עבור gRPC, שם המשתמש והסיסמה של המתג, והמספר של שניות לחיוג חוזר במקרה של כשל.
בבית המנוי, הוסף שם ייחודי, "מעבד" עבור החיישן המסוים הזה, נתיב החיישן ומרווח הזמן לאחיפת הנתונים האלה מהמתג. הוסף את אותו תוסף inputs.gnmi ו-inputs.gnmi.subscription עבור כל חיישני התצורה הפתוחים. (איור 6)

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx3

תוסף חיישן מקורי

זהו תוסף ממשק טלמטריה של Juniper המשמש עבור חיישנים מקומיים. באותו קובץ telegraf.conf, הוסף את תוסף החיישן המקורי inputs.jti_openconfig_telemetry שבו השדות כמעט זהים ל-openconfig. השתמש במזהה לקוח ייחודי עבור כל חיישן; כאן, אנו משתמשים ב-"telegraf3". השם הייחודי המשמש כאן עבור חיישן זה הוא "מאם" (איור 7).

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx4

לבסוף, הוסף תוסף פלט outputs.influxdb כדי לשלוח נתוני חיישן זה ל-InfluxDB. כאן, מסד הנתונים נקרא "telegraf" עם שם המשתמש בתור "influx" והסיסמה "influxdb" (איור 8).

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx5

לאחר עריכת קובץ telegraf.conf, הפעל מחדש את שירות telegraf. כעת, בדוק ב-InfluxDB CLI כדי לוודא אם נוצרו מדידות עבור כל החיישנים הייחודיים. הקלד "influx" כדי להיכנס ל-InfluxDB CLI.

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx6

כפי שניתן לראות באיור. 9, הזן את ההנחיה influxDB והשתמש במסד הנתונים "טלגרף". כל השמות הייחודיים שניתנו לחיישנים רשומים כמידות.
כדי לראות את הפלט של כל מדידה אחת, רק כדי לוודא שקובץ הטלגרף תקין והחיישן פועל, השתמש בפקודה "בחר * ממגבלת מעבד 1" כפי שמוצג באיור 10.

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx7

בכל פעם שמתבצעים שינויים בקובץ telegraf.conf, הקפידו לעצור את InfluxDB, להפעיל מחדש את Telegraf, ולאחר מכן להפעיל InfluxDB.
היכנס לגרפאנה מהדפדפן וצור לוחות מחוונים לאחר ווידוא שהנתונים נאספים בצורה נכונה.
עבור אל חיבורים > InfuxDB > הוסף מקור נתונים חדש.

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx8

  1. תן שם למקור הנתונים הזה. בהדגמה זו הוא "מבחן-1".
  2.  תחת בית ה-HTTP, השתמש ב-IP של שרת Ubuntu וביציאת 8086.
    Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx9
  3. בפרטי InfluxDB, השתמש באותו שם מסד נתונים, "telegraf", וספק את שם המשתמש והסיסמה של שרת אובונטו.
  4. לחץ על שמור ובדוק. ודא שאתה רואה את ההודעה, "מוצלח".
    Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Nginx10
  5. לאחר הוספת מקור הנתונים בהצלחה, עבור אל לוחות מחוונים ולחץ על חדש. תן לנו ליצור כמה לוחות מחוונים חיוניים לעומסי עבודה של AI/ML במצב עורך.

Examples של גרפי חיישנים

להלן exampרשימות של כמה מונים עיקריים שחיוניים לניטור רשת AI/ML.
אחוזיםtagשימוש אלקטרוני עבור ממשק כניסה et-0/0/0 בעמוד השדרה-1
Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - גרפים

  • בחר את מקור הנתונים כ-test-1.
  • בקטע FROM, בחר את המדידה כ"ממשק". זהו השם הייחודי המשמש לנתיב החיישן הזה.
  • בקטע WHERE, בחר מכשיר::tag, וב- tag value, בחר את שם המארח של המתג, כלומר, spine1.
  • בקטע SELECT, בחר את ענף החיישן שברצונך לנטר; במקרה זה בחר "eld(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)". כעת באותו קטע, לחץ על "+" והוסף את מתמטיקה החישובית הזו (/50000000000 * 100). אנחנו בעצם מחשבים את האחוזיםtagשימוש בממשק 400G.
  • ודא שהפורמט הוא "סדרת זמן", ושם את הגרף בקטע כינוי.

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Graphs1תפוסת חיץ שיא לכל תור

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Graphs2

  • בחר את מקור הנתונים כ-test-1.
  • בקטע FROM, בחר את המדידה בתור "buffer".
  • בקטע WHERE, ישנם שלושה שדות למלא. בחר מכשיר::tag, וב- tag value בחר את שם המארח של המתג (כלומר spine-1); ובחר /cos/interfaces/interface/@name::tag ובחר את הממשק (כלומר et- 0/0/0); ובחר גם את התור, /cos/interfaces/interface/queues/queue/@queue::tag ובחר את התור מספר 4.
  • בקטע SELECT, בחר את ענף החיישן שברצונך לנטר; במקרה זה בחר "שדה (/cos/interfaces/interface/queues/queue/PeakBuerOccupancy)."
  • ודא שהפורמט הוא "סדרת זמן" ושם את הגרף בקטע כינוי.

אתה יכול לאסוף נתונים עבור ממשקים מרובים על אותו גרף כפי שניתן לראות באיור 17 עבור et-0/0/0, et-0/0/1, et-0/0/2 וכו'.

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - Graphs3

PFC ו-ECN פירושם נגזרת
Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - נגזרת

למציאת הנגזרת הממוצעת (ההבדל בערך בתוך טווח זמן), השתמש במצב השאילתה הגולמית.
זוהי שאילתת הזרימה שבה השתמשנו כדי למצוא את הנגזרת הממוצעת בין שני ערכי 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 GROUP לפי זמן($interval)

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - באופן דומה עבור ECN

SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “interface” WHERE (“device”::tag = 'Spine-1') ו-$timeFilter GROUP לפי זמן($interval)

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - באופן דומה עבור ECN1

שגיאות משאבי קלט פירושן נגזרת

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - באופן דומה עבור ECN2

פירוש השאילתה הגולמית עבור שגיאות משאבים הנגזרת היא:
SELECT derivative(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “interface” WHERE (“device”::tag = 'Spine-1') ו-$timeFilter GROUP לפי זמן($interval)

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - באופן דומה עבור ECN3

טיפות זנב אומרות נגזרת

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - באופן דומה עבור ECN4

השאילתה הגולמית עבור נגזרת ממוצעת של נפילות זנב היא:
SELECT derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “buffer” 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)
 ניצול מעבד

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - ניצול מעבד

  • בחר את מקור הנתונים כ-test-1.
  • בקטע FROM, בחר את המדידה בתור "newcpu"
  • ב-WHERE, יש שלושה שדות למלא. בחר מכשיר::tag וב- tag value בחר את שם המארח של המתג (כלומר spine-1). AND ב-/components/component/properties/property/name:tag, ובחר cpuutilization-total AND בשם::tag בחר RE0.
  • בקטע SELECT, בחר את ענף החיישן שברצונך לנטר. במקרה זה, בחר "שדה(מצב/ערך)".

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - ניצול CPU1

השאילתה הגולמית למציאת הנגזרת הלא-שלילית של נפילות זנב עבור מתגים מרובים בממשקים מרובים בסיביות/שנייה.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “buffer” 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 לפי זמן($__interval),device::tag מלא (null)

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML - ניצול CPU2

אלה היו חלק מהאקסיםampחלקים של הגרפים שניתן ליצור לניטור רשת 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 עבור תוכנת עומסי עבודה של AI ML - סמל

מטה תאגידים ומכירות
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
בואינג אווניו 240
1119 PZ Schiphol-Rijk
אמסטרדם, הולנד
טלפון: 31.207.125.700+
פקס: 31.207.125.701+
זכויות יוצרים 2023 Juniper Networks. Inc. זכויות Ail שמורות. Juniper Networks, הלוגו של Juniper Networks, Juniper, Junos וסימנים מסחריים אחרים הם סימנים מסחריים רשומים של Juniper Networks. Inc. ו/או שלוחותיה בארצות הברית ובמדינות אחרות. שמות אחרים עשויים להיות סימנים מסחריים של בעליהם בהתאמה. ג'וניפר נטוורקס אינה נושאת באחריות לכל אי דיוקים במסמך זה. ג'וניפר נטוורקס שומרת לעצמה את הזכות לשנות. לְשַׁנוֹת. להעביר או לשנות פרסום זה ללא הודעה מוקדמת.
שלח משוב אל: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

מסמכים / משאבים

Juniper NETWORKS Telemetry In Junos עבור תוכנת עומסי עבודה של AI ML [pdfמדריך למשתמש
טלמטריה ב-Junos עבור תוכנת עומסי עבודה של AI ML, תוכנת עומסי עבודה של Junos עבור תוכנת עומסי עבודה בינה מלאכותית ML, תוכנת עומסי עבודה של AI ML, תוכנת עומסי עבודה, תוכנה

הפניות

השאר תגובה

כתובת האימייל שלך לא תפורסם. שדות חובה מסומנים *