Juniper NETWORKS- logoTelemetrie v Junos pro pracovní zátěže AI/ML
Autor: Shalini Mukherjee

Zavedení

Protože klastrový provoz AI vyžaduje bezztrátové sítě s vysokou propustností a nízkou latencí, je kritickým prvkem sítě AI shromažďování monitorovacích dat. Junos Telemetry umožňuje podrobné sledování klíčových ukazatelů výkonu, včetně prahových hodnot a počítadel pro řízení přetížení a vyrovnávání dopravní zátěže. Relace gRPC podporují streamování telemetrických dat. gRPC je moderní, open-source, vysoce výkonný framework, který je postaven na HTTP/2 transportu. Umožňuje nativní obousměrné streamování a zahrnuje flexibilní vlastní metadata v záhlaví požadavků. Prvním krokem v telemetrii je vědět, jaká data mají být shromažďována. Tato data pak můžeme analyzovat v různých formátech. Jakmile data shromáždíme, je důležité je prezentovat ve formátu, který lze snadno sledovat, přijímat rozhodnutí a zlepšovat nabízené služby. V tomto článku používáme telemetrický zásobník sestávající z Telegraf, InfluxDB a Grafana. Tento zásobník telemetrie shromažďuje data pomocí modelu push. Tradiční pull modely jsou náročné na zdroje, vyžadují manuální zásah a mohou obsahovat informační mezery v datech, která shromažďují. Push modely překonávají tato omezení tím, že doručují data asynchronně. Obohacují data o uživatelsky přívětivé použití tags a jména. Jakmile jsou data v čitelnějším formátu, uložíme je do databáze a použijeme v interaktivní vizualizaci web aplikace pro analýzu sítě. Postava. 1 nám ukazuje, jak je tento zásobník navržen pro efektivní sběr, ukládání a vizualizaci dat, od síťových zařízení posílajících data do kolektoru až po data zobrazovaná na řídicích panelech pro analýzu.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software -

TIG Stack

K instalaci veškerého softwaru včetně zásobníku TIG jsme použili server Ubuntu.

Telegrafovat
Ke sběru dat používáme Telegraf na serveru Ubuntu se systémem 22.04.2. Verze Telegraf spuštěná v tomto demu je 1.28.5.
Telegraf je serverový agent řízený pluginem pro shromažďování a vykazování metrik. Používá procesor plugins k obohacení a normalizaci dat. Výstup plugins se používají k odesílání těchto dat do různých datových úložišť. V tomto dokumentu používáme dva plugins: jeden pro senzory openconfig a druhý pro nativní senzory Juniper.
InfluxDB
Pro uložení dat do databáze časových řad používáme InfluxDB. Výstupní plugin v Telegrafu odesílá data do InfluxDB, která je vysoce efektivně ukládá. Používáme V1.8, protože pro V2 a vyšší není k dispozici žádné CLI.
Grafana
Grafana se používá k vizualizaci těchto dat. Grafana stahuje data z InfluxDB a umožňuje uživatelům vytvářet bohaté a interaktivní dashboardy. Zde používáme verzi 10.2.2.

Konfigurace na přepínači

K implementaci tohoto zásobníku musíme nejprve nakonfigurovat přepínač podle obrázku 2. Použili jsme port 50051. Zde lze použít libovolný port. Přihlaste se k přepínači QFX a přidejte následující konfiguraci.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software – Switch

Poznámka: Tato konfigurace je určena pro laboratoře/POC, protože heslo se přenáší jako prostý text. Abyste tomu zabránili, použijte SSL.

Prostředí

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Environment

Nginx
To je potřeba, pokud nemůžete odhalit port, na kterém je Grafana hostována. Dalším krokem je instalace nginx na server Ubuntu, který bude sloužit jako reverzní proxy agent. Jakmile je nginx nainstalován, přidejte řádky zobrazené na obrázku 4 do „výchozího“ souboru a přesuňte soubor z /etc/nginx do /etc/nginx/sites-enabled.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx1

