51 lines
2.8 KiB
Markdown
51 lines
2.8 KiB
Markdown
# MQTT 部署记录
|
||
|
||
| 项目 | 当前值 |
|
||
|---|---|
|
||
| Broker 主机 | 101.42.38.246 |
|
||
| Broker 软件 | EMQX 5.x(最低 5.3),待生产安装/验证 |
|
||
| 安装方式 | Ubuntu Apt 原生安装,禁止 Docker |
|
||
| 安装说明 | `deploy/emqx/install-ubuntu24-amd64.md` |
|
||
| MQTTX | 服务器不安装,Windows 可使用 |
|
||
| 命令行工具 | mosquitto-clients 可选 |
|
||
| 匿名连接 | 待验证关闭 |
|
||
| ACL | 已按三个厂商 Topic 固定 `deploy/emqx/acl.conf.template`,生产未应用 |
|
||
| 授权配置 | 已生成 `deploy/emqx/authorization.hocon.template`,生产未应用 |
|
||
| 1883 | 菜单第 3 项/`setup.sh --mqtt` 可检查,生产未验证 |
|
||
| 18083 | 菜单第 3 项/`setup.sh --mqtt` 可检查;必须限制访问,生产未验证 |
|
||
| 备份 | 菜单 6 已检查 EMQX 导出能力与备份目录;生产导出演练待执行 |
|
||
| 恢复 | `deploy/backup/backup-restore-runbook.md` 已有入口;生产恢复演练待执行 |
|
||
|
||
## 菜单 3 行为
|
||
|
||
- 先检查 Ubuntu 架构、EMQX 包、systemd、自启、1883/18083、ACL 模板和服务器是否误装 MQTTX。
|
||
- 未安装时可由管理员输入 `I`,已安装时可输入 `U`;脚本使用 EMQX 官方 Apt 安装脚本并执行 `apt-get install -y emqx`。
|
||
- Codex 不远程执行生产安装。账号、密码及认证数据只从 `/etc/qipai/qipai.secrets` 建立,脚本和日志不打印凭据。
|
||
|
||
## 后端 MQTT 基础
|
||
|
||
- MQTT.js `5.15.1`,协议固定 MQTT 3.1(`protocolVersion: 3`)。
|
||
- QoS 1;订阅 `/devicesend/+`、`/devicewill/+`,发布 `/deviceaccept/{DeviceID}`。
|
||
- 持久会话、3 秒自动重连、每次连接后显式恢复订阅。
|
||
- 默认消息上限 65536 字节,超限上行拒绝进入业务处理,超限下行不发布。
|
||
- `/app-api/ready` 与 `/admin-api/ready` 分别返回 MQTT 是否配置、是否连接、订阅是否恢复。
|
||
- 生产环境缺少 MQTT 账号或密码时拒绝启动;真实值只写 `/etc/qipai/qipai.secrets`。
|
||
|
||
## WSL 本地开发 Broker
|
||
|
||
| 项目 | 当前值 |
|
||
|---|---|
|
||
| 用途 | 本地开发/测试,不代表生产 Broker |
|
||
| EMQX | 5.8.9 |
|
||
| systemd | active/enabled |
|
||
| MQTTX CLI | `/usr/local/bin/mqttx`,1.13.0 |
|
||
| 监听端口 | 1883、8883、8083、8084、18083 |
|
||
| 可重复检查 | `scripts/dev/wsl/check-local-mqtt.sh` |
|
||
| 认证/ACL 冒烟入口 | `scripts/dev/wsl/mqtt-smoke.sh`,本地账号文件 `scripts/dev/wsl/mqtt-smoke.env` 不入库 |
|
||
| 验收边界 | 未配置本地 MQTT 账号前,认证、ACL、TLS、遗嘱消息、重复消息幂等和真实硬件联调未完成 |
|
||
|
||
## 当前 M06-A 结论
|
||
|
||
- 已提供可选择安装/更新的 Ubuntu 24.04 amd64 菜单、正式 Topic ACL、后端连接生命周期和可复现单元测试。
|
||
- 未在生产 Ubuntu 安装 EMQX,未创建真实设备账号,未执行生产发布/订阅,因此 IOT-001 保持 `PARTIAL/BLOCKED_EXTERNAL`。
|