雲計算

远程采集IoT设备运行日志的最佳实践

1.背景

当物联网设备分布在全球各地运行时,我们为了排查特定环境下的问题,常常有想要获取设备端运行日志的需求。我们派一位工作人员出差去设备现场,成本往往很高。此时借助IoT技术的力量,在云端动动手指,轻松获取远端设备日志是最理想的方案。

2.架构方案

image.png
云端获取设备端运行日志的完整交互过程:

  1. 后台业务服务器调用Pub 接口,向指定设备下发采集运行日志的指令

    1. Topic为 xxx/xxx/user/report/log
    2. Payload 包含访问OSS的STS Token,bucket,目标路径key
  2. IoT平台Publish消息给指定设备
  3. 设备接收指令后,把运行日志上传到OSS目标路径
  4. 设备Publish上报日志采集执行结果

    1. Topic为 xxx/xxx/user/log/information
    2. Payload 包含文件存放bucket,路径key
  5. 业务服务器收到设备返回的数据
  6. 业务服务器到OSS获取设备运行日志文件

3.开发实践

为了实现上述理想,我们需要前期投入在服务端和设备端的研发工作。

3.1 服务端

  • 在服务端部署生成访问OSS的临时STS Token的业务逻辑
  • 编写下行指令的Pub逻辑
  • 配置规则引擎,接收设备响应结果的业务逻辑
  • 访问OSS资源文件的业务逻辑


3.2 设备端

  • 设备输出运行日志到本地文件
  • 订阅日志采集指令的Topic
  • 上传本地文件到指定OSS路径的逻辑
  • 上报日志采集执行结果的逻辑

4.总结

至此,我们可以悠闲的坐在办公室,享受咖啡和空调了。

image.png

Leave a Reply

Your email address will not be published. Required fields are marked *