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
的协议即可。