Juniper NETWORKS- 로고AI/ML 워크로드를 위한 Junos의 원격 측정
저자: 샬리니 무케르지

소개

AI 클러스터 트래픽에는 높은 처리량과 낮은 지연 시간을 가진 무손실 네트워크가 필요하므로 AI 네트워크의 중요한 요소는 모니터링 데이터 수집입니다. Junos Telemetry는 혼잡 관리 및 트래픽 부하 분산을 위한 임계값과 카운터를 포함한 핵심 성과 지표에 대한 세부적인 모니터링을 가능하게 합니다. gRPC 세션은 원격 측정 데이터의 스트리밍을 지원합니다. gRPC는 HTTP/2 전송을 기반으로 하는 최신의 오픈 소스 고성능 프레임워크입니다. 기본 양방향 스트리밍 기능을 제공하고 요청 헤더에 유연한 사용자 지정 메타데이터를 포함합니다. 원격 측정의 첫 번째 단계는 어떤 데이터를 수집해야 하는지 아는 것입니다. 그런 다음 이 데이터를 다양한 형식으로 분석할 수 있습니다. 데이터를 수집한 후에는 모니터링, 의사 결정 및 제공되는 서비스 개선이 쉬운 형식으로 제공하는 것이 중요합니다. 이 논문에서는 Telegraf, InfluxDB, Grafana로 구성된 원격 측정 스택을 사용합니다. 이 원격 측정 스택은 푸시 모델을 사용하여 데이터를 수집합니다. 기존의 풀 모델은 리소스를 많이 사용하고, 수동 개입이 필요하며, 수집하는 데이터에 정보 격차가 있을 수 있습니다. 푸시 모델은 비동기적으로 데이터를 전달하여 이러한 제한을 극복합니다. 사용자 친화적인 방법을 사용하여 데이터를 풍부하게 합니다. tags 그리고 이름. 데이터가 더 읽기 쉬운 형식이 되면 데이터베이스에 저장하고 대화형 시각화에 사용합니다. web 네트워크 분석을 위한 애플리케이션입니다. 그림 1은 네트워크 장치에서 데이터를 수집기로 푸시하는 것부터 대시보드에 표시되어 분석되는 데이터까지 효율적인 데이터 수집, 저장 및 시각화를 위해 이 스택이 어떻게 설계되었는지 보여줍니다.

Juniper NETWORKS AI ML 워크로드 소프트웨어를 위한 Junos의 원격 측정 -

TIG 스택

우리는 TIG 스택을 포함한 모든 소프트웨어를 설치하기 위해 Ubuntu 서버를 사용했습니다.

텔레그라프
데이터를 수집하기 위해 22.04.2를 실행하는 Ubuntu 서버에서 Telegraf를 사용합니다. 이 데모에서 실행되는 Telegraf 버전은 1.28.5입니다.
Telegraf는 메트릭을 수집하고 보고하기 위한 플러그인 기반 서버 에이전트입니다. 프로세서를 사용합니다. plugins 데이터를 풍부하게 하고 정규화합니다. 출력 plugins 이 데이터를 다양한 데이터 저장소로 전송하는 데 사용됩니다. 이 문서에서는 두 가지를 사용합니다. plugins: 하나는 openconfig 센서용이고 다른 하나는 Juniper 네이티브 센서용입니다.
인플루언스DB
시계열 데이터베이스에 데이터를 저장하기 위해 InfluxDB를 사용합니다. Telegraf의 출력 플러그인은 데이터를 InfluxDB로 보내며, InfluxDB는 매우 효율적인 방식으로 데이터를 저장합니다. V1.8 이상에는 CLI가 없으므로 V2을 사용합니다.
그라파나
Grafana는 이 데이터를 시각화하는 데 사용됩니다. Grafana는 InfluxDB에서 데이터를 가져와 사용자가 풍부하고 대화형 대시보드를 만들 수 있도록 합니다. 여기서는 버전 10.2.2를 실행하고 있습니다.

