Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configuration d’un capteur de télémétrie proxy NETCONF dans Junos

Grâce au streaming de télémétrie Junos, vous pouvez transformer toutes les informations d’état disponibles en capteur de télémétrie au moyen de la fonctionnalité XML Proxy. Le protocole de gestion XML NETCONF et l’API XML Junos documentent toutes les options pour chaque demande opérationnelle Junos OS prise en charge. Après avoir configuré les capteurs proxy XML, vous pouvez accéder aux données via NETCONF « get » remote procedure calls (RPC).

Cette tâche vous montre comment diffuser la sortie d’une commande en mode de fonctionnement de Junos OS.

Meilleure pratique :

Nous vous recommandons de ne pas utiliser de fichiers YANG mappés à une commande opérationnelle Junos OS avec une sortie étendue ou détaillée ou dont la production est lente. Les commandes avec un retard notable doivent être évitées dans les fichiers YANG. L’inclusion de telles commandes peut affecter d’autres capteurs xmlproxyd ainsi que les performances de xmlproxyd.

La sortie de certaines commandes en mode opérationnel est dynamique et le niveau de détail dépend de facteurs tels que la configuration et le matériel. Des exemples de telles commandes incluent toute variante de show interfaces, , , show bfdshow bgp, show routeshow arpet show ddos-protection.

Pour vérifier le niveau de détail d’une commande, exécutez la command-namecommande | | display xml count . Si le nombre de lignes dépasse la valeur de 4000 lignes, la commande n’est pas recommandée pour le streaming proxy XML. Cette valeur est davantage une approximation basée sur une base de référence interne. Cela peut être inférieur en fonction de divers facteurs tels que le type de périphérique, la puissance de traitement de l’appareil et la charge CPU existante. Par conséquent, cette fonctionnalité doit être utilisée judicieusement en fonction des performances de l’appareil.

Vous pouvez émettre la commande | display xml avant d’utiliser un fichier YANG mappé à une commande en mode opérationnel Junos OS ou Junos OS Evolved pour vérifier que la commande command-nameproduit une sortie XML valide et ne contient pas de balises, de données ou de formatage non valides.

L’utilisation d’un fichier YANG mappé à une commande détaillée donne un ou plusieurs des résultats suivants :

  • L’utilisation du processeur du processus xmlproxyd reste élevée. Si le suivi est activé sur xmlproxyd, l’utilisation du processeur est encore plus élevée.

  • Une augmentation de l’utilisation de la mémoire du processus xmlproxyd.

  • L'état du processus xmlproxyd peut afficher sbwait, indiquant que la sortie de la commande est détaillée et que xmlproxyd passe beaucoup de temps à lire la sortie de l'appel de procédure distante (RPC) de la commande.

  • Les données de capteur xmlproxyd ne terminent pas le wrap.

  • Les flux xmlproxyd ne contiennent que partiellement ou pas de données pour les capteurs.

  • Le xmlproxyd manque les cycles d’intervalle de reporting. Les intervalles commencent à se chevaucher en raison de la sortie détaillée d'une commande, ce qui ralentit ou retarde le flux de données du capteur xmlproxyd.

  • Le processus ou l'application qui sert le RPC de la commande détaillée peut afficher un nombre élevé de processeurs ou des retards dans l'exécution des tâches principales. Ce problème est provoqué lorsque le processus ou l’application est occupé à servir le RPC qui a une sortie détaillée.

Cette tâche nécessite les éléments suivants :

  • Un routeur MX Series, vMX Series ou PTX Series fonctionnant sous Junos OS version 17.3R2 ou ultérieure.

  • Installation du package de l’Agent d’administration requis ( network-agent-x86–32–17.4R1.16-C1.tgz ou version ultérieure).

  • Un récepteur de données de télémétrie, tel qu’OpenNTI, pour vérifier le bon fonctionnement de votre capteur de télémétrie.

Dans cette tâche, vous allez diffuser le contenu de la commande show system usersJunos OS .

afficher les utilisateurs du système (vMX Series)

En plus de la liste attendue des utilisateurs actuellement connectés, la show system users sortie fournit également une charge système moyenne de 1, 5 et 15 minutes. Vous pouvez trouver les moyennes de charge en utilisant la show system users | display xml commande pour afficher le balisage XML pour les champs de sortie. Voir <load-average-1>, <load-average-5>et <load-average-15> dans la sortie du balisage XML ci-dessous.

Pointe:

La uptime-information balise affichée dans la sortie précédente est un conteneur qui contient des feuilles, telles que date-time, up-time, active-user-count. et load-average-1. Vous trouverez ci-dessous un exemple de fichier YANG pour ce conteneur :

Pointe:

La uptime-information balise a également un autre conteneur nommé user-table qui contient une liste d’entrées utilisateur.

Vous trouverez ci-dessous un exemple de fichier YANG pour ce conteneur :

Créer un fichier YANG défini par l’utilisateur

