Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configurar un sensor de telemetría proxy NETCONF en Junos

Con la transmisión de telemetría de Junos, puede convertir cualquier información de estado disponible en un sensor de telemetría mediante la funcionalidad Proxy XML. El protocolo de administración XML de NETCONF y la API XML de Junos documentan completamente todas las opciones para cada solicitud operativa de Junos OS compatible. Después de configurar los sensores de proxy XML, puede tener acceso a los datos a través de llamadas a procedimiento remoto (RPC) "get" de NETCONF.

En esta tarea se muestra cómo transmitir el resultado de un comando del modo operativo de Junos OS.

Práctica recomendada:

Recomendamos no utilizar archivos YANG que se asignen a un comando operativo de Junos OS con una salida extensa o detallada, o que sea lenta en la producción de salida. Los comandos con un retraso notable deben evitarse en los archivos YANG. La inclusión de estos comandos puede afectar a otros sensores xmlproxyd, así como al rendimiento de xmlproxyd.

El resultado de algunos comandos del modo operativo es dinámico y el nivel de su detalle depende de factores como la configuración y el hardware. Algunos ejemplos de estos comandos son cualquier variación de show interfaces, , show arp, , show bgpshow routeshow bfdy .show ddos-protection

Para comprobar el nivel de detalle de un comando, emita el command-namecomando | | display xml count . Si el recuento de líneas supera un valor de 4000 líneas, no se recomienda el comando para la transmisión de proxy XML. Este valor es más una aproximación basada en el revestimiento de base interno. Puede ser menor dependiendo de varios factores, como el tipo de dispositivo, la potencia de procesamiento del dispositivo y la carga de CPU existente. En consecuencia, esta función debe usarse juiciosamente en función del rendimiento del dispositivo.

Puede emitir el comando | display xml antes de utilizar un archivo YANG que se asigne a un comando de modo operativo Junos OS o Junos OS evolucionado para comprobar que el comando command-namegenera resultados XML válidos y no contiene etiquetas, datos ni formato no válidos.

El uso de un archivo YANG que se asigna a un comando detallado da como resultado uno o varios de los siguientes elementos:

  • El uso de CPU del proceso xmlproxyd sigue siendo elevado. Si xmlproxyd tiene habilitado el seguimiento, el uso de la CPU es aún mayor.

  • Un aumento en el uso de memoria de proceso xmlproxyd.

  • El estado del proceso xmlproxyd puede mostrar sbwait, lo que indica que el resultado del comando es detallado y que xmlproxyd está dedicando mucho tiempo a leer la salida de la llamada a procedimiento remoto (RPC) del comando.

  • Los datos del sensor xmlproxyd no completan el ajuste.

  • xmlproxyd transmite datos parciales o nulos para los sensores.

  • xmlproxyd pierde ciclos de intervalo de informes. Los intervalos comienzan a superponerse debido a la salida detallada de un comando, lo que da como resultado que el sensor de xmlproxyd transmita datos lentos o retrasados.

  • El proceso o la aplicación que sirve al RPC del comando detallado puede mostrar un alto número de CPU o retrasos en la realización de las tareas principales. Este comportamiento se produce cuando el proceso o la aplicación está ocupado sirviendo la RPC que tiene un resultado detallado.

Esta tarea requiere lo siguiente:

  • Un enrutador serie MX, vMX o PTX que ejecute Junos OS versión 17.3R2 o posterior.

  • Instalación del paquete del Agente de red necesario ( network-agent-x86–32–17.4R1.16-C1.tgz o posterior).

  • Un receptor de datos de telemetría, como OpenNTI, para comprobar el correcto funcionamiento del sensor de telemetría.

En esta tarea, transmitirá el contenido del comando show system usersde Junos OS.

mostrar usuarios del sistema (serie vMX)

Además de la lista esperada de usuarios que han iniciado sesión actualmente, el show system users resultado también proporciona la carga promedio del sistema como 1, 5 y 15 minutos. Puede encontrar los promedios de carga mediante el comando para ver el show system users | display xml etiquetado XML de los campos de salida. Consulte <load-average-1>, <load-average-5>y <load-average-15> en el resultado del etiquetado XML a continuación.

Propina:

La uptime-information etiqueta que se muestra en el resultado anterior es un contenedor que contiene hojas, como date-time, , up-timeactive-user-count. y load-average-1. A continuación se muestra un archivo YANG de ejemplo para este contenedor:

Propina:

La uptime-information etiqueta también tiene otro contenedor llamado user-table que contiene una lista de entradas de usuario.

A continuación se muestra un archivo YANG de ejemplo para este contenedor:

Crear un archivo YANG definido por el usuario

