Juniper NETWORKS- logoTelemetri dalam Junos untuk Beban Kerja AI/ML
Pengarang: Shalini Mukherjee

pengenalan

Memandangkan traffic kluster AI memerlukan rangkaian tanpa kerugian dengan daya pemprosesan tinggi dan kependaman rendah, elemen kritikal rangkaian AI ialah pengumpulan data pemantauan. Junos Telemetry membolehkan pemantauan berbutir bagi penunjuk prestasi utama, termasuk ambang dan pembilang untuk pengurusan kesesakan dan pengimbangan beban trafik. Sesi gRPC menyokong penstriman data telemetri. gRPC ialah rangka kerja moden, sumber terbuka, berprestasi tinggi yang dibina pada pengangkutan HTTP/2. Ia memperkasakan keupayaan penstriman dwiarah asli dan termasuk metadata tersuai yang fleksibel dalam pengepala permintaan. Langkah awal dalam telemetri ialah mengetahui data yang hendak dikumpul. Kami kemudiannya boleh menganalisis data ini dalam pelbagai format. Sebaik sahaja kami mengumpul data, adalah penting untuk membentangkannya dalam format yang mudah dipantau, membuat keputusan dan menambah baik perkhidmatan yang ditawarkan. Dalam kertas ini, kami menggunakan timbunan telemetri yang terdiri daripada Telegraf, InfluxDB dan Grafana. Tindanan telemetri ini mengumpul data menggunakan model tolak. Model tarikan tradisional adalah intensif sumber, memerlukan campur tangan manual dan boleh memasukkan jurang maklumat dalam data yang mereka kumpulkan. Model tolak mengatasi batasan ini dengan menyampaikan data secara tidak segerak. Mereka memperkayakan data dengan menggunakan mesra pengguna tags dan nama. Setelah data berada dalam format yang lebih mudah dibaca, kami menyimpannya dalam pangkalan data dan menggunakannya dalam visualisasi interaktif web aplikasi untuk menganalisis rangkaian. Rajah. 1 menunjukkan kepada kita cara tindanan ini direka bentuk untuk pengumpulan, penyimpanan dan visualisasi data yang cekap, daripada peranti rangkaian yang menolak data kepada pengumpul kepada data yang dipaparkan pada papan pemuka untuk analisis.

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML -

Timbunan TIG

Kami menggunakan pelayan Ubuntu untuk memasang semua perisian termasuk timbunan TIG.

telegraf
Untuk mengumpul data, kami menggunakan Telegraf pada pelayan Ubuntu yang menjalankan 22.04.2. Versi Telegraf yang dijalankan dalam demo ini ialah 1.28.5.
Telegraf ialah ejen pelayan dipacu pemalam untuk mengumpul dan melaporkan metrik. Ia menggunakan pemproses plugins untuk memperkaya dan menormalkan data. Keluaran plugins digunakan untuk menghantar data ini ke pelbagai stor data. Dalam dokumen ini kami menggunakan dua plugins: satu untuk sensor openconfig dan satu lagi untuk sensor asli Juniper.
InuxDB
Untuk menyimpan data dalam pangkalan data siri masa, kami menggunakan InfluxDB. Pemalam output dalam Telegraf menghantar data ke InuxDB, yang menyimpannya dengan cara yang sangat cekap. Kami menggunakan V1.8 kerana tiada CLI hadir untuk V2 dan ke atas.
Grafana
Grafana digunakan untuk menggambarkan data ini. Grafana menarik data daripada InfluxDB dan membenarkan pengguna mencipta papan pemuka yang kaya dan interaktif. Di sini, kami menjalankan versi 10.2.2.

Konfigurasi Pada Suis

Untuk melaksanakan tindanan ini, mula-mula kita perlu mengkonfigurasi suis seperti yang ditunjukkan dalam Rajah 2. Kami telah menggunakan port 50051. Mana-mana port boleh digunakan di sini. Log masuk ke suis QFX dan tambahkan konfigurasi berikut.

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Suis

Nota: Konfigurasi ini adalah untuk makmal/POC kerana kata laluan dihantar dalam teks yang jelas. Gunakan SSL untuk mengelakkan ini.

Persekitaran

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Persekitaran

Nginx
Ini diperlukan jika anda tidak dapat mendedahkan port di mana Grafana dihoskan. Langkah seterusnya ialah memasang nginx pada pelayan Ubuntu untuk berfungsi sebagai ejen proksi terbalik. Setelah nginx dipasang, tambahkan baris yang ditunjukkan dalam Rajah 4 kepada fail "lalai" dan alihkan fail dari /etc/nginx ke /etc/nginx/sites-enabled.

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx1