스위치의 구성

이 스택을 구현하려면 먼저 그림 2와 같이 스위치를 구성해야 합니다. 포트 50051을 사용했습니다. 여기서는 어떤 포트든 사용할 수 있습니다. QFX 스위치에 로그인하여 다음 구성을 추가합니다.

Juniper NETWORKS AI ML 워크로드 소프트웨어 - 스위치에 대한 Junos의 원격 측정

메모: 이 구성은 암호가 일반 텍스트로 전송되므로 실험실/POC를 위한 것입니다. 이를 방지하려면 SSL을 사용하세요.

환경

Juniper NETWORKS AI ML 워크로드를 위한 Junos의 원격 측정 소프트웨어 - 환경

엔진엑스
Grafana가 호스팅되는 포트를 노출할 수 없는 경우 이 작업이 필요합니다. 다음 단계는 역방향 프록시 에이전트 역할을 하기 위해 Ubuntu 서버에 nginx를 설치하는 것입니다. nginx가 설치되면 그림 4에 표시된 줄을 "default" 파일에 추가하고 파일을 /etc/nginx에서 /etc/nginx/sites-enabled로 이동합니다.

Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx를 위한 Junos의 원격 측정

Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx1을 위한 Junos의 원격 측정

그림 5와 같이 nginx 서비스에 대한 전체 액세스 권한을 부여하도록 방화벽을 조정했는지 확인하세요.

Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx2을 위한 Junos의 원격 측정

nginx가 설치되고 필요한 변경 사항이 완료되면 Grafana에 액세스할 수 있어야 합니다. web 모든 소프트웨어가 설치된 Ubuntu 서버의 IP 주소를 사용하여 브라우저를 실행합니다.
Grafana에는 기본 비밀번호를 재설정할 수 없는 작은 결함이 있습니다. 이 문제가 발생하면 다음 단계를 따르세요.
Grafana에서 비밀번호를 설정하기 위해 Ubuntu 서버에서 수행해야 하는 단계:

  • /var/lib/grafana/grafana.db로 이동
  • sqllite3 설치
    o sudo apt install sqlite3
  • 터미널에서 이 명령을 실행하세요
    o sqlite3 grafana.db
  •  Sqlite 명령 프롬프트가 열립니다. 다음 쿼리를 실행합니다.
    >login='admin'인 사용자 삭제
  • grafana를 다시 시작하고 사용자 이름과 비밀번호로 admin을 입력합니다. 새 비밀번호를 묻습니다.

모든 소프트웨어가 설치되면 Telegraf에 구성 파일을 만듭니다. 이 파일은 스위치에서 원격 측정 데이터를 가져와 InfluxDB로 푸시하는 데 도움이 됩니다.

Openconfig 센서 플러그인

Ubuntu 서버에서 /etc/telegraf/telegraf.conf 파일을 편집하여 필요한 모든 내용을 추가합니다. plugins 그리고 센서. openconfig 센서의 경우, 그림 6에 표시된 gNMI 플러그인을 사용합니다. 데모 목적으로 호스트 이름을 "spine1"로 추가하고, gRPC에 사용되는 포트 번호 "50051", 스위치의 사용자 이름과 비밀번호, 실패 시 재다이얼할 시간(초)을 추가합니다.
구독 스탠자에서 이 특정 센서에 대한 고유 이름 "cpu", 센서 경로, 스위치에서 이 데이터를 수집하기 위한 시간 간격을 추가합니다. 모든 오픈 구성 센서에 대해 동일한 플러그인 inputs.gnmi 및 inputs.gnmi.subscription을 추가합니다. (그림 6)

Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx3을 위한 Junos의 원격 측정

네이티브 센서 플러그인

