更新于 2026年9月5日

故障排查与日常运维

通过 RunMQTT 凭证、策略、日志和用量定位连接与消息投递问题。

按照连接、订阅、发布、接收的顺序排查。先用一个模拟主题完成快速入门,再排查完整业务应用。

Broker 创建与可用性

先检查 Broker 概览和订阅状态。待结账表示付款设置未完成,开通中表示正在准备服务;欠费、已取消、暂停或失败状态需要先处理计费或运行问题,再恢复设备连接。按 RunMQTT 页面提示操作,并参考 Broker 状态指南。该指南不是实时事故看板。

结账返回后,留出状态刷新时间。如果 Broker 持续待处理或失败,联系支持并提供 Broker ID 和操作时间。不要用重复结账或创建多个 Broker 来恢复结果不明的操作。

按现象定位

现象检查与处理
DNS 失败或连接超时重新复制 RunMQTT 主机名,检查 DNS;TLS 需要放行出站 8883,WSS 需要放行 443。
证书校验失败使用主机名而非 IP,检查设备时间和可信 CA,保持证书校验开启。
WSS 握手失败使用完整 wss://…/mqtt 地址,确认代理允许 WebSocket 升级。
认证被拒绝从同一 Broker 的同一设备复制 MQTT 用户名和密码,不要使用账户登录凭证、额外签名或首尾空白。
不断连接又断开先检查 Client ID 是否重复,再检查心跳、网络和 Broker 状态。
SUBACK 拒绝订阅检查请求过滤器对应的订阅权限;连接成功不代表能访问所有主题。共享订阅还应检查组名和协商能力。
发布超时或立即断连检查精确主题的发布权限、QoS、retain 和消息大小;被拒绝的发布不一定返回明确错误。
发布成功却收不到确认订阅已建立、位于同一 Broker、主题大小写和斜杠一致、接收方有权限;等待 SUBACK 后再留出几秒重试发布。
订阅后出现旧消息检查保留状态和消息时间戳,按会话与消息投递清除保留内容。
收不到离线消息检查固定 Client ID、会话过期时间、sessionPresent、QoS,以及断连前是否已建立订阅。

可使用以下命令检查 TLS,不发送任何凭证:

openssl s_client -connect "$MQTT_HOST:8883" -servername "$MQTT_HOST" \
  -verify_return_error </dev/null

MQTT_HOST 按快速入门设置。TLS 握手成功只证明传输可达,不代表 MQTT 认证或主题权限通过。

策略生效与安全替换凭证

策略变更传播到在线连接可能需要时间。修改后留出几分钟,重新连接测试客户端,并分别验证一条允许操作和一条拒绝操作。删除某条权限后仍能访问时,检查是否有通配符规则继续授权。不要将本地策略预览当作实时权限执行的证明。

密码泄露或需要更换时,打开设备详情或凭证侧栏,点击重置密码并确认。复制新密码,更新所有使用该身份的客户端。验证新密码可以连接、旧密码无法建立新连接;如果需要完全撤销该身份,再删除设备。修改设备名称或 Client ID 不能撤销凭证;验收撤销效果时,还应单独检查已有连接。

日志与用量

打开 Broker 的日志页签,按可用类别、设备、Client ID 或错误码筛选,缩小到失败操作发生的时间。对比客户端时间戳时记录时区。没有日志不代表消息已经送达,还要保留客户端的 SUBACK、发布确认和实际接收结果。

用量页签按可用时间范围查看连接数和消息量趋势。采样可能滞后于当前活动,不是瞬时投递计数器。控制台测试客户端也会消耗连接和消息投递量,详见套餐与计费

套餐额度与技术边界

套餐额度描述并发连接和每月消息单元,不代表无限突发吞吐或报文大小。RunMQTT 策略表单接受最多 180 个字符的过滤器;设备名称为 1–40 个 ASCII 字母、数字、连字符或下划线。初次接入使用简短主题层级和小消息,谨慎批量订阅,并限制重连流量。

MQTT 5 客户端应遵守连接时声明的 Maximum QoS、Maximum Packet Size、Receive Maximum、Retain Available 和 Shared Subscription Available。在使用大消息、高频发布、大量订阅或长时间离线队列前,验证目标 Broker,并带上工作负载需求联系 RunMQTT。不要从月度额度推导每秒限额。

请求支持

提供 Broker ID、发生时间和时区、SDK 与版本、传输方式、MQTT 版本、脱敏主题或过滤器、QoS/retain 配置和最小复现步骤。说明失败发生在连接、订阅、发布还是接收阶段。通过联系页面提交,不要发送设备密码、私钥或敏感消息内容。