Le fichier YANG définit la commande Junos CLI à exécuter, le chemin de ressource sous lequel les capteurs sont placés et les paires clé-valeur extraites des balises XML correspondantes.

Les fichiers YANG personnalisés pour Junos OS sont conformes à la syntaxe du langage YANG définie dans RFC 6020 YANG 1.0 YANG - A Data Modeling Language for the Network Configuration Protocol (NETCONF) et RFC 7950 The YANG 1.1 Data Modeling Language. Certaines directives qui configurent le proxy XML doivent être présentes dans le fichier.

Pour utiliser le processus (démon) afin de traduire les xmlproxyd données de télémétrie, créez un render.yang fichier. Dans ce fichier, la dr:command-app valeur xmlproxydest .

Le nom de fichier YANG du proxy XML et le nom du module doivent commencer par xmlproxyd_:

  • Pour le nom de fichier YANG du proxy XML, ajoutez l’extension .yang, par exemple, xmlproxyd_sysusers.yang

  • Pour le nom du module, utilisez le nom de fichier sans l’extension .yang, par exemple, xmlproxyd_sysusers

Pour simplifier la création d’un fichier YANG, il est plus facile de commencer par modifier un exemple fonctionnel.

  1. Donnez un nom au module. Le nom du module doit commencer par xmlproxyd_ et être le même nom que le nom de fichier YANG du proxy XML.

    Par exemple, pour un fichier YANG proxy XML appelé sysusers.yang, déposez l’extension .yang et nommez le module xmlproxyd_sysusers:

    module xmlproxyd_sysusers {

  2. Pour l’interface de télémétrie Junos, incluez le nom xmlproxyddu processus (démon) :

    dr:command-app "xmlproxyd";

  3. Incluez le RPC suivant pour la demande get NETCONF :

    rpc juniper-netconf-get {

  4. Spécifiez l’emplacement de la sortie du RPC, où company-name est le nom que vous donnez à l’emplacement :

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

  5. Incluez la commande suivante pour exécuter le RPC :

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

  6. Spécifiez la commande CLI à partir de laquelle récupérer les données. La commande CLI Junos OS exécutée à la fréquence d’échantillonnage demandée est définie sous dr:cli-command et exécutée par le xmlproxyd démon.

    Pour récupérer la sortie de la commande Junos OS show system users:

    dr:cli-command "show system users";

  7. Faites remonter les privilèges, connectez-vous en tant que « root », connectez-vous au socket de gestion interne via Telnet et spécifiez l’aide pour un RPC :

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

    Lorsque cela est inclus dans le fichier YANG, la sortie utile au débogage est affichée dans la help drend sortie sur le socket de gestion interne :

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

  8. Spécifiez la hiérarchie et utilisez la dr:source commande pour mapper à un conteneur, une liste ou une feuille spécifique. Le chemin absolu sous lequel les capteurs seront signalés est construit à partir du groupe junos de sortie plus system-users-information, concaténé par /’. Le chemin d’accès est le chemin d’accès /junos/system-users-information/ à la recherche d’informations sur ce capteur personnalisé.
    Avertissement:

    Vous ne devez pas créer un modèle YANG personnalisé qui entre en conflit ou chevauche des chemins natifs prédéfinis (chemins définis par Juniper) et des chemins OpenConfig (ressources). Cela peut entraîner un comportement indéfini.

    Par exemple, ne créez pas de modèle qui définit de nouvelles feuilles au niveau ou augmente les nœuds pour des chemins d’accès de ressource tels que /junos/system/linecard/firewallou /interfaces.

    Un mappage un-à-un entre le conteneur, les feuilles et la balise XML ou la valeur de la sortie de la commande CLI est défini dans le regroupement référencé par uses dans le conteneur de sortie. Un regroupement peut être référencé plusieurs fois dans différentes sorties de conteneur. Le conteneur system-users-information ci-dessous utilise le regroupement system-users-information. Toutefois, il est défini sans le mappage un-à-un susmentionné pour chaque conteneur, liste et feuille à une balise XML de sortie à partir de la sortie XML de la commande CLI.

  9. Le fichier YANG suivant montre comment inclure ces commandes pour permettre au xmlproxyd processus de récupérer l’état opérationnel complet et de le mapper aux feuilles dans le modèle de données de Juniper :

Charger le fichier yang dans Junos

Une fois le fichier YANG terminé, téléchargez le fichier YANG et vérifiez que le module est créé.

  1. Téléchargez le fichier YANG sur le routeur.
  2. Enregistrez le fichier YANG à l’aide de la request system yang add package commande.
    Note:

    À partir de Junos OS version 18.3R1, l’ajout, la suppression ou la mise à jour de packages YANG en mode configuration avec la commande n’est run pas pris en charge.

  3. Vérifiez que le module (capteur) est enregistré à l’aide de la show system yang package sysusers commande où sysusers est le nom du package :
  4. Activez gRPC dans la configuration de Junos OS :

Collecter les données des capteurs

Utilisez votre collecteur préféré pour extraire les données du capteur de télémétrie nouvellement créées de l’appareil.

Tenez compte des contraintes de ressources avant de lancer des capteurs :

  • Évitez de spécifier le même intervalle de rapport pour plusieurs capteurs proxy XML.
  • Pour PTX10008 routeurs exécutant Junos OS Evolved, ne connectez pas plus de 10 collecteurs par routeur pour les RPC de télémétrie.
  • Étant donné que xmlproxyd effectue le traitement XML et de texte, un périphérique ne doit contenir que des capteurs proxy XML qui s’exécutent dans la plage d’utilisation du processeur.

Les instructions suivantes utilisent le collecteur jtimon. Pour plus d’informations sur la configuration de jtimon, voir Junos Telemetry Interface Client.

Note:

Si un abonnement existe déjà pour un capteur et qu’un abonnement en double est configuré, la connexion entre le collecteur et le périphérique se ferme avec le message AlreadyExistsd’erreur .

  1. Créez un fichier de configuration simple, nommé ici . vmx1.json Ajustez l’adresse IP de l’hôte et le port, si nécessaire. Le chemin d’accès /junos/system-users-information est spécifié. Le freq champ est défini dans MicroSoft, diffusant un nouvel ensemble de paires clé-valeur toutes les 5 secondes. Si vous le souhaitez, vous pouvez ajouter plusieurs chemins d’accès.
  2. Lancez le collecteur à l’aide de votre propre fichier compilé ou d’une image créée automatiquement à partir de Docker Hub. L’exemple de résultat de requête ci-dessous montre le rapport du capteur par chemin. Chaque clé est envoyée sous une forme lisible par l’homme comme un chemin absolu. Dans le cas des listes, le chemin absolu contient un index sous la forme XPATH qui est idéal pour regrouper les valeurs d’une base de données (séries chronologiques), telle que InfluxDB. Par exemple, la sortie ci-dessous montre le chemin /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/.

    Vous pouvez arrêter le flux de données du capteur à l’aide de Ctrl-C.

    L’exemple de requête ci-dessous montre deux rapports de capteur par chemin, puis je l’ai terminé avec Ctrl-C. Chaque clé est envoyée sous une forme lisible par l'homme comme un chemin absolu et dans le cas de listes, contient un index sous forme de XPATH, idéal pour regrouper les valeurs d'une base de données (séries chronologiques) comme InfluxDB, par exemple /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/

  3. Vérifiez que le module (capteur) est chargé à l’aide de la show system yang package sysusers commande, où sysusers est le nom du package :
  4. Activez gRPC dans la configuration de Junos OS :

Installation d’un fichier YANG défini par l’utilisateur

Pour ajouter, valider, modifier ou supprimer un fichier YANG défini par l’utilisateur pour le proxy XML de l’interface de télémétrie Junos, utilisez l’ensemble request system yang des commandes du mode opérationnel :

  1. Spécifiez le nom du fichier YANG proxy XML et le chemin d’accès au fichier pour l’installer. Cette commande crée un .json fichier dans le /opt/lib/render répertoire.
    Note:

    Cette commande ne peut être exécutée que sur le moteur de routage en cours.

    Pour ajouter plusieurs modules YANG avec la commande, placez les request system yang add package package-name proxy-xml module file-path-name crochets : [ file-path-name 1 file-path-name 2 ]

  2. (Facultatif) Validez un module avant de l’ajouter au routeur à l’aide de la request system yang validate proxy-xml module module-name commande.

    La sortie XML proxy YANG module validation for xmlproxyd_<module-name> : SUCCESS indique une validation réussie du module.

    Des erreurs de non-concordance se produisent parfois. Si la commande renvoie l’erreur ci-dessous, vous pouvez l’éliminer à l’aide de Junos OS version 17.3R2 ou ultérieure :

  3. (Facultatif) Mettez à jour un fichier YANG proxy XML existant qui a été ajouté précédemment.
  4. Supprimez un fichier YANG proxy XML existant.
  5. Vérifiez que le fichier YANG a été installé en entrant la show system yang package commande.

Dépanner les capteurs de télémétrie

Problème

Description

Utilisez les méthodes suivantes pour dépanner les capteurs de télémétrie définis par l’utilisateur :

  • Exécutez un tcpdump pour l’interface d’où proviennent vos requêtes gRPC (pour cette tâche, l’interface fxp0 a été utilisée).

  • Activez traceoptions à l’aide de la set services analytics traceoptions flag xmlproxy commande. Vérifiez dans le fichier journal si le xmlproxyd RPC de la commande CLI a été envoyé et si une réponse a été reçue :

  1. Exécutez la show log xmlproxyd commande pour afficher le journal xmlproxyd. La valeur du champ xmlproxy_execute_cli_command: indique si le RPC a été envoyé ou non. La valeur du champ xmlproxy_build_context indique la commande.