이것은 네이티브 센서에 사용되는 Juniper 원격 측정 인터페이스 플러그인입니다. 동일한 telegraf.conf 파일에서 네이티브 센서 플러그인 inputs.jti_openconfig_telemetry를 추가합니다. 여기서 필드는 openconfig와 거의 동일합니다. 모든 센서에 고유한 클라이언트 ID를 사용합니다. 여기서는 "telegraf3"를 사용합니다. 이 센서에 사용된 고유한 이름은 "mem"입니다(그림 7).

Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx4을 위한 Junos의 원격 측정

마지막으로, 이 센서 데이터를 InfluxDB로 보내기 위해 출력 플러그인 outputs.influxdb를 추가합니다. 여기서 데이터베이스 이름은 "telegraf"이고 사용자 이름은 "influx"이고 비밀번호는 "influxdb"입니다(그림 8).

Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx5을 위한 Junos의 원격 측정

telegraf.conf 파일을 편집했으면 telegraf 서비스를 다시 시작합니다. 이제 InfluxDB CLI에서 모든 고유 센서에 대한 측정이 생성되었는지 확인합니다. InfluxDB CLI에 들어가려면 "influx"를 입력합니다.

Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx6을 위한 Junos의 원격 측정

그림 9에서 볼 수 있듯이 influxDB 프롬프트를 입력하고 데이터베이스 "telegraf"를 사용합니다. 센서에 지정된 모든 고유 이름은 측정값으로 나열됩니다.
어떤 측정의 출력을 보고, telegraf 파일이 정확하고 센서가 작동하는지 확인하려면 그림 1과 같이 "select * from cpu limit 10" 명령을 사용합니다.

Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx7을 위한 Junos의 원격 측정

telegraf.conf 파일을 변경할 때마다 InfluxDB를 중지하고 Telegraf를 다시 시작한 다음 InfluxDB를 시작해야 합니다.
브라우저에서 Grafana에 로그인하고 데이터가 올바르게 수집되는지 확인한 후 대시보드를 만듭니다.
연결 > InfuxDB > 새 데이터 소스 추가로 이동합니다.

Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx8을 위한 Junos의 원격 측정

  1. 이 데이터 소스에 이름을 지정하세요. 이 데모에서는 "test-1"입니다.
  2.  HTTP 스탠자에서 Ubuntu 서버 IP와 8086 포트를 사용합니다.
    Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx9을 위한 Junos의 원격 측정
  3. InfluxDB 세부 정보에서 동일한 데이터베이스 이름인 "telegraf"를 사용하고 Ubuntu 서버의 사용자 이름과 비밀번호를 제공합니다.
  4. 저장 및 테스트를 클릭합니다. "성공"이라는 메시지가 표시되는지 확인합니다.
    Juniper NETWORKS AI ML 워크로드 소프트웨어 - Nginx10을 위한 Junos의 원격 측정
  5. 데이터 소스가 성공적으로 추가되면 대시보드로 이동하여 새로 만들기를 클릭합니다. 편집 모드에서 AI/ML 워크로드에 필수적인 몇 가지 대시보드를 만들어 보겠습니다.

Examp센서 그래프의 les

