Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

JET Notification API

L’API de notification JET vous permet de vous abonner aux événements et de désigner une fonction de rappel pour recevoir les événements lorsqu’ils se produisent. Ces interfaces Python fournissent une interface au système de notification MQTT qui, pour les langages autres que Python, doit être géré en dehors de JET (voir Programmation de la notification JET pour les langages non Python). Pour plus d’informations sur MQTT et Python, voir https://mosquitto.org/ .

Format JSON des messages de notification JET

La notification JET est délivrée au format JSON. Le message JSON comporte deux parties : l’en-tête et les attributs. L’en-tête est commun à tous les événements. Il contient l’ID de l’événement, le nom d’hôte, l’heure, la gravité et l’installation de l’événement. Les attributs contiennent des informations sur l’événement et varient en fonction du nom du sujet de l’événement.

Tous les événements rtsock du noyau auront info comme la gravité et KERNEL la facilité. Pour les événements syslog, la gravité et l’installation seront les mêmes que celles des messages syslog Junos OS.

Voici un exemple de fichier JSON d’événement.

Consultez package d’applications JET pour plus d’informations sur JSON.

S’abonner aux événements

Les applications développées à l’aide de JET peuvent s’abonner aux événements répertoriés dans le tableau 1. Un sujet est un point de terminaison auquel les clients se connectent. Un sujet agit comme le centre de distribution pour la publication et l’abonnement des messages. Les sujets sont des chaînes hiérarchiques simples, encodées en UTF-8, délimitées par une barre slash.

Tableau 1 : Sujets de l’événement Junos

Événements

Sujet

Informations d’événement renvoyées

Interface physique (IFD)

  • /junos/événements/noyau/interfaces/ifd/add/ifdname

  • /junos/événements/noyau/interfaces/ifd/change/ifdname

  • /junos/events/kernel/interfaces/ifd/delete/ifdname

nom, snmp-id, flags

Inteface logique (IFL)

  • /junos/événements/noyau/interfaces/ifl/add/iflname

  • /junos/events/kernel/interfaces/ifl/change/iflname

  • /junos/événements/noyau/interfaces/ifl/delete/iflname

nom, sous-unité, snmp-id, flags

Famille (IFF)

  • /junos/events/kernel/interfaces/iff/add/iflname/family-type

  • /junos/événements/noyau/interfaces/iff/change/iflname/family-type

  • /junos/événements/noyau/interfaces/iff/delete/iflname/family-type

nom, sous-unité, famille, nom de la table, flags

Adresse

  • /junos/events/kernel/interfaces/ifa/add/iflname/family-type/address

  • /junos/events/kernel/interfaces/ifa/change/iflname/family-type/address

  • /junos/events/kernel/interfaces/ifa/delete/iflname/family-type/address

nom, sous-unité, famille, adresse locale, adresse de destination, adresse de diffusion, flags

Pare-feu

  • /junos/events/noyau/pare-feu/filter/add/filtername

  • /junos/events/noyau/pare-feu/filter/change/filtername

  • /junos/événements/noyau/pare-feu/filter/delete/filtername

nom, version, id client, type de filtre, protocole, nom de l’interface, indicateurs

Route

  • /junos/events/kernel/route/add/family/prefix-with-length

  • /junos/events/kernel/route/change/family/prefix-with-length

  • /junos/events/kernel/route/delete/family/prefix-with-length

nom de la table, nom du routeur logique, famille d’adresses, type de route, préfixe de route, arrayof(adresse suivante), flags

Table de routage

  • /junos/events/kernel/route-table/add/tablename/lrname

  • /junos/events/kernel/route-table/change/tablename/lrname

  • /junos/events/kernel/route-table/delete/tablename/lrname

nom, nom du routeur logique, famille d’adresses, flags

Syslog

/junos/events/syslog/event-id

arrayof(paires attribut-valeur)

Programmation de la notification JET pour les langages non Python

De nombreuses langues de haut niveau disposent d’une bibliothèque MQTT. Une application JET peut utiliser la bibliothèque correspondante pour se connecter au broker MQTT s’exécutant sur Junos OS et s’abonner aux événements. Par exemple, voici un exemple de programme JAVA qui se connecte à un courtier MQTT et s’abonne à des événements : Exemple de messagerie MQTT en Java.

Pour plus de détails sur des bibliothèques MQTT pour différentes langues, voir le tableau 2.

Tableau 2 : Bibliothèques MQTT par langue

Nom de la langue

Lien de licence

C, Mosquitto

Freebsd

C++, Mosquitto

Freebsd

Python, Mosquitto

Freebsd

Ruby, Ruby-mqtt

Licence MIT

Java, Eclipse Paho Java

Licence publique Eclipse

Aller, Eclipse Paho Go

Licence publique Eclipse

C#, MqttDotNet

Licence personnalisée