Juniper NETWORKS- logoAI/ML İş Yükleri için Junos'ta Telemetri
Yazar: Shalini Mukherjee

giriiş

Yapay zeka küme trafiği yüksek verimli ve düşük gecikmeli kayıpsız ağlar gerektirdiğinden, yapay zeka ağının kritik bir öğesi izleme verilerinin toplanmasıdır. Junos Telemetry, tıkanıklık yönetimi ve trafik yük dengelemesi için eşikler ve sayaçlar dahil olmak üzere temel performans göstergelerinin ayrıntılı izlenmesini sağlar. gRPC oturumları telemetri verilerinin akışını destekler. gRPC, HTTP/2 taşımacılığı üzerine kurulu, modern, açık kaynaklı, yüksek performanslı bir çerçevedir. Yerel çift yönlü akış yeteneklerini güçlendirir ve istek başlıklarında esnek özel meta veriler içerir. Telemetrideki ilk adım, hangi verilerin toplanacağını bilmektir. Daha sonra bu verileri çeşitli biçimlerde analiz edebiliriz. Verileri topladıktan sonra, izlenmesi, karar alınması ve sunulan hizmeti iyileştirmesi kolay bir biçimde sunmak önemlidir. Bu makalede, Telegraf, InfluxDB ve Grafana'dan oluşan bir telemetri yığını kullanıyoruz. Bu telemetri yığını, bir itme modeli kullanarak verileri toplar. Geleneksel çekme modelleri kaynak yoğun, manuel müdahale gerektirir ve topladıkları verilerde bilgi boşlukları içerebilir. İtme modelleri, verileri eş zamanlı olmayan bir şekilde sunarak bu sınırlamaların üstesinden gelir. Kullanıcı dostu tags ve isimler. Veriler daha okunabilir bir formata geldiğinde onu bir veritabanında saklar ve etkileşimli bir görselleştirmede kullanırız. web Ağ analizi uygulaması. Şekil 1, bu yığının, ağ cihazlarından toplayıcıya veri göndermesinden, analiz için panolarda görüntülenen verilere kadar verimli veri toplama, depolama ve görselleştirme için nasıl tasarlandığını göstermektedir.

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri -

TIG Yığını

TIG yığını dahil tüm yazılımı yüklemek için bir Ubuntu sunucusu kullandık.

telgraf
Veri toplamak için 22.04.2 çalıştıran bir Ubuntu sunucusunda Telegraf kullanıyoruz. Bu demoda çalışan Telegraf sürümü 1.28.5'tir.
Telegraf, ölçümleri toplamak ve raporlamak için eklenti odaklı bir sunucu aracısıdır. İşlemciyi kullanır plugins Verileri zenginleştirmek ve normalleştirmek. Çıkış plugins Bu verileri çeşitli veri depolarına göndermek için kullanılır. Bu belgede iki tane kullanıyoruz plugins: Biri openconfig sensörleri için, diğeri ise yerel Juniper sensörleri için.
InfluxDB'ye Geçiş
Verileri bir zaman serisi veritabanında depolamak için InfluxDB kullanıyoruz. Telegraf'taki çıktı eklentisi verileri InfluxDB'ye gönderiyor ve InfluxDB de verileri oldukça verimli bir şekilde depoluyor. V1.8 ve üzeri için CLI bulunmadığından V2 kullanıyoruz.
Grafana
Bu verileri görselleştirmek için Grafana kullanılır. Grafana, verileri InfluxDB'den çeker ve kullanıcıların zengin ve etkileşimli panolar oluşturmasına olanak tanır. Burada 10.2.2 sürümünü çalıştırıyoruz.

Anahtar Üzerinde Yapılandırma

Bu yığını uygulamak için öncelikle Şekil 2'de gösterildiği gibi anahtarı yapılandırmamız gerekir. 50051 portunu kullandık. Burada herhangi bir port kullanılabilir. QFX anahtarında oturum açın ve aşağıdaki yapılandırmayı ekleyin.

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Switch

Not: Bu yapılandırma, parolanın açık metin olarak iletilmesi nedeniyle laboratuvarlar/POC'ler içindir. Bunu önlemek için SSL kullanın.

Çevre

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Ortam

Nginx
Grafana'nın barındırıldığı portu açığa çıkaramıyorsanız bu gereklidir. Bir sonraki adım, ters proxy aracısı olarak hizmet vermesi için Ubuntu sunucusuna nginx'i yüklemektir. Nginx yüklendikten sonra, Şekil 4'te gösterilen satırları "varsayılan" dosyaya ekleyin ve dosyayı /etc/nginx'ten /etc/nginx/sites-enabled'a taşıyın.

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx1

Şekil 5'te gösterildiği gibi güvenlik duvarının nginx hizmetine tam erişim sağlayacak şekilde ayarlandığından emin olun.

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx2