Ujistěte se, že je brána firewall nastavena tak, aby umožňovala plný přístup ke službě nginx, jak je znázorněno na obrázku 5.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx2

Jakmile je nginx nainstalován a jsou provedeny požadované změny, měli bychom mít přístup ke Grafaně z a web prohlížeče pomocí IP adresy serveru Ubuntu, kde je nainstalován veškerý software.
V Grafaně je malá závada, která vám neumožňuje obnovit výchozí heslo. Pokud narazíte na tento problém, použijte tyto kroky.
Kroky, které je třeba provést na serveru Ubuntu pro nastavení hesla v Grafaně:

  • Přejděte na /var/lib/grafana/grafana.db
  • Nainstalujte sqllite3
    o sudo apt install sqlite3
  • Spusťte tento příkaz na svém terminálu
    o sqlite3 grafana.db
  •  Otevře se příkazový řádek Sqlite; spusťte následující dotaz:
    >smazat z uživatele kde login='admin'
  • Restartujte grafana a jako uživatelské jméno a heslo zadejte admin. Vyzve k zadání nového hesla.

Jakmile je veškerý software nainstalován, vytvořte v Telegrafu konfigurační soubor, který pomůže vytáhnout telemetrická data z přepínače a přenést je do InfluxDB.

Openconfig Sensor Plugin

Na serveru Ubuntu upravte soubor /etc/telegraf/telegraf.conf a přidejte všechny požadované plugins a senzory. Pro senzory openconfig používáme plugin gNMI zobrazený na obrázku 6. Pro účely ukázky přidejte název hostitele jako „spine1“, číslo portu „50051“, které se používá pro gRPC, uživatelské jméno a heslo přepínače a číslo sekund pro opakované vytáčení v případě selhání.
Ve stanze odběru přidejte jedinečný název „cpu“ pro tento konkrétní senzor, cestu k senzoru a časový interval pro získání těchto dat z přepínače. Přidejte stejný plugin inputs.gnmi a inputs.gnmi.subscription pro všechny otevřené konfigurační senzory. (Obrázek 6)

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx3

Plugin Native Sensor

Toto je plugin telemetrického rozhraní Juniper používaný pro nativní senzory. Do stejného souboru telegraf.conf přidejte nativní senzorový plugin inputs.jti_openconfig_telemetry, kde jsou pole téměř stejná jako openconfig. Použijte jedinečné ID klienta pro každý senzor; zde používáme „telegraf3“. Jedinečný název použitý zde pro tento senzor je „mem“ (obrázek 7).

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx4

Nakonec přidejte výstupní plugin outputs.influxdb pro odesílání těchto dat senzoru do InfluxDB. Zde se databáze jmenuje „telegraf“ s uživatelským jménem „influx“ a heslem „influxdb“ (obrázek 8).

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx5

Jakmile upravíte soubor telegraf.conf, restartujte službu telegraf. Nyní zkontrolujte v InfluxDB CLI, abyste se ujistili, že jsou vytvořena měření pro všechny jedinečné senzory. Napište „influx“ pro vstup do InfluxDB CLI.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx6

Jak je vidět na obrázku. 9, zadejte příkaz influxDB a použijte databázi „telegraf“. Všechny jedinečné názvy dané senzorům jsou uvedeny jako měření.
Chcete-li vidět výstup libovolného měření, jen abyste se ujistili, že soubor telegrafu je správný a snímač funguje, použijte příkaz „select * from cpu limit 1“, jak je znázorněno na obrázku 10.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx7