Pastikan firewall dilaraskan untuk memberikan akses penuh kepada perkhidmatan nginx seperti yang ditunjukkan dalam Rajah 5.

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx2

Setelah nginx dipasang dan perubahan yang diperlukan dibuat, kita seharusnya dapat mengakses Grafana dari a web pelayar dengan menggunakan alamat IP pelayan Ubuntu di mana semua perisian dipasang.
Terdapat gangguan kecil dalam Grafana yang tidak membenarkan anda menetapkan semula kata laluan lalai. Gunakan langkah ini jika anda menghadapi masalah ini.
Langkah-langkah yang perlu dilakukan pada pelayan Ubuntu untuk menetapkan kata laluan dalam Grafana:

  • Pergi ke /var/lib/grafana/grafana.db
  • Pasang sqlite3
    o sudo apt install sqlite3
  • Jalankan arahan ini pada terminal anda
    o sqlite3 grafana.db
  •  Sqlite command prompt dibuka; jalankan pertanyaan berikut:
    >padam daripada pengguna di mana log masuk='admin'
  • Mulakan semula grafana dan taip admin sebagai nama pengguna dan kata laluan. Ia meminta kata laluan baharu.

Setelah semua perisian dipasang, cipta fail konfigurasi dalam Telegraf yang akan membantu menarik data telemetri daripada suis dan menolaknya ke InfluxDB.

Pemalam Sensor Openconfig

Pada pelayan Ubuntu, edit fail /etc/telegraf/telegraf.conf untuk menambah semua yang diperlukan plugins dan penderia. Untuk penderia openconfig, kami menggunakan pemalam gNMI yang ditunjukkan dalam Rajah 6. Untuk tujuan demo, tambahkan nama hos sebagai "spine1", nombor port "50051" yang digunakan untuk gRPC, nama pengguna dan kata laluan suis dan nombor beberapa saat untuk mendail semula sekiranya berlaku kegagalan.
Dalam bait langganan, tambahkan nama unik, "cpu" untuk penderia khusus ini, laluan penderia dan selang masa untuk mengambil data ini daripada suis. Tambahkan pemalam inputs.gnmi dan inputs.gnmi.subscription yang sama untuk semua penderia konfigurasi terbuka. (Rajah 6)

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx3

Pemalam Sensor Asli

Ini ialah pemalam antara muka telemetri Juniper yang digunakan untuk penderia asli. Dalam fail telegraf.conf yang sama, tambahkan input pemalam sensor asli.jti_openconfig_telemetry di mana medan hampir sama dengan openconfig. Gunakan ID pelanggan unik untuk setiap penderia; di sini, kami menggunakan "telegraf3". Nama unik yang digunakan di sini untuk sensor ini ialah "mem" (Rajah 7).

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx4

Akhir sekali, tambahkan pemalam keluaran outputs.influxdb untuk menghantar data penderia ini ke InfluxDB. Di sini, pangkalan data dinamakan “telegraf” dengan nama pengguna sebagai “inux” dan kata laluan “inuxdb” (Rajah 8).

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx5

Sebaik sahaja anda telah mengedit fail telegraf.conf, mulakan semula perkhidmatan telegraf. Sekarang, semak dalam InxDB CLI untuk memastikan sama ada ukuran dibuat untuk semua penderia unik. Taip “inx” untuk memasuki InxDB CLI.

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx6

Seperti yang dilihat dalam Rajah. 9, masukkan gesaan inxDB dan gunakan pangkalan data “telegraf”. Semua nama unik yang diberikan kepada penderia disenaraikan sebagai ukuran.
Untuk melihat output mana-mana satu ukuran, hanya untuk memastikan fail telegraf adalah betul dan penderia berfungsi, gunakan arahan "pilih * daripada had cpu 1" seperti yang ditunjukkan dalam Rajah 10.

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx7

