$SYS 系统主题

EMQ X 周期性发布自身运行状态、消息统计、客户端上下线事件到以 $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

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

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

集群状态信息

主题说明
$SYS/brokers集群节点列表
$SYS/brokers/${node}/versionEMQ X 版本
$SYS/brokers/${node}/uptimeEMQ X 运行时间
$SYS/brokers/${node}/datetimeEMQ X 系统时间
$SYS/brokers/${node}/sysdescrEMQ X 描述

客户端上下线事件

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

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

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

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

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

  1. {
  2. "username":"undefined",
  3. "ts":1582688032203,
  4. "reason":"tcp_closed",
  5. "disconnected_at":1582688032,
  6. "clientid":"emqtt-8348fe27a87976ad4db3"
  7. }

系统统计 (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)说明
alert新产生的告警
clear被清除的告警

Sysmon - 系统监控

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

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