Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Junos에서 NETCONF 프록시 텔레메트리 센서 구성

Junos Telemetry Streaming을 사용하면 XML 프록시 기능을 통해 사용 가능한 모든 상태 정보를 텔레메트리 센서로 전환할 수 있습니다. NETCONF XML 관리 프로토콜 및 Junos XML API는 지원되는 모든 Junos OS 운영 요청에 대한 모든 옵션을 완벽하게 문서화합니다. XML 프록시 센서를 구성한 후 NETCONF "get" 원격 절차 호출(RPC)을 통해 데이터에 액세스할 수 있습니다.

이 작업은 Junos OS 운영 모드 명령의 출력을 스트리밍하는 방법을 보여줍니다.

모범 사례:

광범위하거나 상세한 출력이 있거나 출력 생성이 느린 Junos OS 운영 명령에 매핑되는 YANG 파일은 사용하지 않는 것이 좋습니다. YANG 파일에서 현저한 지연이 있는 명령은 피해야 합니다. 이러한 명령을 포함하면 다른 xmlproxyd 센서와 xmlproxyd의 성능에 영향을 줄 수 있습니다.

일부 운영 모드 명령의 출력은 동적이며 상세 수준은 구성 및 하드웨어와 같은 요인에 따라 달라집니다. 이러한 명령의 예로는 , show route, show arp, show bfd, show bgpshow ddos-protection및 의 show interfaces변형이 있습니다.

명령의 세부 정보 표시 수준을 확인하려면 | display xml | count 명령을 실행합니다command-name. 줄 수가 4000줄 값을 초과하는 경우 이 명령은 XML 프록시 스트리밍에 권장되지 않습니다. 이 값은 내부 기준선을 기반으로 한 근사치에 가깝습니다. 장치 유형, 장치의 처리 능력 및 기존 CPU 부하와 같은 다양한 요인에 따라 더 적을 수 있습니다. 따라서 이 기능은 장치의 성능에 따라 신중하게 사용해야 합니다.

Junos OS 또는 Junos OS Evolved 운영 모드 명령에 매핑되는 YANG 파일을 사용하기 전에 명령 command-name| display xml 을(를) 실행하여 명령이 유효한 XML 출력을 생성하는지, 잘못된 태그, 데이터 또는 형식이 포함되어 있지 않은지 확인할 수 있습니다.

verbose 명령에 매핑되는 YANG 파일을 사용하면 다음 중 하나 이상이 발생합니다.

  • xmlproxyd 프로세스 CPU 사용률이 높게 유지됩니다. xmlproxyd에 추적이 사용 가능한 경우 CPU 사용률은 훨씬 더 높습니다.

  • xmlproxyd 프로세스 메모리 사용률의 증가입니다.

  • xmlproxyd 프로세스 상태는, 명령 출력이 상세하고, xmlproxyd (이)가 명령의 원격 프로시저 호출(RPC)의 출력을 읽는 데 상당한 시간을 소비하고 있는 것을 나타내는 (으)로 표시될 sbwait수 있습니다.

  • xmlproxyd 센서 데이터가 랩을 완료하지 않습니다.

  • xmlproxyd는 센서에 대한 데이터를 부분적으로 스트리밍하거나 스트리밍하지 않습니다.

  • xmlproxyd는 reporting-interval 주기를 누락합니다. 명령의 자세한 정보 출력으로 인해 간격이 겹치기 시작하여 xmlproxyd의 센서 스트리밍 데이터가 느리거나 지연됩니다.

  • verbose 명령의 RPC를 제공하는 프로세스 또는 애플리케이션은 높은 CPU 수를 표시하거나 기본 태스크를 수행하는 데 지연을 표시할 수 있습니다. 이 동작은 프로세스 또는 애플리케이션이 자세한 출력이 있는 RPC를 제공 중일 때 발생합니다.

이 작업에는 다음이 필요합니다.

  • Junos OS 릴리스 17.3R2 이상에서 작동하는 MX 시리즈, vMX 시리즈 또는 PTX 시리즈 라우터.

  • 원격 분석 센서의 적절한 작동을 확인하기 위한 OpenNTI와 같은 원격 분석 데이터 수신기.

