阿里云物联网平台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月前
|
物联网
(手把手)在华为云、阿里云搭建自己的物联网MQTT消息服务器,免费IOT平台
本文介绍如何在阿里云搭建自己的物联网MQTT消息服务器,并使用 “MQTT客户端调试工具”模拟MQTT设备,接入平台进行消息收发。
811 42
|
9月前
|
Java Shell
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
「sh脚步模版自取」测试线排查的三个脚本:启动、停止、重启、日志保存
132 1
|
4月前
|
域名解析 应用服务中间件 网络安全
阿里云个人博客外网访问中断应急指南:从安全组到日志的七步排查法
1. 检查安全组配置:确认阿里云安全组已开放HTTP/HTTPS端口,添加规则允许目标端口(如80/443),授权对象设为`0.0.0.0/0`。 2. 本地防火墙设置:确保服务器防火墙未阻止外部流量,Windows启用入站规则,Linux检查iptables或临时关闭防火墙测试。 3. 验证Web服务状态:检查Apache/Nginx/IIS是否运行并监听所有IP,使用命令行工具确认监听状态。 4. 测试网络连通性:使用外部工具和内网工具测试服务器端口是否开放,排除本地可访问但外网不可的问题。 5. 排查DNS解析:确认域名A记录指向正确公网IP,使用`ping/nslookup`验证解析正
159 2
|
4月前
|
存储 监控 安全
工业物联网关应用:PLC数据通过智能网关上传阿里云实战
本文介绍如何使用智能网关将工厂PLC数据传输至阿里云平台,适合中小企业远程监控设备状态。硬件准备包括三菱FX3U PLC、4G智能网关和24V电源。接线步骤涵盖PLC编程口与网关连接、运行状态检测及天线电源接入。配置过程涉及通讯参数、阿里云对接和数据点映射。PLC程序关键点包括数据上传触发和温度值处理。阿里云平台操作包含实时数据查看、数据可视化和规则引擎设置。最后提供常见故障排查表和安全建议,确保系统稳定运行。
316 1
|
5月前
|
物联网 数据挖掘 BI
基于阿里云物联网平台(IoT)的智能家居系统开发与部署
随着物联网技术的发展,智能家居成为提升生活品质的重要方向。阿里云物联网平台提供设备接入、数据管理及应用开发能力,支持亿级设备接入、高效数据管理和灵活应用开发,确保系统安全。本文通过实战案例展示如何基于该平台构建智能家居系统,涵盖设备接入、远程控制、场景联动与数据分析等功能,助力企业快速部署智能家居解决方案。
|
9月前
|
Java 程序员 应用服务中间件
「测试线排查的一些经验-中篇」&& 调试日志实战
「测试线排查的一些经验-中篇」&& 调试日志实战
99 1
「测试线排查的一些经验-中篇」&& 调试日志实战
|
9月前
|
存储 边缘计算 物联网
阿里云物联网平台:推动万物互联的智能化解决方案
随着物联网技术的快速发展,阿里云物联网平台为企业提供了一体化的解决方案,包括设备接入、数据管理和智能应用等核心功能。平台支持海量设备接入、实时数据采集与存储、边缘计算,并具备大规模设备管理、高安全性和开放生态等优势。广泛应用于智能制造、智慧城市和智能家居等领域,助力企业实现数字化转型。
1011 5
|
10月前
|
Java
日志框架log4j打印异常堆栈信息携带traceId,方便接口异常排查
日常项目运行日志,异常栈打印是不带traceId,导致排查问题查找异常栈很麻烦。
|
8月前
|
XML 安全 Java
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
本文介绍了Java日志框架的基本概念和使用方法,重点讨论了SLF4J、Log4j、Logback和Log4j2之间的关系及其性能对比。SLF4J作为一个日志抽象层,允许开发者使用统一的日志接口,而Log4j、Logback和Log4j2则是具体的日志实现框架。Log4j2在性能上优于Logback,推荐在新项目中使用。文章还详细说明了如何在Spring Boot项目中配置Log4j2和Logback,以及如何使用Lombok简化日志记录。最后,提供了一些日志配置的最佳实践,包括滚动日志、统一日志格式和提高日志性能的方法。
2406 31
【日志框架整合】Slf4j、Log4j、Log4j2、Logback配置模板
|
7月前
|
监控 安全 Apache
什么是Apache日志?为什么Apache日志分析很重要?
Apache是全球广泛使用的Web服务器软件,支持超过30%的活跃网站。它通过接收和处理HTTP请求,与后端服务器通信,返回响应并记录日志,确保网页请求的快速准确处理。Apache日志分为访问日志和错误日志,对提升用户体验、保障安全及优化性能至关重要。EventLog Analyzer等工具可有效管理和分析这些日志,增强Web服务的安全性和可靠性。
191 9

物联网

+关注

相关产品

  • 物联网平台
  • AI助理

    你好,我是AI助理

    可以解答问题、推荐解决方案等

    登录插画

    登录以查看您的控制台资源

    管理云资源
    状态一览
    快捷访问