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 文件示例。
“jet-event”: { “event-id”: “KERNEL_EVENT_IFD_ADD” “hostname”: “mydevice”, “time”: “2016-01-07”, “severity”: “info”, “facility”: “KERNEL”, “attributes”: { “name”: “ge-0/0/0”, “snmp-id”: 520, “flags”: 8 } }
有关 JSON 的详细信息,请参阅 JET 应用程序包 。
订阅事件
使用 JET 开发的应用程序可订阅 表 1 中列出的事件。 主题 是客户端连接的端点。主题用作发布和订阅消息的中央分发中心。主题简单,层次结构字符串,在 UTF-8 中编码,通过前向斜线划定。
事件 |
主题 |
退回的事件信息 |
---|---|---|
物理接口 (IFD) |
|
名称、snmp-id、标志 |
逻辑字体 (IFL) |
|
名称, 子云, snmp-id, 标志 |
家庭 (IFF) |
|
名称, 子云, 家族, 表名, 标志 |
地址 |
|
名称, 子云, 家族, 本地地址, 目标地址, 广播地址, 标志 |
防火墙 |
|
名称, 版本, 客户端 ID, 过滤器类型, 协议, 接口名称, 标志 |
路线 |
|
表名称, 逻辑路由器名称, 地址族, 路由类型, 路由前缀, 阵列(下一个热地址), 标志 |
路由表 |
|
名称, 逻辑路由器名称, 地址族, 标志 |
Syslog |
/junos/events/syslog/event-id |
阵列(属性值对) |
非 Python 语言的编程 JET 通知
许多高级语言都有一个可用的 MQTT 库。JET 应用程序可以使用相应的库连接到在 Junos OS 上运行的 MQTT 代理并订阅事件。例如,这里有一个 JAVA 程序示例,用于连接到 MQTT 代理并订阅事件: Java 中的 MQTT 消息传递示例。
有关不同语言的 MQTT 库示例的详细信息,请参阅 表 2。
语言名称 |
许可证链接 |
---|---|
C, 莫斯基托 |
|
C++、Mosquitto |
|
Python、Mosquitto |
|
Ruby、Ruby-mqtt |
|
Java、Eclipse Paho Java |
|
去,Eclipse Paho Go |
|
C#、MqttDotNet |