다음은 예입니다ampAI/ML 네트워크를 모니터링하는 데 필수적인 주요 카운터 몇 가지를 소개합니다.
퍼센tagspine-0의 ingress 인터페이스 et-0/0/1에 대한 e 활용
Juniper NETWORKS AI ML 워크로드 소프트웨어용 Junos의 원격 측정 - 그래프

  • 데이터 소스를 test-1로 선택하세요.
  • FROM 섹션에서 측정을 "인터페이스"로 선택합니다. 이는 이 센서 경로에 사용되는 고유한 이름입니다.
  • WHERE 섹션에서 장치를 선택하세요::tag, 그리고 tag 값으로 스위치의 호스트 이름, 즉 spine1을 선택하세요.
  • SELECT 섹션에서 모니터링하려는 센서 브랜치를 선택합니다. 이 경우 “field(/interfaces/interface[if_name='et-0/0/0']/state/counters/if_in_1s_octets)”를 선택합니다. 이제 같은 섹션에서 “+”를 클릭하고 이 계산 수학(/50000000000 * 100)을 추가합니다. 기본적으로 백분율을 계산하고 있습니다.tag400G 인터페이스 활용.
  • FORMAT이 "시계열"인지 확인하고 ALIAS 섹션에 그래프 이름을 지정하세요.

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - Graphs1모든 대기열의 최대 버퍼 점유율

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - Graphs2

  • 데이터 소스를 test-1로 선택하세요.
  • FROM 섹션에서 측정값을 "버퍼"로 선택합니다.
  • WHERE 섹션에는 채워야 할 필드가 세 개 있습니다. 장치를 선택하세요::tag, 그리고 tag value 스위치의 호스트 이름(예: spine-1)을 선택하고 /cos/interfaces/interface/@name::을 선택합니다.tag 그리고 인터페이스(예: et-0/0/0)를 선택합니다. 그리고 큐도 선택합니다, /cos/interfaces/interface/queues/queue/@queue::tag 그리고 대기번호 4를 선택하세요.
  • SELECT 섹션에서 모니터링하려는 센서 브랜치를 선택합니다. 이 경우 "field(/cos/interfaces/interface/queues/queue/PeakBufferOccupancy)"를 선택합니다.
  • FORMAT이 "시계열"인지 확인하고 ALIAS 섹션에 그래프 이름을 지정하세요.

그림 17에서 볼 수 있듯이 et-0/0/0, et-0/0/1, et-0/0/2 등에 대한 여러 인터페이스의 데이터를 동일한 그래프에 정리할 수 있습니다.

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - Graphs3

PFC와 ECN 평균 미분
Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - 파생

평균 미분(시간 범위 내에서 값의 차이)을 찾으려면 원시 쿼리 모드를 사용하세요.
이는 Spine-0의 et-0/0/1에서 XNUMX초 동안 두 PFC 값 사이의 평균 미분을 찾는 데 사용한 유입 쿼리입니다.
SELECT 미분(평균("/인터페이스/인터페이스[if_name='et-0/0/0′]/주/pfc-카운터/tx_pkts"), 1s) FROM "인터페이스" WHERE ("장치"::tag = 'Spine-1') AND $timeFilter GROUP BY time($interval)

Juniper NETWORKS AI ML 워크로드 소프트웨어를 위한 Junos의 원격 측정 - ECN의 경우에도 유사

SELECT 파생(평균("/인터페이스/인터페이스[if_name='et-0/0/8′]/상태/오류-카운터/ecn_ce_marked_pkts"), 1s) FROM "인터페이스" WHERE ("장치"::tag = 'Spine-1') AND $timeFilter GROUP BY time($interval)

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - ECN1의 경우와 유사

입력 리소스 오류는 파생된 평균입니다.

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - ECN2의 경우와 유사

리소스 오류 평균 미분에 대한 원시 쿼리는 다음과 같습니다.
SELECT 파생(평균("/인터페이스/인터페이스[if_name='et-0/0/0′]/상태/오류 카운터/if_in_resource_errors"), 1s) FROM "인터페이스" WHERE ("장치"::tag = 'Spine-1') AND $timeFilter GROUP BY time($interval)

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - ECN3의 경우와 유사

꼬리 떨어짐 평균 미분

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - ECN4의 경우와 유사

꼬리 하락 평균 미분에 대한 원시 쿼리는 다음과 같습니다.
SELECT 미분(평균("/cos/인터페이스/인터페이스/큐/큐/테일드롭바이트"), 1s) FROM "버퍼" WHERE ("장치"::tag = 'Leaf-1' AND “/cos/interfaces/interface/@name”::tag = 'et-0/0/0' 그리고 “/cos/interfaces/interface/queues/queue/@queue”::tag = '4') AND $timeFilter GROUP BY time($__interval) fill(null)
 CPU 사용률

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - CPU 사용률

  • 데이터 소스를 test-1로 선택하세요.
  • FROM 섹션에서 측정값을 "newcpu"로 선택합니다.
  • WHERE에는 채워야 할 필드가 세 개 있습니다. 장치를 선택하세요::tag 그리고 tag value 스위치의 호스트 이름(예: spine-1)을 선택합니다. 그리고 /components/component/properties/property/name에서:tag, cpuutilization-total AND를 name::에 선택하세요.tag RE0을 선택하세요.
  • SELECT 섹션에서 모니터링하려는 센서 브랜치를 선택합니다. 이 경우 "field(state/value)"를 선택합니다.

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - CPU 사용률1

