Azure IoT Edge问题排查
分类: Azure物联网 ◆ 标签: #Azure #IoT Edge # ◆ 发布于: 2023-06-14 22:34:30
本节介绍一些常用的Azure IoT Edge设备问题排查的基本手段和工具。
首先需要说明的是之前微软的文档是有些问题的,之前的文档讨论一个环境变量RuntimeLogLevel用于设置runtime的日志级别,实际上应该是设置在模块edgeHub和edgeAgent上。对于rumtime的日志输出建议使用命令sudo iotedge system logs -f (注意这个命令是用在iotedge runtime 1.2), 或者直接使用Linux命令journalctl -fu iotedge来查看日志。
将
edgeAgent或者edgeHub模块日志级别设置为debug使用合适的工具登录到设备所有的系统里,例如
Linux的ssh客户端。
编辑文件:/etc/iotedge/config.yaml或者文件/etc/aziot/config.yaml(前面这个配置文件适合1.1版本,后面是1.2以以上。)agent: name: edgeAgent type: docker env: RuntimeLogLevel: debug config: image: mcr.microsoft.com/azureiotedge-agent:1.1 auth: {}
需要注意的是
edgeHub模块也可以设置环境变量RuntimeLogLevel, 但是建议仅仅在您开发Edge模块时在EdgeHub上开启这个选项。抓取设备的实时状态信息
在将edgeAgent模块、edgeHub模块的日志级别设置为debug模式之后,可以使用如下的工具来抓取整个设备的模块和runtime的实时信息:sudo iotedge support-bundle --since 6h这个命令会将很多的信息打包成为一个
zip文件,拿到这个zip文件之后,仔细检查一下当前的信息。当前的信息主要包括:日志, 各模块的侵入信息等等。检查设备的配置状态
使用如下的命令可以检查设备的配置状态:sudo iotedge check另外有一个小提示,如果您在编辑了配置文件之后,请运行命令
sudo iotedge apply应用配置生效,特别在runtime是1.2版本以上。检查
IoT runtime的系统状态
通过如下的命令可以检查一下系统的状态:sudo iotedge system status或者
sudo iotedge system logs -- -f其他有用的指令如下:
sudo iotedge system set-log-level debug sudo iotedge system restart
iotedge logs <container name>
另外需要注意的是IoT Edge是支持网络代理的,如果使用的是基于Http的代理,在IoT Edge Runtime的协议中选择支持WebSocket的协议即可。