Nginx kurulduktan ve gerekli değişiklikler yapıldıktan sonra Grafana'ya bir web Tüm yazılımın kurulu olduğu Ubuntu sunucusunun IP adresini kullanarak tarayıcı.
Grafana'da varsayılan şifreyi sıfırlamanıza izin vermeyen küçük bir aksaklık var. Bu sorunla karşılaşırsanız bu adımları kullanın.
Grafana'da şifreyi ayarlamak için Ubuntu sunucusunda gerçekleştirilecek adımlar:

  • /var/lib/grafana/grafana.db'ye gidin
  • sqllite3'ü yükleyin
    sudo apt install sqlite3
  • Bu komutu terminalinizde çalıştırın
    sqlite3 grafana.db
  •  Sqlite komut istemi açılır; aşağıdaki sorguyu çalıştırın:
    >kullanıcıdan login='admin' olan kısmı sil
  • Grafana'yı yeniden başlatın ve kullanıcı adı ve parola olarak admin yazın. Yeni bir parola girmenizi ister.

Tüm yazılımlar yüklendikten sonra, telemetri verilerini anahtardan çekip InfluxDB'ye göndermeye yardımcı olacak yapılandırma dosyasını Telegraf'ta oluşturun.

Openconfig Sensör Eklentisi

Ubuntu sunucusunda, gerekli tüm öğeleri eklemek için /etc/telegraf/telegraf.conf dosyasını düzenleyin plugins ve sensörler. Openconfig sensörleri için, Şekil 6'da gösterilen gNMI eklentisini kullanıyoruz. Demo amaçlı olarak, ana bilgisayar adını "spine1", gRPC için kullanılan port numarası "50051", anahtarın kullanıcı adı ve parolasını ve arıza durumunda yeniden arama için saniye sayısını ekleyin.
Abonelik kıtasında, bu belirli sensör için benzersiz bir ad, "cpu", sensör yolu ve bu verileri anahtardan almak için zaman aralığı ekleyin. Tüm açık yapılandırma sensörleri için aynı eklenti inputs.gnmi ve inputs.gnmi.subscription'ı ekleyin. (Şekil 6)

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx3

Yerel Sensör Eklentisi

Bu, yerel sensörler için kullanılan bir Juniper telemetri arayüzü eklentisidir. Aynı telegraf.conf dosyasında, alanların openconfig ile neredeyse aynı olduğu yerel sensör eklentisi inputs.jti_openconfig_telemetry'yi ekleyin. Her sensör için benzersiz bir istemci kimliği kullanın; burada "telegraf3" kullanıyoruz. Bu sensör için burada kullanılan benzersiz ad "mem"dir (Şekil 7).

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx4

Son olarak, bu sensör verilerini InfluxDB'ye göndermek için bir çıktı eklentisi olan outputs.influxdb ekleyin. Burada, veritabanı "telegraf" olarak adlandırılır ve kullanıcı adı "influx" ve parola "influxdb"dir (Şekil 8).

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx5

telegraf.conf dosyasını düzenledikten sonra telegraf hizmetini yeniden başlatın. Şimdi, tüm benzersiz sensörler için ölçümlerin oluşturulduğundan emin olmak için InfluxDB CLI'yi kontrol edin. InfluxDB CLI'ye girmek için "influx" yazın.

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx6

Şekil 9'da görüldüğü gibi, influxDB istemine girin ve "telegraf" veritabanını kullanın. Sensörlere verilen tüm benzersiz adlar ölçümler olarak listelenir.
Herhangi bir ölçümün çıktısını görmek için, telegraf dosyasının doğru olduğundan ve sensörün çalıştığından emin olmak için, Şekil 1'da gösterildiği gibi "select * from cpu limit 10" komutunu kullanın.

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx7

Telegraf.conf dosyasında her değişiklik yapıldığında InfluxDB'yi durdurduğunuzdan, Telegraf'ı yeniden başlattığınızdan ve ardından InfluxDB'yi başlattığınızdan emin olun.
Tarayıcınızdan Grafana'ya giriş yapın ve verilerin doğru şekilde toplandığından emin olduktan sonra gösterge panelleri oluşturun.
Bağlantılar > InfuxDB > Yeni veri kaynağı ekle'ye gidin.

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx8

  1. Bu veri kaynağına bir isim verin. Bu demo'da "test-1"dir.
  2.  HTTP kıtası altında Ubuntu sunucu IP'sini ve 8086 portunu kullanın.
    Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx9
  3. InfluxDB ayrıntılarında aynı veritabanı adını, “telegraf” kullanın ve Ubuntu sunucusunun kullanıcı adını ve parolasını sağlayın.
  4. Kaydet ve test et'e tıklayın. "Başarılı" mesajını gördüğünüzden emin olun.
    Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Nginx10
  5. Veri kaynağı başarıyla eklendikten sonra Panolara gidin ve Yeni'ye tıklayın. AI/ML iş yükleri için düzenleyici modunda gerekli olan birkaç pano oluşturalım.

ExampSensör Grafikleri Dosyaları

Aşağıdakiler eskiampBir AI/ML ağını izlemek için gerekli olan bazı önemli sayaçların dosyaları.
yüzdetagSpine-0'deki et-0/0/1 giriş arayüzünün kullanımı
Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Grafikler

  • Veri kaynağını test-1 olarak seçin.
  • FROM bölümünde ölçümü “interface” olarak seçin. Bu, bu sensör yolu için kullanılan benzersiz addır.
  • WHERE bölümünde device:: öğesini seçin.tagve içinde tag değer, anahtarın ana bilgisayar adını, yani spine1'i seçin.
  • SELECT bölümünde, izlemek istediğiniz sensör dalını seçin; bu durumda “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)” öğesini seçin. Şimdi aynı bölümde, “+” öğesine tıklayın ve bu hesaplama matematiğini ekleyin (/50000000000 * 100). Temel olarak yüzdeyi hesaplıyoruztag400G arayüzünün kullanımı.
  • FORMAT'ın “zaman serisi” olduğundan emin olun ve ALIAS bölümünde grafiği adlandırın.

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Graphs1Herhangi bir sıra için en yüksek arabellek doluluğu

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Graphs2

  • Veri kaynağını test-1 olarak seçin.
  • FROM bölümünde ölçümü “tampon” olarak seçin.
  • WHERE bölümünde doldurulacak üç alan vardır. Cihazı seçin::tagve içinde tag değer anahtarın ana bilgisayar adını seçin (yani spine-1); VE /cos/interfaces/interface/@name:: seçintag ve arayüzü seçin (yani et- 0/0/0); VE kuyruğu da seçin, /cos/interfaces/interface/queues/queue/@queue::tag ve 4 numaralı sırayı seçin.
  • SELECT bölümünde, izlemek istediğiniz sensör dalını seçin; bu durumda “field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy)” seçeneğini seçin.
  • FORMAT’ın “zaman serisi” olduğundan emin olun ve ALIAS bölümünde grafiğin adını belirtin.

Şekil 17’de görüldüğü gibi et-0/0/0, et-0/0/1, et-0/0/2 vb. için birden fazla arayüze ait verileri aynı grafikte bir araya getirebilirsiniz.

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - Graphs3

PFC ve ECN türev anlamına gelir
Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - türev

