Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Configurer un capteur de télémétrie proxy NETCONF dans Junos

Grâce à la diffusion en continu de la télémétrie Junos, vous pouvez transformer toutes les informations d’état disponibles en capteur de télémétrie à l’aide de la fonctionnalité de proxy XML. Le protocole de gestion XML NETCONF et l’API Junos XML documentent de manière complète toutes les options pour chaque demande opérationnelle Junos OS prise en charge. Une fois que vous avez configuré les capteurs proxy XML, vous pouvez accéder aux données via des appels de procédure à distance (RPC) NETCONF « get ».

Cette tâche vous montre comment diffuser la sortie d’une commande en mode opérationnel Junos OS.

Bonne pratique :

Nous vous recommandons de ne pas utiliser de fichiers YANG qui correspondent à une commande opérationnelle Junos OS avec une sortie étendue ou détaillée ou qui est lente à produire une sortie. 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 leur verbosité dépend de facteurs tels que la configuration et le matériel. Des exemples de telles commandes incluent toute variation de show interfaces, show route, show arp, show bfdshow bgp, , et 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 une valeur de 4000 lignes, la commande n’est pas recommandée pour la diffusion en continu proxy XML. Il s’agit plutôt d’une approximation basée sur le revêtement de base interne. Elle peut être inférieure en fonction de divers facteurs tels que le type d’appareil, la puissance de traitement de l’appareil et la charge existante du processeur. Par conséquent, cette fonctionnalité doit être utilisée judicieusement en fonction des performances de l’appareil.

Vous pouvez exécuter la commande command-name| 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 produit une sortie XML valide et ne contient pas de balises, de données ou de mise en forme non valides.

L’utilisation d’un fichier YANG mappé à une commande détaillée entraîne l’un ou plusieurs des éléments 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 s'afficher sbwait, ce qui indique que la sortie de la commande est verbeuse et que xmlproxyd passe beaucoup de temps à lire la sortie de l'appel de procédure à distance (RPC) de la commande.

  • Les données du capteur xmlproxyd ne complètent pas l’encapsulation.

  • Le xmlproxyd ne transmet qu’une partie ou pas de données aux capteurs.

  • Le xmlproxyd manque les cycles d’intervalle de rapport. Les intervalles commencent à se chevaucher en raison de la sortie verbeuse 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 verbeuse peut afficher un nombre élevé de CPU ou des retards dans l'exécution des tâches principales. Ce comportement se produit lorsque le processus ou l’application est occupé à servir le RPC dont la sortie est détaillée.

Cette tâche requiert les éléments suivants :

  • Un routeur MX Series, vMX Series ou PTX Series exécutant Junos OS version 17.3R2 ou 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 la charge système moyenne de 1, 5 et 15 minutes. Vous pouvez trouver les moyennes de charge à l’aide de la show system users | display xml commande pour afficher le balisage XML des champs de sortie. Reportez-vous à la section <load-average-1>, <load-average-5>, et <load-average-15> dans la sortie de balisage XML ci-dessous.

Pourboire:

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 :

Pourboire:

La uptime-information balise comporte é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éation d’un fichier YANG défini par l’utilisateur

Le fichier YANG définit la commande CLI Junos à exécuter, le chemin d’accès aux ressources 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 les 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 doivent être présentes dans le fichier qui configure le proxy XML.

Pour utiliser le xmlproxyd processus de traduction des données de télémétrie, créez un render.yang fichier. Dans ce fichier, la dr:command-app valeur est .xmlproxyd

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 de travail.

  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, supprimez 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 :

    dr:command-app "xmlproxyd";

  3. Incluez le RPC suivant pour la requête NETCONF get :

    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 qui est exécutée à la fréquence d’exemple demandée est définie et dr:cli-command exécutée par le xmlproxyd processus.

    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 celui-ci 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 /junos/system-users-information/ est le chemin d’accès à rechercher des 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 des nœuds ou qui augmente les nœuds pour les chemins d’accès aux ressources, tels que /junos/system/linecard/firewallou /interfaces.

    Un mappage un-à-un entre le conteneur, les feuilles et la balise ou la valeur XML 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. Cependant, 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 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 paquet :
  4. Activez gRPC dans la configuration de Junos OS :

Collecter les données du capteur

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 d’activer des capteurs :

  • Évitez de spécifier le même intervalle de rapport pour plusieurs capteurs proxy XML.

  • Étant donné que xmlproxyd effectue des traitements 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.

Collecte spécifique à la plate-forme Comportement des données des capteurs

Utilisez l’explorateur de fonctionnalités pour confirmer la prise en charge de fonctionnalités spécifiques par la plate-forme et la version.

Utilisez le tableau suivant pour passer en revue les comportements spécifiques à vos plateformes :

Tableau 1 : Collecte du comportement des données des capteurs

Plateforme

Différence

PTX10008

Pour les routeurs PTX10008 fonctionnant Junos OS Evolved, ne connectez pas plus de 10 collecteurs par routeur pour les RPC de télémétrie.

Les instructions suivantes utilisent le collecteur jtimon. Pour plus d’informations sur la configuration de jtimon, reportez-vous à la section Client de l’interface de télémétrie Junos.

Note:

S’il existe déjà un abonnement pour un capteur et qu’un abonnement dupliqué est configuré, la connexion entre le collecteur et l’appareil se ferme avec le message AlreadyExistsd’erreur .

  1. Créez un fichier de configuration simple, nommé vmx1.jsonici . 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, avec diffusion en continu d’un nouvel ensemble de paires clé-valeur toutes les 5 secondes. Si vous le souhaitez, vous pouvez ajouter plusieurs chemins.
  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 sortie de requête ci-dessous montre le rapport du capteur par chemin. Chaque clé est envoyée sous une forme lisible par l’homme sous la forme d’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érie chronologique), telle qu’InfluxDB. Par exemple, la sortie ci-dessous montre le chemin d’accès /junos/system-users-information/uptime-information/user-table/user-entry[user='ab']/.

    Vous pouvez terminer 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 sous la forme d'un chemin absolu et, dans le cas de listes, contient un index sous la forme de XPATH, idéal pour regrouper les valeurs d'une base de données (de séries temporelles) 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 paquet :
  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 un proxy XML pour l’interface de télémétrie Junos, utilisez l’ensemble request system yang de 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 actuel.

    Pour ajouter plusieurs modules YANG à l’aide de la request system yang add package package-name proxy-xml module commande, placez les éléments entre file-path-name parenthèses : [ 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. .

    Le résultat XML proxy YANG module validation for xmlproxyd_<module-name> : SUCCESS indique que le module a été validé avec succès.

    Des erreurs d’incompatibilité se produisent parfois. Si la commande renvoie l’erreur ci-dessous, vous pouvez éliminer l’erreur à 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épannage des 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, c’est l’interface fxp0 qui a été utilisée).

  • Activez les traceoptions à l’aide de la set services analytics traceoptions flag xmlproxy commande. Vérifiez dans le xmlproxyd fichier journal si le 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.