1.背景
当物联网设备分布在全球各地运行时,我们为了排查特定环境下的问题,常常有想要获取设备端运行日志的需求。我们派一位工作人员出差去设备现场,成本往往很高。此时借助IoT技术的力量,在云端动动手指,轻松获取远端设备日志是最理想的方案。
2.架构方案
云端获取设备端运行日志的完整交互过程:
-
后台业务服务器调用Pub 接口,向指定设备下发采集运行日志的指令
- Topic为 xxx/xxx/user/report/log
- Payload 包含访问OSS的STS Token,bucket,目标路径key
- IoT平台Publish消息给指定设备
- 设备接收指令后,把运行日志上传到OSS目标路径
-
设备Publish上报日志采集执行结果
- Topic为 xxx/xxx/user/log/information
- Payload 包含文件存放bucket,路径key
- 业务服务器收到设备返回的数据
- 业务服务器到OSS获取设备运行日志文件
3.开发实践
为了实现上述理想,我们需要前期投入在服务端和设备端的研发工作。
3.1 服务端
3.2 设备端
- 设备输出运行日志到本地文件
- 订阅日志采集指令的Topic
- 上传本地文件到指定OSS路径的逻辑
- 上报日志采集执行结果的逻辑
4.总结
至此,我们可以悠闲的坐在办公室,享受咖啡和空调了。