Pokaždé, když provedete změny v souboru telegraf.conf, nezapomeňte zastavit InfluxDB, restartovat Telegraf a poté spustit InfluxDB.
Přihlaste se do Grafany z prohlížeče a vytvořte řídicí panely poté, co se ujistěte, že jsou data shromažďována správně.
Přejděte na Připojení > InfuxDB > Přidat nový zdroj dat.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx8

  1. Pojmenujte tento zdroj dat. V tomto demu je to „test-1“.
  2.  Ve stanze HTTP použijte IP adresu serveru Ubuntu a port 8086.
    Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx9
  3. V podrobnostech InfluxDB použijte stejný název databáze „telegraf“ a zadejte uživatelské jméno a heslo serveru Ubuntu.
  4. Klikněte na Uložit a otestovat. Ujistěte se, že vidíte zprávu „úspěšně“.
    Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Nginx10
  5. Po úspěšném přidání zdroje dat přejděte na Řídicí panely a klikněte na Nový. Pojďme vytvořit několik dashboardů, které jsou nezbytné pro pracovní zátěže AI/ML v režimu editoru.

ExampLes senzorových grafů

Následují exampněkolik hlavních čítačů, které jsou nezbytné pro monitorování sítě AI/ML.
Procenttage využití pro vstupní rozhraní et-0/0/0 na páteři-1
Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Grafy

  • Vyberte zdroj dat jako test-1.
  • V sekci FROM vyberte měření jako „rozhraní“. Toto je jedinečný název používaný pro tuto dráhu senzoru.
  • V části KDE vyberte zařízení::taga v tag hodnotu, vyberte název hostitele přepínače, tedy páteř1.
  • V sekci SELECT vyberte větev senzoru, kterou chcete monitorovat; v tomto případě zvolte „field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)“. Nyní ve stejné sekci klikněte na „+“ a přidejte tuto výpočetní matematiku (/50000000000 * 100). V podstatě počítáme procentatage využití rozhraní 400G.
  • Ujistěte se, že FORMÁT je „časová řada“ a pojmenujte graf v sekci ALIAS.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Graphs1Maximální obsazenost vyrovnávací paměti pro jakoukoli frontu

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Graphs2

  • Vyberte zdroj dat jako test-1.
  • V sekci FROM vyberte měření jako „buffer“.
  • V sekci WHERE jsou tři pole k vyplnění. Vyberte zařízení::taga v tag hodnota vyberte název hostitele přepínače (tj. páteř-1); A vyberte /cos/interfaces/interface/@name::tag a vyberte rozhraní (tj. et- 0/0/0); A vyberte také frontu, /cos/interfaces/interface/queues/queue/@queue::tag a zvolte číslo fronty 4.
  • V sekci SELECT vyberte větev senzoru, kterou chcete monitorovat; v tomto případě zvolte „field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy).“
  • Ujistěte se, že FORMÁT je „časová řada“ a pojmenujte graf v sekci ALIAS.

Data pro více rozhraní můžete porovnávat na stejném grafu, jak je vidět na obrázku 17 pro et-0/0/0, et-0/0/1, et-0/0/2 atd.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - Graphs3

PFC a ECN střední derivace
Juniper NETWORKS Telemetry In Junos pro AI ML Workloads Software - odvozený

Pro nalezení střední derivace (rozdílu v hodnotě v časovém rozsahu) použijte režim surového dotazu.
Toto je dotaz na influx, který jsme použili k nalezení střední derivace mezi dvěma hodnotami PFC na et-0/0/0 Spine-1 za sekundu.
SELECT derivace(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) FROM “rozhraní” WHERE (”zařízení”::tag = 'Spine-1') A $timeFilter GROUP BY time ($interval)

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software – podobně pro ECN

SELECT derivace(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) FROM “rozhraní” WHERE (”zařízení”::tag = 'Spine-1') A $timeFilter GROUP BY time ($interval)

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software – podobně pro ECN1

Chyby vstupních zdrojů znamenají derivaci

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software – podobně pro ECN2

Nezpracovaný dotaz na střední derivaci chyb zdrojů je:
SELECT derivace(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) FROM “rozhraní” WHERE („zařízení”::tag = 'Spine-1') A $timeFilter GROUP BY time ($interval)

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software – podobně pro ECN3

Kapky ocasu znamenají derivaci

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software – podobně pro ECN4

