$SYS 系统主题

EMQX 周期性发布自身运行状态、消息统计、客户端上下线事件到以 $SYS/ 开头系统主题。

$SYS 主题路径以 $SYS/brokers/{node}/ 开头。{node} 是指产生该 事件 / 消息 所在的节点名称,例如:

  1. $SYS/brokers/emqx@127.0.0.1/version
  2. $SYS/brokers/emqx@127.0.0.1/uptime

$SYS 系统消息发布周期配置项:

  1. broker.sys_interval = 1m

提示

EMQX 默认只允许本机的 MQTT 客户端订阅 $SYS 主题,请参照 内置 ACL 修改发布订阅 ACL 规则。

EMQX 中 $SYS 主题中绝大部分数据都可以通过其他更耦合性更低的方式获取,设备上下线状态可通过 Webhook 获取,节点与集群状态可通过 HTTP API - 统计指标 获取。

集群状态信息

主题说明
$SYS/brokers集群节点列表
$SYS/brokers/${node}/versionEMQX 版本
$SYS/brokers/${node}/uptimeEMQX 运行时间
$SYS/brokers/${node}/datetimeEMQX 系统时间
$SYS/brokers/${node}/sysdescrEMQX 描述

客户端上下线事件

$SYS 主题前缀: $SYS/brokers/${node}/clients/

主题 (Topic)说明
${clientid}/connected上线事件。当任意客户端上线时,EMQX 就会发布该主题的消息
${clientid}/disconnected下线事件。当任意客户端下线时,EMQX 就会发布该主题的消息

connected 事件消息的 Payload 解析成 JSON 格式如下:

  1. {
  2. "username": "foo",
  3. "ts": 1625572213873,
  4. "sockport": 1883,
  5. "proto_ver": 4,
  6. "proto_name": "MQTT",
  7. "keepalive": 60,
  8. "ipaddress": "127.0.0.1",
  9. "expiry_interval": 0,
  10. "connected_at": 1625572213873,
  11. "connack": 0,
  12. "clientid": "emqtt-8348fe27a87976ad4db3",
  13. "clean_start": true
  14. }

disconnected 事件消息的 Payload 解析成 JSON 格式如下:

  1. {
  2. "username": "foo",
  3. "ts": 1625572213873,
  4. "sockport": 1883,
  5. "reason": "tcp_closed",
  6. "proto_ver": 4,
  7. "proto_name": "MQTT",
  8. "ipaddress": "127.0.0.1",
  9. "disconnected_at": 1625572213873,
  10. "clientid": "emqtt-8348fe27a87976ad4db3"
  11. }

系统统计 (Statistics)

系统主题前缀: $SYS/brokers/${node}/stats/

客户端统计

主题 (Topic)说明
connections.count当前客户端总数
connections.max客户端数量历史最大值

订阅统计

主题 (Topic)说明
suboptions.count当前订阅选项个数
suboptions.max订阅选项总数历史最大值
subscribers.count当前订阅者数量
subscribers.max订阅者总数历史最大值
subscriptions.count当前订阅总数
subscriptions.max订阅数量历史最大值
subscriptions.shared.count当前共享订阅个数
subscriptions.shared.max当前共享订阅总数

主题统计

主题 (Topic)说明
topics.count当前 Topic 总数
topics.maxTopic 数量历史最大值

路由统计

主题 (Topic)说明
routes.count当前 Routes 总数
routes.maxRoutes 数量历史最大值

topics.counttopics.maxroutes.countroutes.max 数值上是相等的。

收发流量 / 报文 / 消息统计

系统主题 (Topic) 前缀: $SYS/brokers/${node}/metrics/

收发流量统计

主题 (Topic)说明
bytes/received累计接收流量
bytes/sent累计发送流量

MQTT 报文收发统计

主题 (Topic)说明
packets/received累计接收 MQTT 报文
packets/sent累计发送 MQTT 报文
packets/connect累计接收 MQTT CONNECT 报文
packets/connack累计发送 MQTT CONNACK 报文
packets/publish/received累计接收 MQTT PUBLISH 报文
packets/publish/sent累计发送 MQTT PUBLISH 报文
packets/puback/received累计接收 MQTT PUBACK 报文
packets/puback/sent累计发送 MQTT PUBACK 报文
packets/puback/missed累计丢失 MQTT PUBACK 报文
packets/pubrec/received累计接收 MQTT PUBREC 报文
packets/pubrec/sent累计发送 MQTT PUBREC 报文
packets/pubrec/missed累计丢失 MQTT PUBREC 报文
packets/pubrel/received累计接收 MQTT PUBREL 报文
packets/pubrel/sent累计发送 MQTT PUBREL 报文
packets/pubrel/missed累计丢失 MQTT PUBREL 报文
packets/pubcomp/received累计接收 MQTT PUBCOMP 报文
packets/pubcomp/sent累计发送 MQTT PUBCOMP 报文
packets/pubcomp/missed累计丢失 MQTT PUBCOMP 报文
packets/subscribe累计接收 MQTT SUBSCRIBE 报文
packets/suback累计发送 MQTT SUBACK 报文
packets/unsubscribe累计接收 MQTT UNSUBSCRIBE 报文
packets/unsuback累计发送 MQTT UNSUBACK 报文
packets/pingreq累计接收 MQTT PINGREQ 报文
packets/pingresp累计发送 MQTT PINGRESP 报文
packets/disconnect/received累计接收 MQTT DISCONNECT 报文
packets/disconnect/sent累计接收 MQTT DISCONNECT 报文
packets/auth累计接收 MQTT AUTH 报文

MQTT 消息收发统计

主题 (Topic)说明
messages/received累计接收消息
messages/sent累计发送消息
messages/expired累计过期消息
messages/retainedRetained 消息总数
messages/dropped丢弃消息总数
messages/forward节点转发消息总数
messages/qos0/received累计接收 QoS 0 消息
messages/qos0/sent累计发送 QoS 0 消息
messages/qos1/received累计接收 QoS 1 消息
messages/qos1/sent累计发送 QoS 1 消息
messages/qos2/received累计接收 QoS 2 消息
messages/qos2/sent累计发送 QoS 2 消息
messages/qos2/expiredQoS 2 过期消息总数
messages/qos2/droppedQoS 2 丢弃消息总数

Alarms - 系统告警

系统主题 (Topic) 前缀: $SYS/brokers/${node}/alarms/

主题 (Topic)说明
activate新产生的告警
deactivate被清除的告警

Sysmon - 系统监控

系统主题 (Topic) 前缀: $SYS/brokers/${node}/sysmon/

主题 (Topic)说明
long_gcGC 时间过长警告
long_schedule调度时间过长警告
large_heapHeap 内存占用警告
busy_portPort 忙警告
busy_dist_portDist Port 忙警告