Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

JET-Benachrichtigungs-API

Mit der JET-Benachrichtigungs-API können Sie Ereignisse abonnieren und eine Rückruffunktion festlegen, um Ereignisse zu empfangen, wenn sie auftreten. Diese Python-Schnittstellen bieten eine Schnittstelle zum MQTT-Benachrichtigungssystem, das für andere Sprachen als Python außerhalb von JET gehandhabt werden muss (siehe Programmierung JET-Benachrichtigung für Nicht-Python-Sprachen). Weitere Informationen zu MQTT und Python finden Sie unter https://mosquitto.org/ .

JSON-Format der JET-Benachrichtigungsmeldungen

DIE JET-Benachrichtigung wird im JSON-Format geliefert. Die JSON-Nachricht hat zwei Teile: den Header und die Attribute. Der Header ist für alle Ereignisse üblich. Sie enthält die Ereignis-ID, den Hostnamen, die Zeit, den Schweregrad und die Einrichtung des Ereignisses. Die Attribute enthalten Informationen zum Ereignis und variieren den Themennamen des Ereignisses.

Alle Kernel-RTSOCK-Ereignisse haben info den Schweregrad und KERNEL die Einrichtung. Bei Syslog-Ereignissen sind Der Schweregrad und die Einrichtung identisch mit den syslog-Nachrichten von Junos OS.

Das folgende Beispiel ist eine JSON-Beispieldatei für Ereignisse.

Weitere Informationen zu JSON finden Sie unter Package JET Applications .

Abonnieren von Veranstaltungen

Anwendungen, die mitHILFE von JET entwickelt wurden, können die in Tabelle 1 aufgeführten Ereignisse abonnieren. Ein Thema ist ein Endpunkt, mit dem die Clients verbunden sind. Ein Thema fungiert als zentraler Verteilungsknotenpunkt für das Veröffentlichen und Abonnieren von Nachrichten. Themen sind einfache, hierarchische Zeichenfolgen, die in UTF-8 codiert und durch einen Weiterleitungsstrich begrenzt sind.

Tabelle 1: Junos-Ereignisthemen

Ereignisse

Thema

Zurückgegebene Veranstaltungsinformationen

Physikalische Schnittstelle (IFD)

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

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

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

Name, SNMP-ID, Flags

Logische Inteface (IFL)

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

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

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

Name, Untereinheit, SNMP-ID, Flags

Familie (IFF)

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

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

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

Name, Untereinheit, Familie, Tabellenname, 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

Name, Untereinheit, Familie, lokale Adresse, Zieladresse, Broadcast-Adresse, Flags

Firewall

  • /junos/events/kernel/firewall/filter/add/filtername

  • /junos/events/kernel/firewall/filter/change/filtername

  • /junos/events/kernel/firewall/filter/delete/filtername

Name, Version, Client-ID, Filtertyp, Protokoll, Schnittstellenname, Flags

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

Tabellenname, logischer Routername, Adressfamilie, Routentyp, Route-Prefix, Arrayof(Nexthop-Adresse), Flags

Routentabelle

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

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

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

Name, Logischer Routername, Adressfamilie, Flags

Syslog

/junos/events/syslog/event-id

arrayof(Attribut-Wert-Paare)

Programmierung JET-Benachrichtigung für Nicht-Python-Sprachen

Viele der übergeordneten Sprachen verfügen über eine MQTT-Bibliothek. Eine JET-Anwendung kann die entsprechende Bibliothek verwenden, um eine Verbindung zum auf Junos OS ausgeführten MQTT-Broker herzustellen und Ereignisse zu abonnieren. Hier ist beispielsweise ein Beispiel für ein JAVA-Programm, das eine Verbindung zu einem MQTT-Broker herstellt und Ereignisse abonniert: Beispiel MQTT-Messaging in Java.

Weitere Informationen zu MQTT-Bibliotheken für verschiedene Sprachen finden Sie in Tabelle 2.

Tabelle 2: MQTT-Bibliotheken nach Sprache

Sprachname

Lizenzlink

C, Mosquitto

Freebsd

C++, Mosquitto

Freebsd

Python, Mosquitto

Freebsd

Ruby, Ruby-mqtt

MIT-Lizenz

Java, Eclipse Paho Java

Öffentliche Eclipse-Lizenz

Go, Eclipse Paho Go

Öffentliche Eclipse-Lizenz

C#, MqttDotNet

Benutzerdefinierte Lizenz