你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
Device Update for IoT Hub 诊断概述
Device Update for IoT Hub 具有多项功能,可帮助诊断和排查设备端错误。 随着 v0.9.0 代理的发布,有三个诊断功能可用:
可以直接在设备更新用户界面中查看部署错误代码
远程日志收集支持创建日志操作,以指示目标设备将设备上诊断日志上传到链接的 Azure Blob 存储帐户
代理检查对注册到你的设备更新实例的设备运行验证检查,目的是诊断在已连接的 IoT 中心中注册但未显示在设备更新中的设备
UI 中的部署错误代码
当设备向设备更新服务报告部署失败时,设备更新用户界面会在用户界面中显示设备报告的 resultCode
和 extendedResultCode
。 使用以下步骤查看这些代码:
在 Azure 门户中导航到 IoT 中心。
选择“更新”,然后导航到“组和部署”选项卡。
选择具有活动部署的组名称,以访问“组详细信息”页面。
选择设备列表中的任何设备名称,打开设备详细信息面板。 可在此处查看设备报告的结果代码。
设备更新引用代理遵循“结果代码”字段的标准 HTTP 状态代码惯例规定,例如“200”表示成功。 要详细了解如何分析结果代码,请参阅设备更新客户端错误代码。
注意
如果已修改设备更新代理以报告自定义的结果代码,数字代码仍将传递到设备更新用户界面。 然后,你可以参考所创建的任何文档来分析这些数值代码。
远程日志收集
当诊断和排查错误时需要设备的更多详细信息时,可以使用日志收集功能指示目标设备将设备上诊断日志上传到链接的 Azure Blob 存储帐户。 可以按照远程收集设备中的诊断日志中的说明开始使用此功能。
设备更新的远程日志收集是一项服务驱动的基于操作的功能。 要利用日志收集,设备只需实现诊断接口和配置文件,并且能够通过 SDK 将文件上传到 Azure Blob 存储。
从较高层面来说,日志收集功能的工作方式如下:
用户使用设备更新用户界面或 API 创建新的日志操作,以最多 100 个已实现诊断接口的设备为目标。
设备更新服务使用诊断接口将日志收集启动消息发送到目标设备。 此启动消息包括日志操作 ID 和 SAS 令牌,用于上传到关联的 Azure 存储帐户。
收到启动消息后,目标设备的设备更新代理将尝试在设备上代理配置文件中指定的预定义文件路径中收集和上传文件。 设备更新引用代理配置为默认上传设备更新代理诊断日志 (
aduc.log
) 和 DO 代理诊断日志 (do-agent.log)。然后,设备更新代理将操作状态(“成功”或“失败”)报告给服务,包括日志操作 ID、ResultCode 和 ExtendedResultCode。 如果设备更新代理的日志操作失败,它将自动尝试重试三次,仅向服务报告最终状态。
在所有目标设备将其终端状态报告给设备更新服务后,设备更新服务会将日志操作标记为“成功”或“失败”。 成功的日志操作表示所有目标设备都已成功完成日志操作。 失败的日志操作表示至少有一个目标设备的日志操作失败。
注意
由于日志操作由目标设备并行执行,因此某些目标设备可能会成功上传日志,但整个日志操作会标记为失败。 你可以通过用户界面或 API 查看日志操作详细信息,了解失败和成功的设备。
代理检查
如果设备已在 IoT 中心注册但未显示在设备更新实例中,则可以使用代理检查功能运行预先进行的验证检查,以帮助诊断根本问题。 你可以按照这些代理检查说明开始使用此功能。
从较高层面来说,代理检查功能的工作方式如下:
用户向 IoT 中心注册设备。 如果设备报告的型号 ID 与 Device Update for IoT Hub 兼容的型号 ID 匹配,则用户连接的 Device Update 实例会自动向 Device Update 注册设备。
为了使 Device Update 能够正确管理设备,设备必须满足某些条件,这些条件可以使用代理检查的预先验证检查进行验证。 可在此处找到有关这些条件的详细信息。
如果设备不符合所有这些条件,则 Device Update 无法正确管理,并且不会显示在 Device Update 接口或 API 响应中。 用户可以使用代理检查来查找此设备,并尝试使用代理检查来确定未满足的条件。
用户确定未满足的条件后,便可以更正问题,然后设备应正确显示在 Device Update 界面中。
后续步骤
了解如何使用 Device Update 的远程日志收集和代理检查功能: