第30章:系统监控与维护
运维 (Operations) 是物联网项目生命周期中最长的一环。
30.1 设备健康度模型
不要只看“在线/离线”,要量化设备的健康状况。
- 指标维度:
- 信号质量:RSSI < -90dBm 为“差”。
- 掉线频率:每天掉线 > 5次 为“不稳定”。
- 电池电压:< 3.5V 为“低电量”。
- 重启原因:看门狗复位、Brownout(欠压)复位。
- 评分系统:综合上述指标,给每台设备打分(0-100)。低于 60 分的列入“重点观察名单”。
30.2 远程日志 (Remote Logging)
设备出问题时,如果还要派人去现场插串口线看日志,成本就太高了。
- 日志分级:
ERROR,WARN,INFO,DEBUG。默认只上传ERROR级别。 - 动态调整:云端下发指令,临时开启某台设备的
DEBUG级别日志上传,定位问题后再关闭。 - 存储:日志通常是非结构化文本,适合存入 Elasticsearch (ELK Stack) 或 Loki。
30.3 远程调试 (Remote Debugging)
- 远程 SSH/Shell:
- 对于 Linux 网关,可以通过反向隧道(如 FRP, Ngrok)建立 SSH 连接。
- 安全警告:必须严格鉴权!
- 云端诊断命令:
- 利用 MQTT 下发诊断指令(如
ping www.baidu.com,get_memory_usage),设备执行后返回结果。
- 利用 MQTT 下发诊断指令(如
30.4 巡检与 SLA
- 自动化巡检:每天凌晨跑脚本,统计全网设备在线率、数据完整率。
- **SLA (服务等级协议)**:对客户承诺的可用性(如 99.9%)。
- 计算公式:
可用性 = (总时间 - 故障时间) / 总时间。
- 计算公式:
即使有监控,故障依然会发生。下一章我们将总结常见的故障排查经验。