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 de proxy NETCONF en Junos

Mediante 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 NETCONF y la API XML de Junos documentan completamente todas las opciones para cada solicitud operativa Junos OS compatible. Después de configurar los sensores de proxy XML, puede tener acceso a los datos a través de llamadas de procedimiento remoto (RPCs) "get" de NETCONF.

Esta tarea muestra cómo transmitir la salida de un comando en modo operativo de Junos OS.

Prácticas recomendadas:

Recomendamos no usar archivos YANG que se asignen a un comando operativo de Junos OS con salida extensa o detallada o que sea lento en la producción. Los comandos con un retraso notable deben evitarse en los archivos YANG. Incluir 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 verbosidad depende de factores como la configuración y el hardware. Algunos ejemplos de estos comandos incluyen cualquier variación de show interfaces, show route, show arp, show bfd, show bgp, y 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 bien una aproximación basada en el revestimiento interno de la base. Puede ser menos 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 con criterio según el rendimiento del dispositivo.

Puede emitir el comando command-name| display xml antes de usar un archivo YANG que se asigne a un comando en modo operativo Junos OS o Junos OS Evolucionado para comprobar que el comando produce una salida XML válida 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:

  • El uso de cpu del proceso xmlproxyd sigue siendo alto. Si xmlproxyd tiene el rastreo habilitado, la utilización de la CPU es aún mayor.

  • Un aumento en la utilización de memoria del proceso xmlproxyd.

  • El estado de proceso xmlproxyd puede mostrar sbwait, lo que indica que la salida del comando es detallada y que xmlproxyd está pasando un tiempo significativo leyendo la salida de la llamada a procedimiento remoto del comando (RPC).

  • Los datos del sensor xmlproxyd no completan la envoltura.

  • Xmlproxyd transmite datos parciales o nulos para los sensores.

  • El xmlproxyd pierde los ciclos de intervalos de informes. Los intervalos comienzan a superponerse debido a la salida detallada de un comando, lo que da como resultado que los datos de transmisión del sensor xmlproxyd sean lentos o retrasados.

  • Es posible que el proceso o la aplicación que sirve al comando detallado DE LARR muestre altos números de CPU o retrasos en la realización de las tareas principales. Este comportamiento se produce cuando el proceso o la aplicación están ocupados sirviendo al RPC que tiene una salida detallada.

Esta tarea requiere lo siguiente:

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

  • Instalación del paquete de 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 verificar el correcto funcionamiento de su sensor de telemetría.

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

muestra a los 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 en 1, 5 y 15 minutos. Puede encontrar los promedios de carga mediante el show system users | display xml comando para ver el etiquetado XML para los campos de salida. Consulte <load-average-1>, <load-average-5>, y <load-average-15> en la salida de etiquetado XML que se encuentra a continuación.

Propina:

La uptime-information etiqueta que se muestra en el resultado anterior es un contenedor que contiene leaf, como date-time, up-time. active-user-county 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 denominado 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 CLI de Junos que se va a ejecutar, la ruta de recurso en la que se colocan los sensores y los pares de valores de clave tomados de las etiquetas XML correspondientes.

Los archivos YANG personalizados para Junos OS cumplen con 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. Ciertas directivas deben estar presentes en el archivo que configura el proxy XML.

Para usar el xmlproxyd proceso (demonio) 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 módulo y el nombre del nombre de módulo de YANG proxy XML deben comenzar por xmlproxyd_:

  • Para el nombre de archivo YANG 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 por modificar un ejemplo de trabajo.

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

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

    module xmlproxyd_sysusers {

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

    dr:command-app "xmlproxyd";

  3. Incluya la siguiente RPC para la solicitud de obtención de NETCONF:

    rpc juniper-netconf-get {

  4. Especifique la ubicación de la salida de la RPC, donde company-name es el nombre que le da 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 CLI desde el cual se recuperarán los datos. El comando de CLI de Junos OS que se ejecuta en la frecuencia de muestra solicitada se define en dr:cli-command y se ejecuta por el xmlproxyd demonio.

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

    dr:cli-command "show system users";

  7. Aumente los privilegios, inicie sesión como "raíz", conéctese al socket de administración interno a través de Telnet y especifique la ayuda para una RPC:

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

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

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

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

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

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

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

  9. El siguiente archivo YANG muestra cómo incluir estos comandos para permitir que el xmlproxyd proceso recupere el estado operativo completo y lo asigne a las hojas en el 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 el módulo está creado.

  1. Cargue el archivo YANG al enrutador.
  2. Registre el archivo YANG con 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. Compruebe que el módulo (sensor) está registrado con el show system yang package sysusers comando, donde sysusers está el nombre del paquete:
  4. Habilite gRPC en la configuración de Junos OS:

Recopilar datos de sensores

Utilice 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 de proxy XML.
  • Para los enrutadores PTX10008 que funcionan con Junos OS Evolucionado, no conecte más de 10 recolectores por enrutador para RPC de telemetría.
  • Dado que xmlproxyd realiza el procesamiento de XML y texto, un dispositivo solo debe contener sensores de proxy XML que se ejecuten dentro del intervalo de utilización de CPU.

Las siguientes instrucciones usan el jtimon del recopilador. Para obtener más 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 simple, 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, y transmite un nuevo conjunto de pares de valores de 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 la consulta de muestra a continuación muestra el informe del sensor por ruta. Cada clave se envía en forma legible por el ser humano como un camino absoluto. 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 (serie de tiempo), como InfluxDB. Por ejemplo, el resultado siguiente muestra la ruta /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/.

    Puede terminar el flujo de datos del sensor con Ctrl-C.

    La consulta de ejemplo que se muestra a continuación muestra dos informes de sensores por ruta y, luego, la rescindí con Ctrl-C. Cada clave se envía en forma legible 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 (serie de tiempo) como InfluxDB, por ejemplo, /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/

  3. Compruebe que el módulo (sensor) se carga con el show system yang package sysusers comando, donde sysusers está el 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, utilice el request system yang conjunto de comandos desde el modo operativo:

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

    Este comando solo se puede realizar 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, encierre entre 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 ha realizado correctamente.

    A veces, se produce un error de discordancia. Si el comando devuelve el error a continuación, puede eliminar el error utilizando Junos OS versión 17.3R2 o posterior:

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

Solución de problemas de sensores de telemetría

Problema

Descripción

Utilice los siguientes métodos para solucionar problemas de los sensores de telemetría de definición del usuario:

  • Ejecute una tcpdump para la interfaz de la que provenían sus solicitudes gRPC (para esta tarea, se utilizó la interfaz fxp0 ).

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

  1. Emita el show log xmlproxyd comando para mostrar el 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.