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

简介: 借助IoT技术的力量,在办公室动动手指,轻松获取远端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

相关实践学习
借助OSS搭建在线教育视频课程分享网站
本教程介绍如何基于云服务器ECS和对象存储OSS,搭建一个在线教育视频课程分享网站。
相关文章
|
24天前
|
XML JSON 监控
告别简陋:Java日志系统的最佳实践
【10月更文挑战第19天】 在Java开发中,`System.out.println()` 是最基本的输出方法,但它在实际项目中往往被认为是不专业和不足够的。本文将探讨为什么在现代Java应用中应该避免使用 `System.out.println()`,并介绍几种更先进的日志解决方案。
47 1
|
1月前
|
Arthas 监控 Java
JVM知识体系学习七:了解JVM常用命令行参数、GC日志详解、调优三大方面(JVM规划和预调优、优化JVM环境、JVM运行出现的各种问题)、Arthas
这篇文章全面介绍了JVM的命令行参数、GC日志分析以及性能调优的各个方面,包括监控工具使用和实际案例分析。
43 3
|
1月前
|
网络协议 Linux Windows
Rsyslog配置不同端口收集不同设备日志
Rsyslog配置不同端口收集不同设备日志
|
1月前
|
存储 数据采集 分布式计算
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
Hadoop-17 Flume 介绍与环境配置 实机云服务器测试 分布式日志信息收集 海量数据 实时采集引擎 Source Channel Sink 串行复制负载均衡
44 1
|
2月前
|
Kubernetes API Docker
跟着iLogtail学习容器运行时与K8s下日志采集方案
iLogtail 作为开源可观测数据采集器,对 Kubernetes 环境下日志采集有着非常好的支持,本文跟随 iLogtail 的脚步,了解容器运行时与 K8s 下日志数据采集原理。
|
2月前
|
设计模式 SQL 安全
PHP中的设计模式:单例模式的深入探索与实践在PHP的编程实践中,设计模式是解决常见软件设计问题的最佳实践。单例模式作为设计模式中的一种,确保一个类只有一个实例,并提供全局访问点,广泛应用于配置管理、日志记录和测试框架等场景。本文将深入探讨单例模式的原理、实现方式及其在PHP中的应用,帮助开发者更好地理解和运用这一设计模式。
在PHP开发中,单例模式通过确保类仅有一个实例并提供一个全局访问点,有效管理和访问共享资源。本文详细介绍了单例模式的概念、PHP实现方式及应用场景,并通过具体代码示例展示如何在PHP中实现单例模式以及如何在实际项目中正确使用它来优化代码结构和性能。
45 2
|
1月前
|
人工智能 安全 物联网
|
2月前
|
开发者 Python
基于Python的日志管理与最佳实践
日志是开发和调试过程中的重要工具,然而,如何高效地管理和利用日志常常被忽略。本文通过Python中的logging模块,探讨如何使用日志来进行调试、分析与问题排查,并提出了一些实际应用中的优化建议和最佳实践。
|
3月前
|
JSON Java fastjson
Java日志通关(五) - 最佳实践
作者日常在与其他同学合作时,经常发现不合理的日志配置以及五花八门的日志记录方式,后续作者打算在团队内做一次Java日志的分享,本文是整理出的系列文章第五篇。
|
3月前
|
存储 运维 监控
监控与日志管理:保障系统稳定运行与高效运维的基石
【8月更文挑战第16天】监控与日志管理是保障系统稳定运行和高效运维的基石。它们不仅能够帮助企业及时发现并解决问题,还能够为性能调优、资源优化和业务决策提供有力支持。因此,在构建系统架构时,企业应高度重视监控与日志管理的规划和实施,确保它们能够充分发挥作用,为企业的发展保驾护航。同时,随着技术的不断进步和应用场景的不断拓展,监控与日志管理也将持续演进和创新,为企业带来更多的价值和便利。