Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

Décodage des données de l’interface de télémétrie Junos avec les utilitaires UNIX

Vous pouvez utiliser les utilitaires UNIX pour décoder les données de l’interface de télémétrie Junos sur un serveur, ou collecteur, qui diffuse des données en continu à partir d’un équipement Juniper Networks. L’exemple de cette section vous montre comment décoder un seul paquet de données diffusées en continu.

Préparation du collecteur pour décoder les données

Cet exemple requiert les éléments suivants :

  • OS UNIX avec l’utilitaire Netcat (nc).

  • Compilateur de tampons de protocole.

  • Le protocole de l’interface de télémétrie Junos met les fichiers en mémoire tampon.

Cette procédure montre comment préparer le collecteur pour décoder les données à l’aide du système d’exploitation Ubuntu.

  1. Installez l’utilitaire Netcat.

  2. Installez le compilateur protocol buffers.

  3. Installez la bibliothèque du développeur des tampons de protocole.

  4. Vérifiez que les fichiers de la bibliothèque sont installés.

  5. Téléchargez et installez la dernière version des fichiers tampons de protocole de l’interface de télémétrie Junos.

    À partir d’un navigateur Web, accédez à l’URL de téléchargement du logiciel Toutes les plates-formes Junos sur la page Juniper Networks : https://www.juniper.net/support/downloads/. Après avoir sélectionné le nom de la plate-forme Junos OS et le numéro de version, accédez à la section Outils et téléchargez le package Fichiers du modèle de données de l’interface de télémétrie Junos .

    Note:

    Assurez-vous de noter l’emplacement des fichiers extraits.

Décodage des données sur le collecteur

Cette procédure vous montre comment capturer des données, décoder les données brutes et utiliser les fichiers tampons de protocole pour décoder les données.

Pour décoder les données :

  1. Capturez les données.

    Exécutez netcat sur un serveur de télémétrie en streaming de destination, ou collecteur, en mode d’écoute UDP pour stocker tous les datagrammes entrants dans un fichier. Utilisez le numéro de port de destination configuré dans le profil du serveur de streaming de votre équipement Juniper Networks.

    Note:

    Cette commande stocke les datagrammes dans un fichier nommé data.gpb. Exécutez ce programme pour capturer des données. Lorsque vous souhaitez arrêter de recevoir des données, arrêtez avec le programme en envoyant le signal de coupure (Control + C)

  2. Décoder les données brutes.

    Note:

    Cette étape est facultative. Ce n’est pas nécessaire si vous connaissez le type de message codé des données.

    Décodez le message du data.gpb fichier.

    La structure imbriquée suivante ci-dessous 2636 identifie le type de capteur. La valeur 2636 numérique identifie le JuniperNetworksSensor message, qui est défini dans le telemetry_top.proto fichier. Dans cet exemple, l’identifiant 7 numérique correspond au LogicalPort message défini dans le logical_port.proto fichier. Utilisez ces informations à l’étape suivante pour générer des résultats plus détaillés.

  3. Décodez le message pour inclure les noms de champ.

    Exécutez le compilateur protocol buffers avec l’option decode. En outre, spécifiez le type de message de niveau supérieur (TelemetryStream) et le fichier avec la définition de message, logical_port.proto. Vous devez également inclure la bibliothèque Goggle protocol buffers (gpb).

Décodage des données UDP de l’interface de télémétrie Junos au niveau du collecteur

Le collecteur doit démarrer un écouteur sur l’adresse distante ou la combinaison de ports pour lire les données entrantes. Les données entrantes peuvent être décodées à l’aide des fichiers telemetry_top.proto et sensor proto.

Pour simplifier la procédure de décodage, les collecteurs peuvent charger tous les fichiers proto livrés dans le cadre du progiciel de télémétrie pour décoder les données entrantes.

Note:
  1. Vérifiez les données de streaming sur les interfaces de gestion et WAN. Spécifiez l’adresse appropriée dans le profil du serveur de diffusion en continu.
  2. Les énumérations et float sont diffusées en continu sous forme de chaînes pour le streaming UDP. Les énumérations seront conservées sous forme de chaînes de caractères, car gNMI utilise le même format.
  3. La gestion du type de données float est limitée pour une version ultérieure.

Lorsque les données de télémétrie sont transmises via UDP, assurez-vous que les données sont décodées correctement et que les champs inconnus ne sont pas décodés au niveau du collecteur.

Voici quelques problèmes observés lors de la diffusion de données de télémétrie sur UDP :

  1. Décodage incorrect : un décodage incorrect implique que les données de télémétrie ne sont pas correctement transmises via UDP. Dans l’exemple suivant, les données surlignées en gras indiquent que les données n’ont pas été décodées correctement. Ce comportement est dû soit à un encodage incorrect, soit à un mauvais empaquetage de fichiers proto.

    Vous trouverez ci-dessous un exemple de décodage correct des données :

  2. Diffusion de données incomplètes : la diffusion de données incomplètes en continu doit être vérifiée par la validation des données dans le fichier de sortie.