Setiap kali perubahan dibuat pada fail telegraf.conf, pastikan untuk menghentikan InfluxDB, mulakan semula Telegraf, dan kemudian mulakan InfluxDB.
Log masuk ke Grafana dari pelayar dan buat papan pemuka selepas memastikan data dikumpul dengan betul.
Pergi ke Sambungan > InfuxDB > Tambah sumber data baharu.

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx8

  1. Beri nama kepada sumber data ini. Dalam demo ini ia adalah "ujian-1".
  2.  Di bawah stanza HTTP, gunakan IP pelayan Ubuntu dan port 8086.
    Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx9
  3. Dalam butiran InuxDB, gunakan nama pangkalan data yang sama, “telegraf,” dan berikan nama pengguna dan kata laluan pelayan Ubuntu.
  4. Klik Simpan & uji. Pastikan anda melihat mesej, "berjaya".
    Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Nginx10
  5. Setelah sumber data berjaya ditambahkan, pergi ke Papan Pemuka dan klik Baharu. Mari kita cipta beberapa papan pemuka yang penting untuk beban kerja AI/ML dalam mod editor.

Examples Daripada Graf Penderia

Berikut adalah exampbeberapa kaunter utama yang penting untuk memantau rangkaian AI/ML.
Peratustage penggunaan untuk antara muka kemasukan et-0/0/0 pada tulang belakang-1
Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Graf

  • Pilih sumber data sebagai ujian-1.
  • Dalam bahagian FROM, pilih ukuran sebagai "antara muka". Ini adalah nama unik yang digunakan untuk laluan penderia ini.
  • Dalam bahagian WHERE, pilih peranti::tag, dan dalam tag nilai, pilih nama hos suis, iaitu, tulang belakang1.
  • Dalam bahagian PILIH, pilih cawangan sensor yang anda mahu pantau; dalam kes ini pilih “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”. Sekarang dalam bahagian yang sama, klik pada “+” dan tambahkan pengiraan matematik ini (/50000000000 * 100). Kami pada asasnya mengira peratusantage penggunaan antara muka 400G.
  • Pastikan FORMAT ialah "siri masa", dan namakan graf dalam bahagian ALIAS.

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Graf1Penghunian penimbal puncak untuk sebarang baris gilir

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Graf2

  • Pilih sumber data sebagai ujian-1.
  • Dalam bahagian FROM, pilih ukuran sebagai "penampan."
  • Dalam bahagian WHERE, terdapat tiga medan untuk diisi. Pilih peranti::tag, dan dalam tag nilai pilih nama hos suis (iaitu tulang belakang-1); DAN pilih /cos/interfaces/interface/@name::tag dan pilih antara muka (iaitu et- 0/0/0); DAN pilih baris gilir juga, /cos/interfaces/interface/queues/queue/@queue::tag dan pilih nombor giliran 4.
  • Dalam bahagian PILIH, pilih cawangan sensor yang anda mahu pantau; dalam kes ini pilih "field(/cos/interfaces/interface/queues/queue/PeakBuerOccupancy).”
  • Pastikan FORMAT adalah "siri masa" dan namakan graf dalam bahagian ALIAS.

Anda boleh menyusun data untuk berbilang antara muka pada graf yang sama seperti yang dilihat dalam Rajah 17 untuk et-0/0/0, et-0/0/1, et-0/0/2 dsb.

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Graf3

PFC dan ECN bermaksud derivatif
Juniper NETWORKS Telemetry In Junos for AI ML Workloads Software - derivatif

