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 au streaming de télémétrie Junos, vous pouvez transformer n’importe quelle information d’état disponible 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 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 par l’intermédiaire d’appels de procédure à distance NETCONF « get » (RPC).

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

Meilleures pratiques :

Nous vous recommandons de ne pas utiliser de fichiers YANG qui s’associent à une commande opérationnelle Junos OS avec une sortie détaillée ou détaillée, ou qui est lente à produire. 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.

Le résultat de certaines commandes de mode opérationnel est dynamique et leur niveau de verbosité dépend de facteurs tels que la configuration et le matériel. Des exemples de ces commandes incluent les variantes de show interfaces, show route, show arp, show bfdshow bgpet show ddos-protection.

Pour vérifier le niveau de verbosité d’une commande, émettez la command-name| display xml count commande. Si le nombre de lignes dépasse une valeur de 4 000 lignes, la commande n’est pas recommandée pour la diffusion de proxy XML. Cette valeur est davantage une approximation basée sur la base interne. Il peut être moins dépendant de divers facteurs tels que le type d’équipement, la puissance de traitement de l’équipement et la charge du processeur existant. Par conséquent, cette fonctionnalité doit être utilisée judicieusement en fonction des performances de l’équipement.

Vous pouvez émettre la commande command-name| display xml avant d’utiliser un fichier YANG qui s’associe à une commande de 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 formatage non valides.

L’utilisation d’un fichier YANG qui correspond à une commande détaillée permet d’obtenir un ou plusieurs des résultats suivants :

  • L’utilisation du processeur du processus xmlproxyd reste élevée. Si le traçage de xmlproxyd est activé, l’utilisation du processeur est encore plus élevée.

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

  • L'état du processus xmlproxyd peut indiquer sbwait, ce qui indique 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 du capteur xmlproxyd ne complètent pas l’enveloppement.

  • Le xmlproxyd transmet des données partielles ou inexistantes 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 entraîne le flux de données du capteur xmlproxyd qui est lent ou retardé.

  • Le processus ou l'application qui sert le RPC de la commande verbose peut afficher des nombres de processeur élevés ou des retards dans l'exécution des tâches principales. Ce comportement est causé 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 exploitant Junos OS version 17.3R2 ou ultérieure.

  • Installation du package d’agent réseau requis (agent réseau-x86-32-17.4R1.16-C1.tgz ou versions ultérieures).

  • Un récepteur de données de télémétrie, comme 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 système (vMX Series)

En plus de la liste attendue des utilisateurs actuellement connectés, le show system users résultat 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. Voir <load-average-1>, <load-average-5>et <load-average-15> dans la sortie de balisage XML ci-dessous.

Pointe:

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

Pointe:

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

Voici 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 Cli Junos à exécuter, le chemin de ressources sous lequel les capteurs sont placés et les paires de valeurs de clés issues 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 doivent être présentes dans le fichier qui configure le proxy XML.

Pour traduire les données de télémétrie à l’aide du xmlproxyd processus (daemon), créez un render.yang fichier. Dans ce fichier, le dr:command-app fichier est défini sur xmlproxyd.

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

  • 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 du 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. Indiquez le nom du module. Le nom du module doit commencer par xmlproxyd_ et être le même nom que le nom du 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, indiquez le nom xmlproxyddu processus (daemon) :

    dr:command-app "xmlproxyd";

  3. Incluez le RPC suivant pour la demande d’accès 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 qui est exécutée à la fréquence d’échantillonnage requise est définie sous dr:cli-command et exécutée par le xmlproxyd démon.

    Pour récupérer la sortie de commande pour la commande show system usersJunos OS :

    dr:cli-command "show system users";

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

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

    Lorsqu’elle est incluse dans le fichier YANG, la sortie utile pour le débogage s’affiche dans la help drend sortie du 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 branche 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é par /’. Le chemin /junos/system-users-information/ est le chemin d’interrogation pour obtenir des informations sur ce capteur personnalisé.
    Avertissement:

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

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

    Un mappage un-à-un entre le conteneur, les leafs et la balise OU la valeur XML de la sortie de commande CLI est défini dans le regroupement référencé par uses dans le conteneur de sortie. Un regroupement peut être fait référence à plusieurs fois dans différentes sorties de conteneur. Le conteneur system-users-information ci-dessous utilise le regroupement des informations système-utilisateurs. Cependant, il est défini sans le mappage un-à-un de chaque conteneur, liste et leaf à une balise XML de sortie à partir de la commande DE commande CLI sortie XML sortie.

  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 leafs dans le propre 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 la version 18.3R1 de Junos OS, l’ajout, la suppression ou la mise à jour de paquets YANG en mode configuration avec la run commande n’est pas prise 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 :

Collecte des données des capteurs

Utilisez votre collecteur favori pour extraire les données du capteur de télémétrie nouvellement créés de l’équipement.

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

  • Évitez de spécifier le même intervalle de reporting pour plusieurs capteurs proxy XML.
  • Pour les routeurs PTX10008 exploitant Junos OS Evolved, ne connectez pas plus de 10 collecteurs par routeur pour les RPC de télémétrie.
  • Comme xmlproxyd effectue le traitement XML et le traitement du texte, un équipement doit uniquement contenir 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 l’équipement se fermera 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, selon les besoins. Le chemin /junos/system-users-information est spécifié. Le freq champ est défini dans MicroSoft, en diffusant un nouvel ensemble de paires de valeur clé toutes les 5 secondes. Vous pouvez éventuellement 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 affiche 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 de listes, le chemin absolu contient un index sous la forme de XPATH qui est idéal pour regrouper les valeurs d’une base de données (séries temporelles), telle qu’InfluxDB. Par exemple, la sortie ci-dessous affiche 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 affiche deux rapports de capteurs par chemin, puis je l’ai terminé avec Ctrl-C. Chaque clé est envoyée sous forme de chemin absolu et lisible par l'homme 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 (chronologique) comme InfluxDB, par exemple /junos/system-users-information/uptime-information/user-table/user-entry[utilisateur='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 pour 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 du proxy XML et le chemin de 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 avec la request system yang add package package-name proxy-xml module commande, joignez les 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. . .

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

    Des erreurs d’incompatibilité 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) Mettre à jour un fichier YANG de proxy XML existant qui a été précédemment ajouté.
  4. Supprimez un fichier YANG de 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 les options de suivi à 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. Émettez 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.