阿里云物联网平台offline离线日志原因排查

简介: 整理一下常见的离线日志offline reason,方便理清思路排查设备端离线原因。
首先解释一下云端判定心跳超时逻辑:

每个连接都维持着一个最近活跃时间,任何mqtt上行报文都会刷新这个最近活跃时间。云端如果检测到一个连接的最近活跃时间与当前时间的差值,大于1.5倍的心跳时间,就会判定这个连接心跳超时,从而将这个设备踢下线。

举个例子,设备端连接时设置的心跳时间是60秒,那么设备端应用如果60秒被没有发业务报文,设备端sdk就应该自动发送一个ping报文。而对于云端来说,如果90秒内没有收到设备端的任何报文,就会将设备踢下线。

备注:目前云端的实际实现逻辑,是每隔30秒去检查下当前机器上的所有连接,所以实际的时间还会加上0~30秒。对于上面的例子,目前实际会经过90~120秒后将设备踢下线。

1.首先找到IoT控制台日志服务,业务类型里面筛选出【设备行为】

image.png

2.然后找到具体的offline日志,内容里面找到offline reason

image.png

3.常见的offline reason排查:

1.TCP长连接断开,解决:检查设备端网络,本身设备端做好重连机制:MqttConnectOptionsc.setAutomaticReconnect(true)

2.Keepalive timeout after 100sec,心跳超时,解决:MQTT连接心跳时间为30秒至1,200秒。心跳时间不在此区间内,服务器将会拒绝连接。建议取值300秒以上。如果设备端网络较差,值相对可以设置的大一些。【这里设置心跳时间的参数具体要看使用的什么sdk,比如c sdk,在 IOT_MQTT_Construct 的入参中可以设置 keepalive_interval_ms 的值, C-SDK用这个值作为心跳间隔时间,keepalive_interval_ms 的取值范围是 60000 - 300000, 即最短心跳间隔为1分钟, 最长心跳间隔为5分钟】
java sdk见附件截图
image.png

3.Kicked by the same device,设备互踢,两种情况

①.设备和物联网平台的连接是基于mqtt协议的,假设设置的心跳时间是300s,那么只有超过心跳时间后,平台还没有收到设备端发送的心跳包,才认为设备离线。
如果在300s内,网络恢复,您的设备重新上线(也就是说设备本来离线,平台这边还是认为在线的,因为没有到300s),那平台就认为被同一台设备挤下线了,所以显示kicked by the same device

②.同一组三元组信息两个或以上设备同一时间连接,这个连接被踢掉了。

4.Connection reset by peer,这个是TCP连接被对端重置,您那边是设备端有持续重复连接的情况或者因为设备端网络不稳定导致的重连。

5.device disconnect这个一般是云端收到设备端disconnect报文的同时,设备端主动断开了tcp连接,并发导致的。

相关实践学习
钉钉群中如何接收IoT温控器数据告警通知
本实验主要介绍如何将温控器设备以MQTT协议接入IoT物联网平台,通过云产品流转到函数计算FC,调用钉钉群机器人API,实时推送温湿度消息到钉钉群。
阿里云AIoT物联网开发实战
本课程将由物联网专家带你熟悉阿里云AIoT物联网领域全套云产品,7天轻松搭建基于Arduino的端到端物联网场景应用。 开始学习前,请先开通下方两个云产品,让学习更流畅: IoT物联网平台:https://iot.console.aliyun.com/ LinkWAN物联网络管理平台:https://linkwan.console.aliyun.com/service-open
目录
相关文章
|
2月前
|
消息中间件 DataWorks 物联网
MQTT问题之接入阿里云物联网平台如何解决
MQTT接入是指将设备或应用通过MQTT协议接入到消息服务器,以实现数据的发布和订阅;本合集着眼于MQTT接入的流程、配置指导以及常见接入问题的解决方法,帮助用户实现稳定可靠的消息交换。
177 1
|
11天前
|
消息中间件 存储 JavaScript
阿里云IOC物联网异步处理基础概念
该内容介绍了异步处理基础和消息队列的相关概念。首先,同步处理指任务完成后才能执行其他操作,而异步则允许任务并行执行,不阻塞程序。异步能提高系统并发性和响应性,但也增加复杂性和资源消耗。接着,提到了消息队列,包括生产者、消费者、队列、broker和topic等概念,并指出在IoT中,设备作为生产者发送消息到特定topic,消费者从队列获取数据。最后,简要介绍了AMQP协议,它是用于应用程序间消息传递的开放标准,常用于分布式系统和物联网,如RabbitMQ和Apache Qpid。课程将以Apache Qpid为例接收IoT数据。
125 6
阿里云IOC物联网异步处理基础概念
|
2月前
|
消息中间件 网络协议 物联网
MQTT协议问题之阿里云物联网服务器断开如何解决
MQTT协议是一个轻量级的消息传输协议,设计用于物联网(IoT)环境中设备间的通信;本合集将详细阐述MQTT协议的基本原理、特性以及各种实际应用场景,供用户学习和参考。
130 1
|
3月前
|
存储 安全 物联网
安防摄像头IPC如何快速接入阿里云Link Visual视频服务(阿里云生活物联网)
Link Visual是生活物联网平台针对视频产品推出的增值服务,提供视频数据上云、存储、转发、AI计算等能力。 大白话就是:通过阿里云的Link Visual视频服务,可以让你的IPC摄像头设备完成上云功能,并快速实现如下功能介绍中的功能。其中可以享受阿里云P2P协议支持,帮助企业节省流量服务器流量带宽。
298 7
|
3月前
|
存储 监控 Serverless
在处理阿里云函数计算3.0版本的函数时,如果遇到报错但没有日志信息的情况
在处理阿里云函数计算3.0版本的函数时,如果遇到报错但没有日志信息的情况【1月更文挑战第23天】【1月更文挑战第114篇】
63 5
|
3月前
|
存储 监控 数据挖掘
阿里云函数计算的日志可以通过两种方式进行处理
【1月更文挑战第16天】【1月更文挑战第76篇】阿里云函数计算(Function Compute)的日志可以通过两种方式进行处理
58 1
|
4月前
|
存储 数据采集 运维
构建高效日志管理系统:阿里云产品实践与技术解析
日志管理对于系统运维和故障排查至关重要。本文将详细介绍如何利用阿里云相关产品搭建一个高效、可扩展的日志管理系统。我们将使用Log Service、Elasticsearch、DataHub等阿里云产品,通过代码示例和详细说明,带你一步步完成整个流程。
131 0
|
5月前
|
存储 监控 安全
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
Apache Doris 助力奇安信建设全新日志存储分析平台,提升系统安全性与快速响应能力!
奇安信基于阿里云数据库 SelectDB 版内核 Apache Doris 升级日志安全分析系统,查询平均提速 700%
|
6月前
|
关系型数据库 MySQL 数据库
阿里云Mysql数据库物理全备文件恢复到自建数据库Mysql报错:InnoDB: Log file ./...xtrabacku
阿里云Mysql数据库物理全备文件恢复到自建数据库Mysql报错:InnoDB: Log file ./...xtrabacku
|
6月前
|
消息中间件 Java 物联网
[笔记]阿里云物联网之业务服务端(java、php)接入阿里云平台(二)
[笔记]阿里云物联网之业务服务端(java、php)接入阿里云平台(二)
328 0

相关产品

  • 物联网平台