Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

API de notificación DE JET

La API de notificación JET le permite suscribirse a eventos y designar una función de devolución de llamada para recibir eventos cuando se producen. Estas interfaces de Python proporcionan una interfaz al sistema de notificaciones MQTT que, para idiomas distintos de Python, se deben manejar fuera de JET (consulte Programación de notificaciones JET para idiomas que no sean python). Para obtener más información acerca de MQTT y Python, consulte https://mosquitto.org/ .

Formato JSON de mensajes de notificación JET

La notificación JET se entrega en formato JSON. El mensaje JSON tiene dos partes: el encabezado y los atributos. El encabezado es común para todos los eventos. Contiene el ID del evento, el nombre de host, la hora, la gravedad y la facilidad del evento. Los atributos contienen información sobre el evento y varían según el nombre del tema del evento.

Todos los eventos rtsock del kernel tendrán info la gravedad y KERNEL la facilidad. Para los eventos syslog, la gravedad y la instalación serán iguales que las de los mensajes syslog de Junos OS.

El siguiente es un archivo JSON de evento de ejemplo.

Consulte Aplicaciones package JET para obtener más información sobre JSON.

Suscripción a eventos

Las aplicaciones desarrolladas con JET pueden suscribirse a los eventos enumerados en el Cuadro 1. Un tema es un punto de conexión al que se conectan los clientes. Un tema actúa como el centro de distribución central para publicar y suscribir mensajes. Los temas son cadenas simples y jerárquicas, codificadas en UTF-8, delimitadas por una barra diagonal.

Tabla 1: Temas del evento Junos

Eventos

Tema

Información de eventos que se devuelve

Interfaz física (IFD)

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

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

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

nombre, snmp-id, indicadores

Interfaz lógica (IFL)

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

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

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

nombre, subunidades, snmp-id, indicadores

Familia (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

nombre, subunidades, familia, nombre de tabla, indicadores

Dirección

  • /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

nombre, subunidades, familia, dirección local, dirección de destino, dirección de difusión, indicadores

Firewall

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

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

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

nombre, versión, id de cliente, tipo de filtro, protocolo, nombre de interfaz, indicadores

Ruta

  • /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

nombre de la tabla, nombre del enrutador lógico, familia de direcciones, tipo de ruta, prefijo de ruta, arrayof(nexthop-address), indicadores

Tabla de rutas

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

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

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

nombre, nombre del enrutador lógico, familia de direcciones, indicadores

Syslog

/junos/events/syslog/event-id

arrayof(pares atributo-valor)

Notificación de PROGRAMACIÓN JET para idiomas que no sean python

Muchos de los idiomas de alto nivel tienen una biblioteca MQTT disponible. Una aplicación JET puede utilizar la biblioteca correspondiente para conectarse al nodo de integración MQTT que se ejecuta en Junos OS y suscribirse a eventos. Por ejemplo, aquí hay un programa JAVA de ejemplo que se conecta a un corredor MQTT y se suscribe a eventos: Ejemplo de mensajería MQTT en Java.

Para obtener más información sobre las bibliotecas MQTT de ejemplo para diferentes idiomas, consulte la Tabla 2.

Tabla 2: Bibliotecas MQTT por idioma

Nombre del idioma

Vínculo de licencia

C, Mosquitto

Freebsd

C++, Mosquitto

Freebsd

Python, Mosquitto

Freebsd

Ruby, Ruby-mqtt

Licencia MIT

Java, Eclipse Paho Java

Licencia pública de Eclipse

Vaya, Eclipse Paho Go

Licencia pública de Eclipse

C#, MqttDotNet

Licencia personalizada