Ortalama türevi (bir zaman aralığındaki değer farkını) bulmak için ham sorgu modunu kullanın.
Bu, Spine-0'in et-0/0/1 noktasındaki iki PFC değeri arasındaki ortalama türevi bir saniyede bulmak için kullandığımız akış sorgusudur.
SELECT türev(ortalama(“/arayüzler/arayüz[eğer_isim='et-0/0/0′]/durum/pfc-sayacı/işlem_paketi”), 1sn) FROM “arayüz” WHERE (“aygıt”::tag = 'Spine-1') VE $timeFilter GROUP BY time($interval)

Juniper NETWORKS Telemetrisi Junos'ta AI ML İş Yükleri Yazılımı - ECN için Benzer Şekilde

SELECT türev(ortalama(“/arayüzler/arayüz[eğer_adı='et-0/0/8′]/durum/hata-sayaçları/ecn_ce_işaretli_paketler”), 1s) FROM “arayüz” WHERE (“aygıt”::tag = 'Spine-1') VE $timeFilter GROUP BY time($interval)

Juniper NETWORKS Telemetrisi Junos'ta AI ML İş Yükleri Yazılımı - Benzer şekilde ECN1 için

Giriş kaynağı hataları türev anlamına gelir

Juniper NETWORKS Telemetrisi Junos'ta AI ML İş Yükleri Yazılımı - Benzer şekilde ECN2 için

Kaynak hataları için ham sorgu türevinin ortalaması şudur:
SELECT türev(ortalama(“/arayüzler/arayüz[eğer_adı='et-0/0/0′]/durum/hata-sayaçları/eğer_kaynak_hataları içindeyse”), 1s) FROM “arayüz” WHERE (“aygıt”::tag = 'Spine-1') VE $timeFilter GROUP BY time($interval)

Juniper NETWORKS Telemetrisi Junos'ta AI ML İş Yükleri Yazılımı - Benzer şekilde ECN3 için

Kuyruk damlaları türev anlamına gelir

Juniper NETWORKS Telemetrisi Junos'ta AI ML İş Yükleri Yazılımı - Benzer şekilde ECN4 için

Kuyruk düşüşleri için ham sorgu, türev anlamına gelir:
SELECT türev(ortalama(“/cos/arayüzler/arayüz/kuyruklar/kuyruk/tailDropBytes”), 1sn) FROM “tampon” WHERE (“aygıt”::tag = 'Yaprak-1' VE “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' VE “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') VE $timeFilter GRUP BY time($__interval) fill(null)
 CPU kullanımı

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - CPU kullanımı

  • Veri kaynağını test-1 olarak seçin.
  • FROM bölümünde ölçümü “newcpu” olarak seçin
  • WHERE'de doldurulacak üç alan vardır. Cihazı seçin::tag ve içinde tag değer anahtarın ana bilgisayar adını seçin (yani spine-1). VE /components/component/properties/property/name içinde:tagve adda cpuutilization-total AND'i seçin::tag RE0'ı seçin.
  • SELECT bölümünde, izlemek istediğiniz sensör dalını seçin. Bu durumda, “field(state/value)” seçin.

Juniper NETWORKS Telemetrisi Junos'ta AI ML İş Yükleri Yazılımı - CPU kullanımı1

Birden fazla arayüzdeki birden fazla anahtar için kuyruk düşüşlerinin negatif olmayan türevini bit/sn cinsinden bulmaya yönelik ham sorgu.
SELECT non_negative_derivative(mean(“/cos/arayüzler/arayüzler/kuyruklar/kuyruk/tailDropBytes”), 1s)*8 FROM “tampon” WHERE (cihaz::tag =~ /^Spine-[1-2]$/) ve (“/cos/interfaces/interface/@name”::tag =~ /et-0\/0\/[0-9]/ veya “/cos/arayüzler/arayüz/@isim”::tag=~/et-0\/0\/1[0-5]/) VE $timeFilter GRUP BY time($__interval),device::tag doldur(null)

Juniper NETWORKS Telemetrisi Junos'ta AI ML İş Yükleri Yazılımı - CPU kullanımı2

Bunlar eski olanlardan bazılarıydıampBir AI/ML ağını izlemek için oluşturulabilecek grafik dosyaları.

Özet

Bu makale, telemetri verilerini çekme ve grafikler oluşturarak görselleştirme yöntemini göstermektedir. Bu makale özellikle hem yerel hem de açık yapılandırmalı AI/ML sensörlerinden bahsetmektedir ancak kurulum her türlü sensör için kullanılabilir. Ayrıca kurulumu oluştururken karşılaşabileceğiniz birden fazla sorun için çözümler de ekledik. Bu makalede tasvir edilen adımlar ve çıktılar, daha önce bahsedilen TIG yığınının sürümlerine özgüdür. Yazılımın sürümüne, sensörlere ve Junos sürümüne bağlı olarak değişebilir.

Referanslar

Tüm sensör seçenekleri için Juniper Yang Veri Modeli Gezgini
https://apps.juniper.net/ydm-explorer/
Openconfig sensörleri için Openconfig forumu
https://www.openconfig.net/projects/models/

Juniper NETWORKS AI ML İş Yükleri Yazılımı için Junos'ta Telemetri - simge

Kurumsal ve Satış Merkezi
Juniper Ağları, A.Ş.
1133 İnovasyon Yolu
Sunnyvale, CA 94089 ABD
Telefon: 888. JUNIPER (888.586.4737)
veya +1.408.745.2000
Faks: +1.408.745.2100
www.juniper.net
APAC ve EMEA Genel Merkezi
Juniper Networks Uluslararası BV
Boeing Caddesi 240
1119 PZ Schiphol-Rijk
Amsterdam, Hollanda
Telefon: +31.207.125.700
Faks: +31.207.125.701
Telif hakkı 2023 Juniper Networks. Inc. Tüm hakları saklıdır. Juniper Networks, Juniper Networks logosu, Juniper, Junos ve diğer ticari markalar Juniper Networks. inc. ve/veya bağlı şirketlerinin Amerika Birleşik Devletleri ve diğer ülkelerdeki tescilli ticari markalarıdır. Diğer adlar ilgili sahiplerinin ticari markaları olabilir. Juniper Networks bu belgedeki herhangi bir yanlışlıktan sorumlu değildir. Juniper Networks bu yayını önceden haber vermeden değiştirme, düzenleme, devretme veya başka şekilde revize etme hakkını saklı tutar.
Geri bildiriminizi şu adrese gönderin: tasarım-merkez-yorumları@juniper.net V1.0/240807/ejm5-telemetri-junos-ai-ml

Belgeler / Kaynaklar

Yapay Zeka ML İş Yükleri Yazılımı için Junos'ta Juniper AĞLARI Telemetrisi [pdf] Kullanıcı Kılavuzu
AI ML İş Yükleri Yazılımı için Junos'ta Telemetri, AI ML İş Yükleri Yazılımı için Junos, AI ML İş Yükleri Yazılımı, İş Yükleri Yazılımı, Yazılım

Referanslar

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar işaretlenmiştir *