이 작업에서는 Junos OS 명령 show system users의 내용을 스트리밍합니다.

show system users(vMX 시리즈)

현재 로그인한 사용자의 예상 목록 외에도 출력은 show system users 평균 시스템 로드를 1, 5, 15분으로 제공합니다. 명령을 사용하여 show system users | display xml 출력 필드에 대한 XML 태그 지정을 보면 부하 평균을 찾을 수 있습니다. 아래의 XML 태깅 출력에서, <load-average-5><load-average-15> 를 참조하십시오<load-average-1>.

팁:

앞의 uptime-information 출력에 표시된 태그는 , up-time, active-user-count. 및 load-average-1와 같은 date-time리프를 포함하는 컨테이너입니다. 다음은 이 컨테이너에 대한 샘플 YANG 파일입니다.

팁:

태그에는 uptime-information 사용자 항목 목록이 포함된 라는 user-table 또 다른 컨테이너도 있습니다.

다음은 이 컨테이너에 대한 샘플 YANG 파일입니다.

사용자 정의 YANG 파일 생성

YANG 파일은 실행할 Junos CLI 명령, 센서가 배치되는 리소스 경로, 일치하는 XML 태그에서 가져온 키 값 쌍을 정의합니다.

Junos OS용 사용자 지정 YANG 파일은 RFC 6020, YANG 1.0, YANG - NETCONF(Data Modeling Language for the Network Configuration Protocol) 및 RFC 7950, YANG 1.1 데이터 모델링 언어에 정의된 YANG 언어 구문을 준수합니다. XML 프록시를 구성하는 파일에 특정 지시문이 있어야 합니다.

프로세스를 사용하여 xmlproxyd 원격 분석 데이터를 변환하려면 파일을 만듭니다 render.yang . 이 파일에서 은 dr:command-app (는) 로 xmlproxyd설정됩니다.