Untuk mencari min derivatif (perbezaan nilai dalam julat masa), gunakan mod pertanyaan mentah.
Ini ialah pertanyaan kemasukan yang telah kami gunakan untuk mencari terbitan min antara dua nilai PFC pada et-0/0/0 Spine-1 dalam satu saat.
SELECT derivatif(min(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) DARI “interface” WHERE (“peranti”::tag = 'Spine-1') DAN $timeFilter KUMPULAN MENGIKUT masa($interval)

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Begitu juga untuk ECN

PILIH terbitan(min(“/antara muka/antara muka[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) DARI “antara muka” WHERE (“peranti”::tag = 'Spine-1') DAN $timeFilter KUMPULAN MENGIKUT masa($interval)

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Begitu juga untuk ECN1

Ralat sumber input bermakna derivatif

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Begitu juga untuk ECN2

Pertanyaan mentah untuk ralat sumber min derivatif ialah:
PILIH terbitan(min(“/antara muka/antara muka[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) DARI “antara muka” WHERE (“peranti”::tag = 'Spine-1') DAN $timeFilter KUMPULAN MENGIKUT masa($interval)

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Begitu juga untuk ECN3

Titisan ekor bermakna terbitan

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - Begitu juga untuk ECN4

Pertanyaan mentah untuk penurunan ekor min derivatif ialah:
PILIH terbitan(min(“/cos/antara muka/antara muka/baris gilir/baris gilir/tailDropBytes”), 1s) DARI “penampan” WHERE (“peranti”::tag = 'Leaf-1' DAN “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' DAN “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') DAN $timeFilter KUMPULAN MENGIKUT masa($__selang) isi(null)
 Penggunaan CPU

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - penggunaan CPU

  • Pilih sumber data sebagai ujian-1.
  • Dalam bahagian FROM, pilih ukuran sebagai "newcpu"
  • Dalam WHERE, terdapat tiga medan untuk diisi. Pilih peranti::tag dan dalam tag nilai pilih nama hos suis (iaitu tulang belakang-1). DAN dalam /components/component/properties/property/name:tag, dan pilih cpuutilization-total DAN dalam nama::tag pilih RE0.
  • Dalam bahagian PILIH, pilih cawangan penderia yang anda ingin pantau. Dalam kes ini, pilih "medan(keadaan/nilai)".

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - penggunaan CPU1

Pertanyaan mentah untuk mencari terbitan bukan negatif tail drop untuk berbilang suis pada berbilang antara muka dalam bit/saat.
PILIH non_negative_derivative(min(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 DARI “buer” WHERE (peranti::tag =~ /^Spine-[1-2]$/) dan (“/cos/interfaces/interface/@name”::tag =~ /et-0\/0\/[0-9]/ atau “/cos/interfaces/interface/@name”::tag=~/et-0\/0\/1[0-5]/) DAN $timeFilter KUMPULAN MENGIKUT masa($__interval),peranti::tag isi (null)

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - penggunaan CPU2

Ini adalah beberapa bekasampsedikit daripada graf yang boleh dibuat untuk memantau rangkaian AI/ML.

Ringkasan

Kertas kerja ini menggambarkan kaedah menarik data telemetri dan menggambarkannya dengan mencipta graf. Kertas ini secara khusus bercakap tentang penderia AI/ML, kedua-dua asli dan openconfig tetapi persediaan boleh digunakan untuk semua jenis penderia. Kami juga telah menyertakan penyelesaian untuk berbilang isu yang mungkin anda hadapi semasa membuat persediaan. Langkah-langkah dan output yang digambarkan dalam kertas ini adalah khusus untuk versi timbunan TIG yang dinyatakan sebelum ini. Ia tertakluk kepada perubahan bergantung pada versi perisian, penderia dan versi Junos.

Rujukan

Penjelajah Model Data Juniper Yang untuk semua pilihan sensor
https://apps.juniper.net/ydm-explorer/
Forum Openconfig untuk penderia openconfig
https://www.openconfig.net/projects/models/

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML - ikon

Ibu Pejabat Korporat dan Jualan
Juniper Networks, Inc.
1133 Cara Inovasi
Sunnyvale, CA 94089 Amerika Syarikat
Telefon: 888. JUNIPER (888.586.4737)
atau +1.408.745.2000
Faks: +1.408.745.2100
www.juniper.net
Ibu Pejabat APAC dan EMEA
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Belanda
Telefon: +31.207.125.700
Faks: +31.207.125.701
Hak Cipta 2023 Juniper Networks. Inc. Hak Ail terpelihara. Juniper Networks, logo Juniper Networks, Juniper, Junos, dan tanda dagangan lain ialah tanda dagangan berdaftar Juniper Networks. inc. dan/atau sekutunya di Amerika Syarikat dan negara lain. Nama lain mungkin merupakan tanda dagangan pemilik masing-masing. Juniper Networks tidak bertanggungjawab untuk sebarang ketidaktepatan dalam dokumen ini. Juniper Networks berhak untuk menukar. ubah suai. memindahkan, atau sebaliknya menyemak penerbitan ini tanpa notis.
Hantar maklum balas kepada: design-center-comments@juniper.net V1.0/240807/ejm5-telemetri-junos-ai-ml

Dokumen / Sumber

Juniper NETWORKS Telemetry In Junos untuk Perisian Beban Kerja AI ML [pdf] Panduan Pengguna
Telemetri Dalam Junos untuk Perisian Beban Kerja AI ML, Perisian Junos untuk Perisian Beban Kerja AI ML, Perisian Beban Kerja AI ML, Perisian Beban Kerja, Perisian

Rujukan

Tinggalkan komen

Alamat e-mel anda tidak akan diterbitkan. Medan yang diperlukan ditanda *