Nezpracovaný dotaz na střední derivaci poklesu ocasu je:
SELECT derivace(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) FROM “buffer” WHERE (“zařízení”::tag = 'Leaf-1' AND "/cos/interfaces/interface/@name"::tag = 'et-0/0/0' AND „/cos/interfaces/interface/queues/queue/@queue“::tag = '4') A $timeFilter GROUP BY time($__interval) fill (null)
 využití CPU

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software - využití CPU

  • Vyberte zdroj dat jako test-1.
  • V sekci FROM vyberte měření jako „newcpu“
  • V WHERE jsou tři pole, která je třeba vyplnit. Vyberte zařízení::tag a v tag hodnota vyberte název hostitele přepínače (tj. páteř-1). A v /components/component/properties/property/name:taga vyberte cpuutilization-total AND in name::tag vyberte RE0.
  • V sekci SELECT vyberte větev senzoru, kterou chcete monitorovat. V tomto případě zvolte „field(state/value)“.

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software – využití CPU1

Nezpracovaný dotaz pro nalezení nezáporné derivace koncových kapek pro více přepínačů na více rozhraních v bitech/s.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “buffer” WHERE (zařízení::tag =~ /^Spine-[1-2]$/) a („/cos/interfaces/interface/@name“::tag =~ /et-0\/0\/[0-9]/ nebo „/cos/interfaces/interface/@name“::tag=~/et-0\/0\/1[0-5]/) A $timeFilter GROUP BY time($__interval),device::tag vyplnit (null)

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software – využití CPU2

To byli někteří z bývalýchamppočet grafů, které lze vytvořit pro monitorování sítě AI/ML.

Shrnutí

Tento článek ilustruje metodu získávání telemetrických dat a jejich vizualizaci pomocí vytváření grafů. Tento článek konkrétně hovoří o senzorech AI/ML, nativních i openconfig, ale nastavení lze použít pro všechny druhy senzorů. Zahrnuli jsme také řešení mnoha problémů, se kterými se můžete setkat při vytváření nastavení. Kroky a výstupy zobrazené v tomto dokumentu jsou specifické pro výše uvedené verze zásobníku TIG. Může se změnit v závislosti na verzi softwaru, senzorů a verzi Junos.

Reference

Juniper Yang Data Model Explorer pro všechny možnosti senzorů
https://apps.juniper.net/ydm-explorer/
Openconfig fórum pro openconfig senzory
https://www.openconfig.net/projects/models/

Telemetrie Juniper NETWORKS v Junos pro AI ML Workloads Software – ikona

Firemní a obchodní ústředí
Společnost Juniper Networks, Inc.
1133 Inovační cesta
Sunnyvale, CA 94089, USA
Telefon: 888. JUNIPER (888.586.4737)
nebo +1.408.745.2000
Fax: +1.408.745.2100
www.juniper.net
Centrála APAC a EMEA
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Nizozemsko
Telefon: +31.207.125.700
Fax: +31.207.125.701
Copyright 2023 Juniper Networks. Inc. Všechna práva vyhrazena. Juniper Networks, logo Juniper Networks, Juniper, Junos a další ochranné známky jsou registrované ochranné známky společnosti Juniper Networks. vč. a/nebo jejích přidružených společností ve Spojených státech a dalších zemích. Ostatní názvy mohou být ochrannými známkami příslušných vlastníků. Juniper Networks nepřebírá žádnou odpovědnost za jakékoli nepřesnosti v tomto dokumentu. Juniper Networks si vyhrazuje právo na změnu. upravit. převést nebo jinak upravit tuto publikaci bez předchozího upozornění.
Odeslat zpětnou vazbu na: design-center-comments@juniper.net V1.0/240807/ejm5-telemetry-junos-ai-ml

Dokumenty / zdroje

Telemetrie Juniper NETWORKS v softwaru Junos pro AI ML Workloads Software [pdfUživatelská příručka
Telemetrie v Junos pro AI ML Workloads Software, Junos pro AI ML Workloads Software, AI ML Workloads Software, Workloads Software, Software

Reference

Zanechte komentář

Vaše emailová adresa nebude zveřejněna. Povinná pole jsou označena *