XML 프록시 YANG 파일 이름 및 모듈 이름은 다음으로 시작해야 합니다.xmlproxyd_

  • XML 프록시 YANG 파일 이름의 경우 확장 .yang자 (예: )를 추가합니다. xmlproxyd_sysusers.yang

  • 모듈 이름의 경우 확장자 .yang없이 파일 이름을 사용합니다(예: xmlproxyd_sysusers

YANG 파일 생성을 단순화하려면 작업 예제를 수정하여 시작하는 것이 가장 쉽습니다.

  1. 모듈의 이름을 입력합니다. 모듈 이름은 XML 프록시 YANG 파일 이름과 함께 시작하고 xmlproxyd_ 동일한 이름이어야 합니다.

    예를 들어, 라는 sysusers.yangXML 프록시 YANG 파일의 경우 확장자를 .yang 삭제하고 모듈 xmlproxyd_sysusers이름을 지정합니다.

    module xmlproxyd_sysusers {

  2. Junos Telemetry Interface의 경우 프로세스 이름을 xmlproxyd포함합니다.

    dr:command-app "xmlproxyd";

  3. NETCONF get 요청에 대해 다음 RPC를 포함합니다.

    rpc juniper-netconf-get {

  4. RPC의 출력 위치를 지정합니다. 여기서 company-name 은 위치에 지정한 이름입니다.

    dr:command-top-of-output "/company-name";

  5. 다음 명령을 포함하여 RPC를 실행합니다.

    dr:command-full-name "drend juniper-netconf-get";

  6. 데이터를 검색할 CLI 명령을 지정합니다. 요청된 샘플 빈도에서 실행되는 Junos OS CLI 명령은 아래에 dr:cli-command 정의되어 프로세스에 의해 xmlproxyd 실행됩니다.

    Junos OS 명령에 대한 명령 출력을 검색하려면 다음을 수행합니다.show system users

    dr:cli-command "show system users";

  7. 권한을 에스컬레이션하고, "루트"로 로그온하고, 텔넷을 통해 내부 관리 소켓에 연결하고, RPC에 대한 도움말을 지정합니다.

    dr: command-help “default <get> rpc”;

    이것이 YANG 파일에 포함되면 디버깅에 도움이 되는 출력이 내부 관리 소켓의 출력에 help drend 표시됩니다.

    200-juniper-netconf-get-0 system users <get> RPC

  8. 계층을 지정하고 명령을 사용하여 dr:source 컨테이너, 목록 또는 특정 리프에 매핑합니다. 센서가 보고되는 절대 경로는 출력 그룹 junos 더하기 system-users-information에서 작성되며 /’로 연결됩니다. path /junos/system-users-information/ 는 이 사용자 지정 센서에 대한 정보를 쿼리하는 경로입니다.
    경고:

    사전 정의된 네이티브 경로(주니퍼 정의 경로) 및 OpenConfig 경로(리소스)와 충돌하거나 겹치는 사용자 지정 YANG 모델을 생성해서는 안 됩니다. 이렇게 하면 정의되지 않은 동작이 발생할 수 있습니다.

    예를 들어, 에서 새 리프를 정의하거나 또는 와 /interfaces같은 /junos/system/linecard/firewall리소스 경로에 대한 노드를 보강하는 모델을 생성하지 마십시오.

    컨테이너, 리프 및 CLI 명령 출력의 XML 태그 또는 값 간의 일대일 매핑은 출력 컨테이너 내에서 가 uses 참조하는 그룹화에 정의되어 있습니다. 그룹화 는 다른 컨테이너 출력에서 여러 번 참조될 수 있습니다. 아래 컨테이너 system-users-information 는 system-users-information 그룹화를 사용합니다. 그러나 CLI 명령 XML 출력에서 출력 XML 태그에 대한 모든 컨테이너, 목록 및 리프에 대해 앞서 언급한 일대일 매핑 없이 정의됩니다.

  9. 다음 YANG 파일은 프로세스가 전체 운영 상태를 검색하고 이를 주니퍼 자체 데이터 모델의 리프에 매핑할 수 xmlproxyd 있도록 이러한 명령을 포함하는 방법을 보여줍니다.

Junos에서 Yang 파일 로드

YANG 파일이 완료된 후 YANG 파일을 업로드하고 모듈이 생성되었는지 확인합니다.

  1. YANG 파일을 라우터에 업로드합니다.
  2. 명령을 사용하여 YANG 파일을 등록합니다 request system yang add package .
    메모:

    Junos OS 릴리스 18.3R1부터는 명령을 사용하여 run 구성 모드에서 YANG 패키지를 추가, 삭제 또는 업데이트할 수 없습니다.

  3. 모듈을 (센서)가 명령을 사용하여 show system yang package sysusers 등록되었는지 확인합니다. 여기서 sysusers 은 패키지의 이름입니다.
  4. Junos OS 구성에서 gRPC를 활성화합니다.

센서 데이터 수집

즐겨 찾는 수집기를 사용하여 디바이스에서 새로 생성된 원격 측정 센서 데이터를 가져옵니다.

센서를 시작하기 전에 리소스 제약 조건을 고려하십시오.

  • 다중 XML 프록시 센서에 대해 동일한 보고 간격을 지정하지 마십시오.

  • xmlproxyd는 XML 및 텍스트 처리를 수행하므로 디바이스에는 CPU 사용률 범위 내에서 실행되는 XML 프록시 센서만 포함되어야 합니다.

플랫폼별 센서 데이터 수집 동작

기능 탐색기를 사용하여 특정 기능에 대한 플랫폼 및 릴리스 지원을 확인할 수 있습니다.

다음 표를 사용하여 플랫폼에 대한 플랫폼별 동작을 검토할 수 있습니다.

표 1: 센서 데이터 동작 수집

플랫폼

다름

PTX10008

Evolved Junos OS 작동하는 PTX10008 라우터의 경우, 텔레메트리 RPC를 위해 라우터당 10개 이상의 컬렉터를 연결하지 마십시오.

다음 지침에서는 수집기 jtimon을 사용합니다. jtimon 설정에 대한 자세한 내용은 Junos Telemetry Interface 클라이언트를 참조하십시오.

메모:

센서에 대한 구독이 이미 존재하고 중복 구독이 구성된 경우, 수집기와 장치 간의 연결이 오류 메시지 AlreadyExists와 함께 닫힙니다.

  1. 여기에 라는 vmx1.json간단한 구성 파일을 만듭니다. 필요에 따라 호스트 IP 주소와 포트를 조정합니다. 경로 /junos/system-users-information 가 지정됩니다. 이 freq 필드는 MicroSoft에서 정의되며 5초마다 새로운 키 값 쌍 세트를 스트리밍합니다. 필요에 따라 여러 경로를 추가할 수 있습니다.
  2. 사용자 고유의 컴파일된 파일 또는 Docker Hub에서 자동으로 빌드된 이미지를 사용하여 수집기를 시작합니다. 아래 샘플 쿼리 출력은 경로별 센서 보고서를 보여줍니다. 모든 키는 절대 경로로 사람이 읽을 수 있는 형식으로 전송됩니다. 목록의 경우 절대 경로에는 InfluxDB와 같은 (시계열) 데이터베이스의 값을 그룹화하는 데 이상적인 XPATH 형식의 인덱스가 포함됩니다. 예를 들어 아래 출력은 경로를 /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/보여줍니다.

    Ctrl-C를 사용하여 센서 데이터 스트림을 종료할 수 있습니다.

    아래 표시된 샘플 쿼리는 경로당 두 개의 센서 보고서를 표시한 다음 Ctrl-C로 종료했습니다. 모든 키는 절대 경로로 사람이 읽을 수 있는 형식으로 전송되며 목록의 경우 XPATH 형식의 인덱스를 포함하며 InfluxDB와 같은 (시계열) 데이터베이스의 값을 그룹화하는 데 이상적입니다(예: /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/

  3. 명령을 사용하여 show system yang package sysusers 모듈(센서)이 로드되었는지 확인합니다. 여기서 sysusers 은 패키지 이름입니다.
  4. Junos OS 구성에서 gRPC를 활성화합니다.

사용자 정의 YANG 파일 설치

Junos Telemetry Interface용 XML 프록시에 대한 사용자 정의 YANG 파일을 추가, 검증, 수정 또는 삭제하려면 운영 모드에서 명령 세트를 사용하십시오 request system yang .

  1. XML 프록시 YANG 파일의 이름과 이를 설치할 파일 경로를 지정합니다. 이 명령은 디렉터리에 .json /opt/lib/render 파일을 만듭니다.
    메모:

    이 명령은 현재 라우팅 엔진에서만 수행할 수 있습니다.

    명령으로 request system yang add package package-name proxy-xml module 여러 YANG 모듈을 추가하려면 을(를) file-path-name 괄호로 묶습니다. [ file-path-name 1 file-path-name 2 ]

  2. (선택 사항) 명령을 사용하여 request system yang validate proxy-xml module module-name 라우터에 추가하기 전에 모듈을 검증합니다. 을 클릭합니다.

    출력 XML proxy YANG module validation for xmlproxyd_<module-name> : SUCCESS 은 성공적인 모듈 유효성 검사를 나타냅니다.

    불일치 오류가 발생하는 경우가 있습니다. 명령이 아래 오류를 반환하면 Junos OS 릴리스 17.3R2 이상을 사용하여 오류를 제거할 수 있습니다.

  3. (옵션) 이전에 추가된 기존 XML 프록시 YANG 파일을 업데이트합니다.
  4. 기존 XML 프록시 YANG 파일을 삭제합니다.
  5. 명령을 입력하여 show system yang package YANG 파일이 설치되었는지 확인합니다.

텔레메트리 센서 문제 해결

문제

묘사

다음 방법을 사용하여 사용자 정의 원격 측정 센서 문제를 해결합니다.

  • gRPC 요청이 발생한 인터페이스에 대해 tcpdump를 실행합니다(이 작업의 경우 인터페이스 fxp0 가 사용됨).

  • 명령을 사용하여 traceoptions를 활성화합니다 set services analytics traceoptions flag xmlproxy . xmlproxyd 로그 파일에서 CLI 명령의 RPC가 전송되었는지 여부와 응답을 수신했는지 확인합니다.

  1. show log xmlproxyd 명령을 실행하여 xmlproxyd 로그를 표시합니다. 필드 xmlproxy_execute_cli_command: 값은 RPC가 전송되었는지 여부를 나타냅니다. 필드 xmlproxy_build_context 값은 명령을 나타냅니다.