El archivo YANG define el comando de la CLI de Junos que se ejecutará, la ruta de recursos en la que se colocan los sensores y los pares de valores clave tomados de las etiquetas XML coincidentes.

Los archivos YANG personalizados para Junos OS se ajustan a la sintaxis del lenguaje YANG definida en RFC 6020 YANG 1.0 YANG: un lenguaje de modelado de datos para el protocolo de configuración de red (NETCONF) y RFC 7950, el lenguaje de modelado de datos YANG 1.1. Algunas directivas deben estar presentes en el archivo que configura el proxy XML.

Para usar el xmlproxyd proceso (daemon) para traducir datos de telemetría, cree un render.yang archivo. En este archivo, el dr:command-app se establece en xmlproxyd.

El nombre de archivo YANG del proxy XML y el nombre del módulo deben comenzar con xmlproxyd_:

  • Para el nombre de archivo YANG del proxy XML, agregue la extensión .yang, por ejemplo, xmlproxyd_sysusers.yang

  • Para el nombre del módulo, utilice el nombre de archivo sin la extensión .yang, por ejemplo, xmlproxyd_sysusers

Para simplificar la creación de un archivo YANG, es más fácil comenzar modificando un ejemplo de trabajo.

  1. Proporcione un nombre para el módulo. El nombre del módulo debe comenzar con xmlproxyd_ y ser el mismo nombre que el nombre del archivo YANG del proxy XML.

    Por ejemplo, para un archivo YANG proxy XML llamado sysusers.yang, suelte la .yang extensión y asigne al módulo xmlproxyd_sysusers:

    module xmlproxyd_sysusers {

  2. Para la interfaz de telemetría de Junos, incluya el nombre xmlproxyddel proceso (daemon):

    dr:command-app "xmlproxyd";

  3. Incluya el siguiente RPC para la solicitud get de NETCONF:

    rpc juniper-netconf-get {

  4. Especifique la ubicación de la salida del RPC, donde company-name es el nombre que asigne a la ubicación:

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

  5. Incluya el siguiente comando para ejecutar la RPC:

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

  6. Especifique el comando de la CLI desde el que se recuperarán los datos. El comando de la CLI de Junos OS que se ejecuta a la frecuencia de muestra solicitada se define y dr:cli-command ejecuta el xmlproxyd demonio.

    Para recuperar la salida del comando para el comando show system usersde Junos OS:

    dr:cli-command "show system users";

  7. Escalar privilegios, iniciar sesión como "raíz", conectarse al socket de administración interno a través de Telnet y especificar ayuda para un RPC:

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

    Cuando esto se incluye en el archivo YANG, el resultado que es útil para la depuración se muestra en el resultado en el help drend socket de administración interno:

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

  8. Especifique la jerarquía y utilice el dr:source comando para asignar a un contenedor, una lista o una hoja específica. La ruta absoluta bajo la cual se reportarán los sensores se construye a partir del grupo junos de salida más system-users-information, concatenado por /’. La ruta es la ruta /junos/system-users-information/ para consultar información sobre este sensor personalizado.
    Advertencia:

    No debe crear un modelo de YANG personalizado que entre en conflicto o se superponga con rutas nativas predefinidas (rutas definidas por Juniper) y rutas de OpenConfig (recursos). Si lo hace, puede dar lugar a un comportamiento indefinido.

    Por ejemplo, no cree un modelo que defina nuevas hojas en o aumente los nodos para rutas de recursos como /junos/system/linecard/firewallo /interfaces.

    Una asignación uno a uno entre el contenedor, las hojas y la etiqueta XML o el valor de la salida del comando CLI se define en la agrupación a la que uses hace referencia dentro del contenedor de salida. Se puede hacer referencia a una agrupación varias veces en diferentes salidas de contenedor. El contenedor system-users-information siguiente utiliza la agrupación system-users-information. Sin embargo, se define sin la asignación uno a uno mencionada anteriormente para cada contenedor, lista y hoja a una etiqueta XML de salida desde la salida XML del comando CLI.

  9. El siguiente archivo YANG muestra cómo incluir estos comandos para permitir que el proceso recupere el estado operativo completo y lo asigne a las hojas en el xmlproxyd propio modelo de datos de Juniper:

Cargar el archivo Yang en Junos

Una vez completado el archivo YANG, cargue el archivo YANG y verifique que se haya creado el módulo.

  1. Cargue el archivo YANG en el enrutador.
  2. Registre el archivo YANG mediante el request system yang add package comando.
    Nota:

    A partir de Junos OS versión 18.3R1, no se admite agregar, eliminar o actualizar paquetes YANG en modo de configuración con el run comando.

  3. Verifique que el módulo (sensor) esté registrado mediante el comando, donde sysusers es el show system yang package sysusers nombre del paquete:
  4. Habilite gRPC en la configuración de Junos OS:

Recopilar datos del sensor

Use su recopilador favorito para extraer los datos del sensor de telemetría recién creados del dispositivo.

Tenga en cuenta las limitaciones de recursos antes de iniciar los sensores:

  • Evite especificar el mismo intervalo de informes para varios sensores proxy XML.
  • En el caso de enrutadores PTX10008 que funcionan con Junos OS Evolved, no conecte más de 10 recopiladores por enrutador para RPC de telemetría.
  • Dado que xmlproxyd realiza XML y procesamiento de texto, un dispositivo solo debe contener sensores proxy XML que se ejecuten dentro del intervalo de utilización de la CPU.

Las siguientes instrucciones utilizan el recopilador jtimon. Para obtener información acerca de la configuración de jtimon, consulte Cliente de interfaz de telemetría de Junos.

Nota:

Si ya existe una suscripción para un sensor y se configura una suscripción duplicada, la conexión entre el recopilador y el dispositivo se cerrará con el mensaje AlreadyExistsde error .

  1. Cree un archivo de configuración sencillo, aquí denominado vmx1.json. Ajuste la dirección IP del host y el puerto, según sea necesario. Se especifica la ruta de acceso /junos/system-users-information . El freq campo se define en MicroSoft, transmitiendo un nuevo conjunto de pares de valores clave cada 5 segundos. Opcionalmente, puede agregar varias rutas.
  2. Inicie el recopilador con su propio archivo compilado o con una imagen creada automáticamente desde Docker Hub. El resultado de consulta de ejemplo siguiente muestra el informe del sensor por ruta. Cada clave se envía en forma legible por humanos como una ruta absoluta. En el caso de las listas, la ruta absoluta contiene un índice en forma de XPATH que es ideal para agrupar valores de una base de datos (series temporales), como InfluxDB. Por ejemplo, el resultado siguiente muestra la ruta /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/.

    Puede finalizar la secuencia de datos del sensor mediante Ctrl-C.

    La consulta de ejemplo que se muestra a continuación muestra dos informes de sensor por ruta, luego la terminé con Ctrl-C. Cada clave se envía en forma legible por humanos como una ruta absoluta y, en el caso de las listas, contiene un índice en forma de XPATH, ideal para agrupar valores de una base de datos (series temporales) como InfluxDB, por ejemplo, /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/

  3. Verifique que el módulo (sensor) esté cargado usando el comando, donde sysusers es el show system yang package sysusers nombre del paquete:
  4. Habilite gRPC en la configuración de Junos OS:

Instalación de un archivo YANG definido por el usuario

Para agregar, validar, modificar o eliminar un archivo YANG definido por el usuario para proxy XML para la interfaz de telemetría de Junos, use el conjunto de comandos desde el request system yang modo operativo:

  1. Especifique el nombre del archivo YANG de proxy XML y la ruta de acceso del archivo para instalarlo. Este comando crea un .json archivo en el /opt/lib/render directorio.
    Nota:

    Este comando solo se puede ejecutar en el motor de enrutamiento actual.

    Para agregar varios módulos YANG con el request system yang add package package-name proxy-xml module comando, escriba los file-path-name corchetes: [ file-path-name 1 file-path-name 2 ]

  2. (Opcional) Valide un módulo antes de agregarlo al enrutador mediante el request system yang validate proxy-xml module module-name comando. .

    El resultado XML proxy YANG module validation for xmlproxyd_<module-name> : SUCCESS indica que la validación del módulo se realizó correctamente.

    A veces se produce un error de discrepancia. Si el comando devuelve el error siguiente, puede eliminarlo con Junos OS versión 17.3R2 o posterior:

  3. (Opcional) Actualice un archivo YANG de proxy XML existente que se agregó anteriormente.
  4. Elimine un archivo YANG de proxy XML existente.
  5. Compruebe que el archivo YANG se ha instalado introduciendo el show system yang package comando.

Solucionar problemas de los sensores de telemetría

Problema

Descripción

Use los métodos siguientes para solucionar problemas de los sensores de telemetría definidos por el usuario:

  • Ejecute un tcpdump para la interfaz de la que provienen sus solicitudes gRPC (para esta tarea, se utilizó la interfaz fxp0 ).

  • Habilite traceoptions mediante el set services analytics traceoptions flag xmlproxy comando. Verifique el archivo de registro para confirmar si se envió el xmlproxyd RPC del comando de CLI y si se recibió una respuesta:

  1. Ejecute el comando para mostrar el show log xmlproxyd registro xmlproxyd. El valor del campo xmlproxy_execute_cli_command: indica si el RPC se envió o no. El valor del campo xmlproxy_build_context indica el comando.