Telemetri di Junos untuk Beban Kerja AI/ML
Pengarang: Shalini Mukherjee
Perkenalan
Karena lalu lintas klaster AI memerlukan jaringan lossless dengan throughput tinggi dan latensi rendah, elemen penting dari jaringan AI adalah pengumpulan data pemantauan. Telemetri Junos memungkinkan pemantauan granular terhadap indikator kinerja utama, termasuk ambang batas dan penghitung untuk manajemen kemacetan dan penyeimbangan beban lalu lintas. Sesi gRPC mendukung streaming data telemetri. gRPC adalah kerangka kerja modern, sumber terbuka, dan berkinerja tinggi yang dibangun pada transportasi HTTP/2. Ini memberdayakan kemampuan streaming dua arah asli dan menyertakan metadata khusus yang fleksibel dalam header permintaan. Langkah awal dalam telemetri adalah mengetahui data apa yang akan dikumpulkan. Kami kemudian dapat menganalisis data ini dalam berbagai format. Setelah kami mengumpulkan data, penting untuk menyajikannya dalam format yang mudah untuk dipantau, diambil keputusan, dan meningkatkan layanan yang ditawarkan. Dalam tulisan ini, kami menggunakan tumpukan telemetri yang terdiri dari Telegraf, InfluxDB, dan Grafana. Tumpukan telemetri ini mengumpulkan data menggunakan model push. Model tarik tradisional membutuhkan banyak sumber daya, memerlukan intervensi manual, dan dapat mencakup kesenjangan informasi dalam data yang dikumpulkan. Model push mengatasi keterbatasan ini dengan mengirimkan data secara asinkron. Mereka memperkaya data dengan menggunakan cara yang ramah pengguna tags dan nama. Setelah data berada dalam format yang lebih mudah dibaca, kami menyimpannya dalam database dan menggunakannya dalam visualisasi interaktif web aplikasi untuk menganalisis jaringan. Angka. Gambar 1 menunjukkan kepada kita bagaimana tumpukan ini dirancang untuk pengumpulan, penyimpanan, dan visualisasi data secara efisien, mulai dari perangkat jaringan yang mengirim data ke pengumpul hingga data ditampilkan di dasbor untuk dianalisis.
Tumpukan TIG
Kami menggunakan server Ubuntu untuk menginstal semua perangkat lunak termasuk tumpukan TIG.
telegraf
Untuk mengumpulkan data, kami menggunakan Telegraf di server Ubuntu yang menjalankan 22.04.2. Versi Telegraf yang berjalan dalam demo ini adalah 1.28.5.
Telegraf adalah agen server berbasis plugin untuk mengumpulkan dan melaporkan metrik. Ini menggunakan prosesor plugins untuk memperkaya dan menormalkan data. Outputnya plugins digunakan untuk mengirim data ini ke berbagai penyimpanan data. Dalam dokumen ini kami menggunakan dua plugins: satu untuk sensor konfigurasi terbuka dan satu lagi untuk sensor asli Juniper.
InfluxDB
Untuk menyimpan data dalam database deret waktu, kami menggunakan InfluxDB. Plugin keluaran di Telegraf mengirimkan data ke InfluxDB, yang menyimpannya dengan cara yang sangat efisien. Kami menggunakan V1.8 karena tidak ada CLI untuk V2 dan yang lebih baru.
Grafana
Grafana digunakan untuk memvisualisasikan data ini. Grafana mengambil data dari InfluxDB dan memungkinkan pengguna membuat dasbor yang kaya dan interaktif. Di sini, kami menjalankan versi 10.2.2.
Konfigurasi Pada Saklar
Untuk mengimplementasikan tumpukan ini, pertama-tama kita perlu mengkonfigurasi saklar seperti yang ditunjukkan pada Gambar 2. Kita telah menggunakan port 50051. Port apa pun dapat digunakan di sini. Masuk ke sakelar QFX dan tambahkan konfigurasi berikut.
Catatan: Konfigurasi ini ditujukan untuk laboratorium/POC karena kata sandi dikirimkan dalam bentuk teks yang jelas. Gunakan SSL untuk menghindari hal ini.
Lingkungan
Bahasa Inggris Nginx
Ini diperlukan jika Anda tidak dapat mengekspos port tempat Grafana dihosting. Langkah selanjutnya adalah menginstal nginx di server Ubuntu untuk dijadikan sebagai agen reverse proxy. Setelah nginx diinstal, tambahkan baris yang ditunjukkan pada Gambar 4 ke file “default” dan pindahkan file dari /etc/nginx ke /etc/nginx/sites-enabled.
Pastikan firewall disesuaikan untuk memberikan akses penuh ke layanan nginx seperti yang ditunjukkan pada Gambar 5.
Setelah nginx diinstal dan perubahan yang diperlukan telah dilakukan, kita seharusnya dapat mengakses Grafana dari a web browser dengan menggunakan alamat IP server Ubuntu tempat semua perangkat lunak diinstal.
Ada kesalahan kecil di Grafana yang tidak memungkinkan Anda mereset kata sandi default. Gunakan langkah-langkah berikut jika Anda mengalami masalah ini.
Langkah-langkah yang harus dilakukan di server Ubuntu untuk mengatur password di Grafana:
- Kunjungi /var/lib/grafana/grafana.db
- Instal sqllite3
o sudo tepat instal sqlite3 - Jalankan perintah ini di terminal Anda
o sqlite3 grafana.db - Prompt perintah Sqlite terbuka; jalankan kueri berikut:
>hapus dari pengguna di mana login='admin' - Mulai ulang grafana dan ketik admin sebagai nama pengguna dan kata sandi. Ini meminta kata sandi baru.
Setelah semua perangkat lunak diinstal, buat file konfigurasi di Telegraf yang akan membantu menarik data telemetri dari sakelar dan memasukkannya ke InfluxDB.
Plugin Sensor Openconfig
Di server Ubuntu, edit file /etc/telegraf/telegraf.conf untuk menambahkan semua yang diperlukan plugins dan sensor. Untuk sensor openconfig, kami menggunakan plugin gNMI yang ditunjukkan pada Gambar 6. Untuk tujuan demo, tambahkan nama host sebagai “spine1”, nomor port “50051” yang digunakan untuk gRPC, nama pengguna dan kata sandi switch, dan nomor detik untuk memanggil ulang jika terjadi kegagalan.
Dalam bait berlangganan, tambahkan nama unik, “cpu” untuk sensor khusus ini, jalur sensor, dan interval waktu untuk mengambil data ini dari sakelar. Tambahkan plugin yang sama inputs.gnmi dan inputs.gnmi.subscription untuk semua sensor konfigurasi terbuka. (Gambar 6)
Plugin Sensor Asli
Ini adalah plugin antarmuka telemetri Juniper yang digunakan untuk sensor asli. Dalam file telegraf.conf yang sama, tambahkan plugin sensor asli inputs.jti_openconfig_telemetry yang bidangnya hampir sama dengan openconfig. Gunakan ID klien unik untuk setiap sensor; di sini, kami menggunakan “telegraf3”. Nama unik yang digunakan di sini untuk sensor ini adalah “mem” (Gambar 7).
Terakhir, tambahkan plugin keluaran outputs.influxdb untuk mengirim data sensor ini ke InfluxDB. Di sini, database diberi nama “telegraf” dengan nama pengguna “influx” dan kata sandi “influxdb” (Gambar 8).
Setelah Anda mengedit file telegraf.conf, restart layanan telegraf. Sekarang, periksa di InfluxDB CLI untuk memastikan apakah pengukuran dibuat untuk semua sensor unik. Ketik “influx” untuk masuk ke InfluxDB CLI.
Seperti yang terlihat pada Gambar. 9, masukkan prompt influxDB dan gunakan database "telegraf". Semua nama unik yang diberikan pada sensor dicantumkan sebagai pengukuran.
Untuk melihat keluaran suatu pengukuran, untuk memastikan file telegraf benar dan sensor berfungsi, gunakan perintah “select * from cpu limit 1” seperti yang ditunjukkan pada Gambar 10.
Setiap kali ada perubahan pada file telegraf.conf, pastikan untuk menghentikan InfluxDB, mulai ulang Telegraf, lalu mulai InfluxDB.
Masuk ke Grafana dari browser dan buat dasbor setelah memastikan bahwa data dikumpulkan dengan benar.
Buka Koneksi > InfuxDB > Tambahkan sumber data baru.
- Beri nama pada sumber data ini. Dalam demo ini adalah "tes-1".
- Di bawah bait HTTP, gunakan IP server Ubuntu dan port 8086.
- Dalam detail InfluxDB, gunakan nama database yang sama, “telegraf,” dan berikan nama pengguna dan kata sandi server Ubuntu.
- Klik Simpan & uji. Pastikan Anda melihat pesan “berhasil”.
- Setelah sumber data berhasil ditambahkan, buka Dasbor dan klik Baru. Mari kita membuat beberapa dasbor yang penting untuk beban kerja AI/ML dalam mode editor.
Examples Grafik Sensor
Berikut ini adalah contohnyaampfile dari beberapa penghitung utama yang penting untuk memantau jaringan AI/ML.
Persentage pemanfaatan untuk antarmuka ingress et-0/0/0 di spine-1
- Pilih sumber data sebagai tes-1.
- Di bagian FROM, pilih pengukuran sebagai “antarmuka”. Ini adalah nama unik yang digunakan untuk jalur sensor ini.
- Di bagian WHERE, pilih perangkat::tag, dan di tag value, pilih nama host switch, yaitu spine1.
- Di bagian SELECT, pilih cabang sensor yang ingin Anda pantau; dalam hal ini pilih “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”. Sekarang di bagian yang sama, klik “+” dan tambahkan perhitungan matematika ini (/50000000000 * 100). Kami pada dasarnya menghitung persennyatage pemanfaatan antarmuka 400G.
- Pastikan FORMATnya adalah “deret waktu”, dan beri nama grafik di bagian ALIAS.
Tingkat hunian buffer puncak untuk antrean apa pun
- Pilih sumber data sebagai tes-1.
- Di bagian FROM, pilih pengukuran sebagai “penyangga”.
- Pada bagian WHERE, ada tiga kolom yang harus diisi. Pilih perangkat::tag, dan di tag value pilih nama host dari switch (yaitu spine-1); DAN pilih /cos/interfaces/interface/@name::tag dan pilih antarmuka (yaitu et- 0/0/0); DAN pilih antriannya juga, /cos/interfaces/interface/queues/queue/@queue::tag dan pilih nomor antrian 4.
- Di bagian SELECT, pilih cabang sensor yang ingin Anda pantau; dalam hal ini pilih “field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy).”
- Pastikan FORMATnya adalah “deret waktu” dan beri nama grafik di bagian ALIAS.
Anda dapat menyusun data untuk beberapa antarmuka pada grafik yang sama seperti yang terlihat pada Gambar 17 untuk et-0/0/0, et-0/0/1, et-0/0/2 dll.
PFC dan ECN berarti turunan
Untuk menemukan turunan rata-rata (perbedaan nilai dalam rentang waktu tertentu), gunakan mode kueri mentah.
Ini adalah kueri masuknya yang kami gunakan untuk menemukan turunan rata-rata antara dua nilai PFC pada et-0/0/0 dari Spine-1 dalam satu detik.
PILIH turunan(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/pfc-counter/tx_pkts”), 1s) DARI “antarmuka” DI MANA (“perangkat”::tag = 'Spine-1') DAN $timeFilter KELOMPOK BERDASARKAN waktu($interval)
PILIH turunan(mean(“/interfaces/interface[if_name='et-0/0/8′]/state/error-counters/ecn_ce_marked_pkts”), 1s) DARI “antarmuka” DI MANA (“perangkat”::tag = 'Spine-1') DAN $timeFilter KELOMPOK BERDASARKAN waktu($interval)
Kesalahan sumber daya masukan berarti turunan
Kueri mentah untuk turunan rata-rata kesalahan sumber daya adalah:
PILIH turunan(mean(“/interfaces/interface[if_name='et-0/0/0′]/state/error-counters/if_in_resource_errors”), 1s) DARI “antarmuka” DI MANA (“perangkat”::tag = 'Spine-1') DAN $timeFilter KELOMPOK BERDASARKAN waktu($interval)
Tetesan ekor berarti turunan
Kueri mentah untuk turunan rata-rata tail drop adalah:
PILIH turunan(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s) DARI “buffer” WHERE (“perangkat”::tag = 'Daun-1' DAN “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' DAN “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') DAN $timeFilter KELOMPOK BERDASARKAN waktu($__interval) isi(null)
Pemanfaatan CPU
- Pilih sumber data sebagai tes-1.
- Di bagian FROM, pilih pengukuran sebagai “newcpu”
- Di WHERE, ada tiga kolom yang harus diisi. Pilih perangkat ::tag dan di tag value pilih nama host switch (yaitu spine-1). DAN di /components/component/properties/property/name:tag, dan pilih cpuutilization-total DAN dalam nama::tag pilih RE0.
- Di bagian SELECT, pilih cabang sensor yang ingin Anda pantau. Dalam hal ini, pilih “bidang (status/nilai)”.
Kueri mentah untuk menemukan turunan non-negatif dari tail drop untuk beberapa sakelar pada banyak antarmuka dalam bit/detik.
PILIH non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 DARI “buffer” WHERE (perangkat::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 GROUP BERDASARKAN waktu($__interval),perangkat::tag isi (nol)
Ini dia beberapa mantannyaampfile grafik yang dapat dibuat untuk memantau jaringan AI/ML.
Ringkasan
Makalah ini mengilustrasikan metode penarikan data telemetri dan memvisualisasikannya dengan membuat grafik. Tulisan ini khusus membahas tentang sensor AI/ML, baik native maupun openconfig, namun setupnya bisa digunakan untuk semua jenis sensor. Kami juga menyertakan solusi untuk berbagai masalah yang mungkin Anda hadapi saat membuat pengaturan. Langkah-langkah dan keluaran yang digambarkan dalam makalah ini spesifik untuk versi tumpukan TIG yang disebutkan sebelumnya. Hal ini dapat berubah tergantung pada versi perangkat lunak, sensor, dan versi Junos.
Referensi
Juniper Yang Data Model Explorer untuk semua opsi sensor
https://apps.juniper.net/ydm-explorer/
Forum Openconfig untuk sensor openconfig
https://www.openconfig.net/projects/models/
Kantor Pusat Korporat dan Penjualan
Juniper Networks, Inc.
1133 Cara Inovasi
Sunnyvale, CA 94089 AS
Telepon: 888.JUNIPER (888.586.4737)
atau +1.408.745.2000
Telp: +1.408.745.2100
www.juniper.net
Kantor Pusat APAC dan EMEA
Juniper Networks International BV
Boeing Avenue 240
1119 PZ Schiphol-Rijk
Amsterdam, Belanda
Telepon: +31.207.125.700
Telp: +31.207.125.701
Hak Cipta 2023 Juniper Networks. Inc. Semua hak dilindungi undang-undang. Juniper Networks, logo Juniper Networks, Juniper, Junos, dan merek dagang lainnya adalah merek dagang terdaftar dari Juniper Networks. inc. dan/atau afiliasinya di Amerika Serikat dan negara lain. Nama lain mungkin merupakan merek dagang dari pemiliknya masing-masing. Juniper Networks tidak bertanggung jawab atas ketidakakuratan apa pun dalam dokumen ini. Juniper Networks berhak melakukan perubahan. memodifikasi. mentransfer, atau merevisi publikasi ini tanpa pemberitahuan.
Kirimkan masukan ke: desain-pusat-komentar@juniper.net V1.0/240807/ejm5-telemetri-junos-ai-ml
Dokumen / Sumber Daya
![]() |
Telemetri Juniper NETWORKS Di Junos untuk Perangkat Lunak Beban Kerja AI ML [Bahasa Indonesia:] Panduan Pengguna Telemetri Dalam Junos untuk Perangkat Lunak Beban Kerja AI ML, Junos untuk Perangkat Lunak Beban Kerja AI ML, Perangkat Lunak Beban Kerja AI ML, Perangkat Lunak Beban Kerja, Perangkat Lunak |