Help us improve your experience.

Let us know what you think.

Do you have time for a two-minute survey?

 
 

JET 通知 API

JET 通知 API 允许您订阅事件并指定回调功能,以便在事件发生时接收事件。这些 Python 接口提供了 MQTT 通知系统的接口,对于 Python 以外的语言,必须在 JET 外部处理(请参阅 非 Python 语言的编程 JET 通知)。有关 MQTT 和 Python 的详细信息,请 参阅 https://mosquitto.org/

JSON JET 通知消息格式

JET 通知以 JSON 格式发送。JSON 消息有两个部分:标题和属性。标头在所有事件中都很常见。其中包含事件 ID、主机名、时间、严重程度和活动设施。这些属性包含有关该事件的信息,并因事件的主题名称而异。

所有内核 rtsock 事件都会像 info 设备一样严重 KERNEL 。对于系统日志事件,严重性和设备将与 Junos OS 系统日志消息相同。

下面是 JSON 文件示例。

有关 JSON 的详细信息,请参阅 JET 应用程序包

订阅事件

使用 JET 开发的应用程序可订阅 表 1 中列出的事件。 主题 是客户端连接的端点。主题用作发布和订阅消息的中央分发中心。主题简单,层次结构字符串,在 UTF-8 中编码,通过前向斜线划定。

表 1:Junos 事件主题

事件

主题

退回的事件信息

物理接口 (IFD)

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

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

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

名称、snmp-id、标志

逻辑字体 (IFL)

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

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

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

名称, 子云, snmp-id, 标志

家庭 (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

名称, 子云, 家族, 表名, 标志

地址

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

名称, 子云, 家族, 本地地址, 目标地址, 广播地址, 标志

防火墙

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

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

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

名称, 版本, 客户端 ID, 过滤器类型, 协议, 接口名称, 标志

路线

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

表名称, 逻辑路由器名称, 地址族, 路由类型, 路由前缀, 阵列(下一个热地址), 标志

路由表

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

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

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

名称, 逻辑路由器名称, 地址族, 标志

Syslog

/junos/events/syslog/event-id

阵列(属性值对)

非 Python 语言的编程 JET 通知

许多高级语言都有一个可用的 MQTT 库。JET 应用程序可以使用相应的库连接到在 Junos OS 上运行的 MQTT 代理并订阅事件。例如,这里有一个 JAVA 程序示例,用于连接到 MQTT 代理并订阅事件: Java 中的 MQTT 消息传递示例

有关不同语言的 MQTT 库示例的详细信息,请参阅 表 2

表 2:按语言使用的 MQTT 库

语言名称

许可证链接

C, 莫斯基托

Freebsd

C++、Mosquitto

Freebsd

Python、Mosquitto

Freebsd

Ruby、Ruby-mqtt

MIT 许可证

Java、Eclipse Paho Java

Eclipse 公共许可

去,Eclipse Paho Go

Eclipse 公共许可

C#、MqttDotNet

自定义许可证