여러 인터페이스의 여러 스위치에 대한 테일 드롭의 음이 아닌 미분을 비트/초 단위로 찾기 위한 원시 쿼리입니다.
SELECT non_negative_derivative(mean(“/cos/interfaces/interface/queues/queue/tailDropBytes”), 1s)*8 FROM “buffer” WHERE (device::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 그룹 BY time($__interval),device::tag 채우기(null)

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - CPU 사용률2

이것들은 전의 일부였습니다ampAI/ML 네트워크 모니터링을 위해 생성할 수 있는 그래프의 종류입니다.

요약

이 논문은 원격 측정 데이터를 끌어와 그래프를 만들어 시각화하는 방법을 설명합니다. 이 논문은 특히 네이티브와 오픈 구성의 AI/ML 센서에 대해 설명하지만, 이 설정은 모든 종류의 센서에 사용할 수 있습니다. 또한 설정을 만드는 동안 직면할 수 있는 여러 문제에 대한 솔루션도 포함했습니다. 이 논문에 나와 있는 단계와 출력은 앞서 언급한 TIG 스택 버전에 따라 다릅니다. 소프트웨어 버전, 센서 및 Junos 버전에 따라 변경될 수 있습니다.

참고문헌

모든 센서 옵션을 위한 Juniper Yang 데이터 모델 탐색기
https://apps.juniper.net/ydm-explorer/
Openconfig 센서를 위한 Openconfig 포럼
https://www.openconfig.net/projects/models/

Juniper NETWORKS AI ML 워크로드 소프트웨어의 Junos에서 원격 측정 - 아이콘

기업 및 영업 본부
주니퍼 네트웍스 주식회사
1133 혁신의 길
서니베일, CA 94089 USA
전화: 888. JUNIPER (888.586.4737)
또는 +1.408.745.2000
팩스 : +1.408.745.2100
www.juniper.net
APAC 및 EMEA 본부
주니퍼 네트웍스 인터내셔널 BV
보잉 애비뉴 240
1119 PZ 스키폴-리크
암스테르담, 네덜란드
전화: +31.207.125.700
팩스 : +31.207.125.701
저작권 2023 Juniper Networks. Inc. 모든 권리 보유. Juniper Networks, Juniper Networks 로고, Juniper, Junos 및 기타 상표는 Juniper Networks. inc. 및/또는 미국 및 기타 국가에서 계열사의 등록 상표입니다. 다른 이름은 해당 소유자의 상표일 수 있습니다. Juniper Networks는 이 문서의 부정확성에 대해 책임을 지지 않습니다. Juniper Networks는 통지 없이 이 간행물을 변경, 수정, 이전 또는 수정할 권리가 있습니다.
피드백을 보내주세요: design-center-comments@juniper.net V1.0/240807/ejm5-원격측정-junos-ai-ml

문서 / 리소스

Juniper NETWORKS AI ML 워크로드 소프트웨어를 위한 Junos의 원격 측정 [PDF 파일] 사용자 가이드
Junos for AI ML 워크로드 소프트웨어의 원격 측정, Junos for AI ML 워크로드 소프트웨어, AI ML 워크로드 소프트웨어, 워크로드 소프트웨어, 소프트웨어

참고문헌

댓글을 남겨주세요

이메일 주소는 공개되지 않습니다. 필수 항목은 표시되어 있습니다. *