设备日志是在设备行为(设备上下线)、上行消息(设备通过Topic上报数据(属性、事件)到云端、设备侧属性期望操作)、下行消息 (通过开放API、控制台给设备下发消息、更新期望等)以及各云后业务处理(物模型调用、存储、规则引擎、HTTP推送、MQ推送)等业务过程中的全链路业务处理记录,通过设备日志功能,用户可以非常方便、迅速地监控业务运行状态和排查运行时问题。
OneNET Studio 面向用全量开放内部服务全链路日志,用户可通过每条链路唯一的链路ID追踪每条访问请求以及该请求的相应触发消息的处理情况,便于用户实时消息追踪与定位问题。 设备日志功能具有以下特点:
(1) 内存级索引查询,多条件查询优化
(2) 24小时不间断监控,实时展示用户业务运行状态
(3) 更加直观地向用户展示系统业务架构和用户的每个业务流程
(4) 更加快速的问题朔源和故障定位系统,对用户友好,降低用户使用成本
(5) 提供上下行原始消息缓存,助力用户精准地分析问题
(6) 集中的标准化日志管理、查询,高可拓展性,其它业务模块可以进行快速接入
(7) 用户级业务日志暴露,用户可自主查询绝大多数的设备侧操作日志,无需通过工单排查问题
(1) 登录物联网平台控制台。
(2) 在左侧导航栏,单击监控运维 > 设备日志,进入设备日志页签。
(3) 选择产品,输入搜索条件,然后单击搜索图标。
支持的搜索条件如下表。
| 搜索条件 | 说明 |
|---|---|
| DeviceName | 输入设备名称。根据设备名称,搜索该设备的相关日志。 |
| TraceId | 输入追踪ID,搜索串联模块日志。 |
| 消息ID | 消息ID |
| 日志状态 | 执行日志的状态,可选择:日志状态(全部)、成功、失败 |
| 业务类型 | 选择要查询的业务类型,可选择:业务类型(全部)、设备行为、上行消息、下行消息、物模型调用、数据存储、规则引擎、MQ推送、HTTP推送、开放API、应用长连接 |
| 时间范围 | 选择要查询日志的时间范围,可选择:近15分钟、近1小时、近4小时、近24小时、近7天、自定义 |
设备日志列表中包含的字段说明如下表。
| 参数 | 含义 | 备注 |
|---|---|---|
| 日志时间 | 日志打印时间。 | 业务开始时间,格式yyyy-MM-dd HH:mm:ss.SSS,精确到毫秒 |
| 设备名称 | 设备名称。 | 无 |
| 链路ID | 追踪ID,可用于搜索串联模块。 | 32位,一条消息在系统内部各个服务模块流转以及相关触发消息的唯一标识ID |
| 消息ID | 该条日志的消息ID | 设备与平台上下行消息的消息唯一标识,用户可根据消息ID,查询消息通信数据内容,消息查询时效性为一天(自然天,当天可查当天,跨天则不可查询),目前仅上行消息、下行消息有消息ID,具体消息可在操作栏点击详情进入日志详情页面查看。 |
| 业务类型 | 默认显示所有业务类型的日志,您可以仅查询某一业务类型的日志。-设备行为-上行消息-下行消息-物模型调用-数据存储-规则引擎-MQ推送-HTTP推送-开放API-应用长连接 | 日志的业务类型,由各个服务定义 |
| 日志状态 | 日志执行的结果状态 | 200代表成功,其它状态定义码参见日志业务状态码 |
| 日志内容 | 日志执行的内容 | 详细的日志输出内容 |
| 服务模块 | 日志类型 | 日志触发时机 |
|---|---|---|
| CoAP/MQTT接入服务 | 设备行为类 | 设备上/下线、设备心跳(目前仅CoAP协议支持) |
| 上行消息 | 设备侧上报(设备上报属性、事件),设备侧期望操作(设备获取、删除属性期望值),平台侧属性设置操作设备回复 | |
| 下行消息 | 设备上报属性、事件平台回复,设备获取、删除属性期望值平台回复,平台侧属性设置操作 | |
| 物模型服务 | 物模型调用 | 见下表业务日志状态码中的物模型服务模块说明 |
| 数据存储服务 | 数据存储 | 暂未接入 |
| 规则引擎服务 | 规则引擎 | 当配置了相应产品、设备的消费规则时,见下表业务日志状态码中的规则引擎服务模块说明 |
| MQ推送服务 | MQ推送 | 暂未接入 |
| HTTP推送服务 | HTTP推送 | 当推送数据被消费时,见下表业务日志状态码中的HTTP推送服务模块说明 |
| 开放API服务 | 开放API | 使用API进行属性设备、属性期望值查询、更新、删除等操作时,见下表业务日志状态码中的开放API服务模块说明 |
| 服务模块 | 状态码 | 消息 | 原因 | 排查步骤 |
|---|---|---|---|---|
| 通用 | 200 | - | 成功 | |
| MQTT接入服务 | 1001 | rpc failed | rpc调用失败(上行) | 请通过提交工单进行排查 |
| 1002 | thing error | 物模型服务错误 | 根据返回的desc信息排查设备数据 | |
| 1021 | channel not writable | 设备socket不可写(下行) | 设备正在断开连接或设备接收的tcp缓冲区已满,排查设备状态 | |
| 1022 | subscription not exist | 订阅不存在,设备未订阅主题(无法推送下行消息) | 排查设备是否订阅了接收下行消息的topic | |
| 1023 | device replied but timeout | 设备在超时时间后才回复设备设置属性 | 请排查设备是否在超时时间后才回复设备设置属性 | |
| 1024 | session not exist | 设备session不存在(下行) | 请通过提交工单进行排查 | |
| 1025 | duplicate id | 重复的下行id(下行) | 请通过提交工单进行排查 | |
| 1026 | internal error | 接入机内部错误 | 请通过提交工单进行排查 | |
| 1027 | invalid id field or json format error | set_reply响应中id字段错误(不存在或类型错误)或json格式错误 | 排查是否为合法json格式,及id字段是否存在或是字符串类型 | |
| 1028 | id not found | id未找到 | 排查设备是否在超时时间到期后回复了设置属性 | |
| 1101 | invalid argument | 无效的参数 | 无效的鉴权参数,排查填写的clientId、userName、password字段是否为空 | |
| 1102 | internal error | 内部错误 | 请通过提交工单进行排查 | |
| 1103 | invalid token | 无效的token | 排查设备token字段是否填写正确(有且仅包括et、version、method、res、sign等) | |
| 1104 | token expired | token已过期 | 检查token的过期时间 | |
| 1105 | seckey not found | 设备/产品sec_key未找到 | 请通过提交工单进行排查 | |
| 1106 | sign not match | 签名不匹配 | 检查设备token中sign签名是否计算正确 | |
| 1107 | device not found | 根据pid + dev_name未找到设备 | 排查设备是否真实(产品id + 设备名称)存在 | |
| 1108 | internal pid not found | 未找到对应的内部产品id | 请通过提交工单进行排查 | |
| 1109 | internal device id not found | 未找到对应的内部设备id | 请通过提交工单进行排查 | |
| 1110 | sign method not supported | 不支持的签名算法 | 检查token中的method是否被平台支持 | |
| 1111 | invalid version | 非法的版本号 | 检查token中的version字段是否正确 | |
| 1112 | protocol not match | 协议不匹配 | 检查设备协议类型是否与连接的接入服务匹配 | |
| 1114 | argument not match with token | 输入的参数与token不匹配 | 检查填写的clientId、userName字段是否与token中res字段中的一致(clientId填写设备名称、userName为产品id) | |
| 1201 | invalid argument | 无效的参数 | 请通过提交工单进行排查 | |
| 1202 | internal error | 内部错误 | 请通过提交工单进行排查 | |
| 1204 | session not exist | 设备session未找到 | 请通过提交工单进行排查 | |
| 1210 | login on other acceptor | 该设备/协议适配服务实例已登录到其他接入机 | 请通过提交工单进行排查 | |
| 1401 | abnormal offline | 设备异常离线 | 请查看日志中的offline_reason以便获取具体原因 | |
| CoAP接入服务 | 400 | coap_bad-request | 错误请求 | CoAP请求报文格式错误,(请检查参数、编码等是否正确) |
| 401 | coap_unauthorized | 鉴权失败 | 设备鉴权信息不匹配 | |
| 403 | coap_forbidden | 禁止上行 | 设备上行消息速率超过平台限制 | |
| 404 | coap_not-found | 找不到对应设备资源 | 设备可能已在平台离线 | |
| 405 | coap_method-not-allowed | 该资源不允许当前请求方式(GET/PUT/POST/DELETE) | 请根据平台使用规范使用CoAP请求方式 | |
| 406 | coap_not-acceptable | 无可返回的消息格式 | 平台暂无法返回该种消息格式 | |
| 415 | coap_unsupported-content-format | 不支持的特殊消息格式 | 平台暂不支持该种消息格式 | |
| 500 | internal_server_error | 内部错误 | 请通过提交工单进行排查 | |
| 601 | time_out | 下行命令请求超时 | 检查设备是否回复响应,若回复,请通过提交工单进行排查 | |
| 602 | req_param_error | 请求格式错误 | 请通过提交工单进行排查 | |
| 603 | resp_error | 回复格式错误 | 检查设备回复格式,若仍有问题,请通过提交工单进行排查 | |
| 604 | offline | 设备已离线 | 请重新上线设备 | |
| 605 | addr_occupied | 地址被占用 | 该设备地址已被其他设备占用 | |
| 606 | limit | CoAP接入服务策略限制 | 请根据平台限流规则使用 | |
| 物模型服务 | 301 | json format error | json格式错误 | 请确认数据格式重试 |
| 302 | data type error | 数据类型错误 | 请确认数据格式重试 | |
| 303 | internal error | 内部错误 | 请通过提交工单进行排查。 | |
| 304 | resp error | 返回错误 | 请确认属性设置响应数据格式后重试 | |
| 305 | no thing-model | 物模型定义不存在 | 请确认产品下有物模型的定义后重试 | |
| 306 | timeout | 属性设置响应超时 | 请确认设备有无响应属性设置消息 | |
| 307 | invalid pid or devName | 请求中pid或devicename不合法 | 请确认pid和devName是有效数据后重试 | |
| 308 | device not online | 设备不在线 | 请检查设备是否在线 | |
| 309 | identifier not exist | 标识符不存在 | 请检查标识符是否存在 | |
| 310 | mqtt acc error | MQTT接入服务调用失败 | 请通过链路ID查询链路上对应的MQTT接入服务日志进行排查 | |
| 311 | coap acc error | CoAP接入服务调用失败 | 请通过链路ID查询链路上对应的CoAP接入服务日志进行排查 | |
| 312 | invalid msg id | 消息id不符合规范 | 请检查消息id是否是不超过13位的字符串类型的数字 | |
| 313 | bad request | 请求不合法 | 请确认请求正确后重试 | |
| 规则引擎服务 | 900 | internal error | 内部错误 | 请通过提交工单进行排查。 |
| 901 | format error | 数据格式错误 | 请确认数据格式后重试 | |
| HTTP推送服务 | 2001 | code error | 状态码错误 | HTTP响应未正常返回200状态码 |
| 3001 | parameter error | 参数错误 | 请确认数据格式后重试 | |
| 3002 | service degradation | 推送超时服务降级 | 请确认网络是否正常 | |
| 3003 | failures reached the maximum number | 重推次数达到上限 | 请确认服务是否正常 | |
| 4001 | send failed | 推送失败 | 请通过提交工单进行排查 | |
| 开放API服务 | 800 | internal error | 内部服务错误 | 请通过提交工单进行排查 |
| 801 | rpc failed | rpc调用失败 | 请通过提交工单进行排查 | |
| 802 | thing sevice error | 物模型命令服务调用失败 | 请通过链路ID查询链路上对应的物模型日志进行排查 |