Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

gNMI를 사용하여 텔레메트리 데이터 구독

gNMI 프로토콜은 텔레메트리 데이터를 구독하기 위한 RPC를 정의합니다 Subscribe . 텔레메트리 수집기는 이 RPC를 사용하여 네트워크 디바이스에서 상태 및 구성 데이터에 대한 업데이트를 요청합니다.

새 구독에 대한 요청은 하나 이상의 리소스 경로를 포함하는 메시지 내에 SubscribeRequest 캡슐화됩니다. 구독 경로는 대상 네트워크 디바이스의 특정 데이터 인스턴스와 관련이 있습니다. 요청에는 OpenConfig 또는 네이티브 Junos 스키마를 기반으로 하는 경로가 포함될 수 있습니다.

구독 요청에는 다음 모드 중 하나도 포함되어야 합니다.

  • ONCE - 데이터에 대한 일회성 요청.

  • POLL - 주기적인 온디맨드 데이터 검색용.

  • STREAM - 지정된 트리거에 따라 데이터를 스트리밍하는 수명이 긴 구독입니다.

모드의 STREAM 구독은 다음 하위 모드 중 하나를 지정해야 합니다.

  • ON_CHANGE - 데이터 업데이트는 데이터 항목의 값이 변경될 때만 전송됩니다.

  • SAMPLE - 데이터 업데이트는 구독 요청에 지정된 간격 기간을 기준으로 샘플 간격당 한 번 전송됩니다. 기본 샘플 간격은 30초입니다.

  • TARGET_DEFINED - 구독 요청을 수신하는 네트워크 디바이스는 리프별로 데이터에 가장 적합한 전송 유형을 결정합니다. 메시지 내에 지정된 경로가 이벤트 구동 데이터를 참조하는 경우 구독이 ON_CHANGE 작성될 수 있습니다. 카운터 값을 SAMPLE 나타내는 데이터의 경우 구독을 만들 수 있습니다.

    메모:

    TARGET_DEFINED 구성 경로에 대한 구독 요청은 요청으로만 처리됩니다ON_CHANGE.

, ON_CHANGESAMPLE 구독의 경우 ONCE수집기는 구독에 있는 경로의 현재 상태를 포함하는 초기 업데이트를 요청할 수 있습니다. 초기 동기화라고도 하는 이 업데이트는 다음과 같은 이유로 중요합니다.

  • 컬렉터는 해당 센서 경로에 대한 디바이스에 있는 모든 필드의 현재 상태를 전체적으로 볼 수 있습니다.

  • 이벤트 기반 데이터(ON_CHANGE)는 다음 이벤트가 표시되기 전에 수집기에 의해 한 번 이상 수신됩니다. 이러한 방식으로 수집기는 다음 이벤트가 발생하기 전에 데이터 상태를 인식합니다.

  • 일반적으로 제로 억제로 인해 스트리밍된 데이터에 표시되지 않는 제로 카운터 값을 포함하는 패킷 전달 엔진 센서가 전송됩니다. 이렇게 하면 각 라인 카드의 모든 필드가 컬렉터에 알려집니다.

대상 장치는 메시지로 구독 요청에 응답합니다SubscribeResponse. 구독 요청이 초기 동기화를 호출하는 경우 대상은 데이터를 전송한 다음 플래그가 로 true설정된 응답 메시지를 sync_response 보냅니다. 초기 동기화 후 대상 장치는 구독 모드에 따라 경로에 대한 업데이트를 진행합니다.

메시지에는 라는 플래그updates_onlySubscribeRequest 포함되어 있습니다. 이 플래그가 로 설정true되면 대상 디바이스는 초기 동기화를 보내지 않고 다음과 같이 후속 업데이트만 보냅니다.

  • 모드 구독의 SAMPLE 경우 STREAM 다음 샘플 간격으로 업데이트가 전송됩니다.

  • 모드 구독의 ON_CHANGE 경우 STREAM 다음 값 변경 시 업데이트가 전송됩니다.

  • 구독의 경우 ONCE 을(를) 로 설정하여 을SubscribeResponse(를) false전송 sync_response 하고 구독이 닫힙니다.

  • TARGET_DEFINED 구독은 구성 경로에 대한 것으로 처리 ON_CHANGE 되며 다음 값 변경 시 업데이트가 전송됩니다.

SubscribeResponse 메시지의 내용은 SubscribeRequest gnmi.proto 파일에 정의되어 있습니다. 구독 RPC 및 구독 모드에 대한 자세한 내용은 gNMI 사양: 원격 분석 업데이트 구독에서 gNMI 사양을 참조하세요.

메모:

구성 경로에 다음과 같은 제한 사항이 적용됩니다.

  • POLL 구독은 지원되지 않습니다.

  • 접두사 경로는 업데이트 메시지에 포함되지 않습니다.

  • gNMI 응답은 , insert before/after, comment/annotate, 및 protect/unprotect와 같은 active/inactive주니퍼 고유의 메타데이터 작업에 대해 지원되지 않습니다. 메시지에 나타날 수 있지만 유효하지 않습니다.

  • , , allow_aggregation, 및 qos에서 SubscribeRequest suppress_redundantheartbeat_level지원되지 않는 매개 변수.

  • PROTO 인코딩만 지원됩니다.

  • SubscribeRequest 메시지의 확장은 지원되지 않습니다.

  • 구독 경로 필터링은 키 수준에서만 지원됩니다.

  • 다음 커밋 변형은 및 TARGET_DEFINED 구독에 대해 ON_CHANGE 지원되지 않습니다.

    commit at, commit prepare/activate및 일괄 커밋을 수행합니다.
  • 커밋은 다음에서 지원되지 않습니다.

    edit dynamic 모드를 edit private 편집하거나 구성합니다.
  • 현재 상태 컨테이너에 대한 업데이트 메시지는 전송되지 않습니다.

  • 식별자 또는 키가 구성된 유일한 리프인 구독 목록의 경우 업데이트 메시지가 없을 수 있습니다.

예제

다음 예제에서는 gNMI 클라이언트 및 대상 디바이스에서 수행한 구독 요청 및 응답을 protobuf 형식으로 보여 줍니다.

예: ONCE 모드

다음 예제에서는 gNMI 클라이언트에서 protobuf 형식으로 보낸 구독 요청을 보여 줍니다. 구독 모드는 ONCE 이고 OpenConfig 리소스 경로는 /system/aaa/authentication/users입니다.

대상은 일회성 업데이트로 응답합니다.

예: ON_CHANGE

다음 예제에서는 하위 모드가 있는 ON_CHANGE 모드의 STREAM 구독 요청을 보여 줍니다. OpenConfig 리소스 경로는 /system/aaa/authentication/users/user[username="test1"]입니다.

구독 요청 시 OpenConfig 구성:

예제 응답 메시지는 구성 경로에 대한 값과 다음으로 설정된 플래그를 sync_response 보여줍니다.true

가입된 경로에 다음과 같은 구성이 변경됩니다.

  • test1대한 사용자 이름을 추가합니다.

  • 에 대한 test1암호를 삭제합니다.

대상 장치는 응답으로 다음 업데이트를 보냅니다.

예: SAMPLE

다음 예제에서는 mode 및 SAMPLE sub-mode의 STREAM 구독 요청을 보여 줍니다. OpenConfig 리소스 경로는 /system/aaa/authentication/users/user[username="test1"]입니다.

구독 요청 시 OpenConfig 구성:

예제 응답 메시지는 플래그가 로 설정된 상태로 sync_response 전송된 초기 업데이트와 5초 간격으로 전송된 후속 업데이트를 보여줍니다.true