适用范围:IoT Edge 1.5 checkmark IoT Edge 1.5
重要
IoT Edge 1.5 LTS 是受支持的版本。 IoT Edge 1.4 LTS 于 2024 年 11 月 12 日终止。 如果使用的是早期版本,请参阅 Update IoT Edge。
使用Azure监视工作簿来监视Azure IoT Edge部署的运行状况和性能。
在本教程中,你将了解:
- 了解设备IoT Edge共享哪些指标以及指标收集器模块如何处理它们。
- 将指标收集器模块部署到IoT Edge设备。
- 查看从设备收集的指标的精心制作的可视化效果。
先决条件
您需要一台部署了模拟温度传感器模块的IoT Edge设备。 如果您尚未准备好设备,请按照 将第一个 IoT Edge 模块部署到虚拟 Linux 设备中的步骤使用虚拟机进行创建。
了解IoT Edge指标
每个IoT Edge设备都依赖于两个模块,称为 runtime 模块,用于管理设备上的所有其他模块的生命周期和通信。 这些模块是 IoT Edge agent 和 IoT Edge hub。 若要了解有关这些模块的详细信息,请参阅 了解Azure IoT Edge运行时及其体系结构。
这两个运行时模块都创建指标,用于远程监视IoT Edge设备或其各个模块的执行方式。 IoT Edge代理报告各个模块和主机设备的状态,因此它会创建指标,例如模块正常运行的时间,或设备上使用的 RAM 量和 CPU 百分比。 IoT Edge中心报告设备上的通信情况,因此会创建指标,例如发送和接收的消息总数,或者解决直接方法所需的时间。 有关可用指标的完整列表,请参阅 Access 内置指标。
这两个模块都会自动公开这些指标,因此可以创建自己的解决方案来access并报告这些指标。 为了简化此过程,Microsoft提供了 azureiotedge-metrics-collector 模块,用于处理此过程(如果你没有或想要自定义解决方案)。 指标收集器模块从两个运行时模块和要监视的任何其他模块收集指标,并将其从设备发送。
指标收集器模块通过以下两种方式之一将指标发送到云。 本教程中使用的第一个选项将指标直接发送到 Log Analytics。 仅当网络策略需要它时,才建议使用第二个选项。 它会通过IoT Hub发送指标,然后设置一个路由,将指标消息传递给 Log Analytics。 无论哪种方式,一旦指标位于 Log Analytics 工作区中,可以通过Azure监视工作簿来查看它们。
创建 Log Analytics 工作区
Log Analytics 工作区是必需的收集指标数据、使用查询语言并与 Azure Monitor 集成,以便可以监视设备。
登录到 Azure portal。
搜索 Log Analytics 工作区,然后选择它。
选择“ 创建”,然后按照提示创建新工作区。
工作区准备就绪后,选择“转到资源”。
在 “设置”下的主菜单中,选择 “代理”。
在 Log Analytics 代理说明下复制工作区 ID 和主密钥的值。 本教程稍后会使用这些值来配置指标收集器模块,以将指标发送到此工作区。
检索 IoT hub 资源 ID
配置指标收集器模块时,输入 Azure Resource Manager 中 IoT Hub 的资源 ID。 立即获取该 ID。
在 Azure 门户中,转到您的 IoT 中心。
在 设置下,选择 属性。
复制“资源标识符”的值。 格式为
/subscriptions/<subscription_id>/resourceGroups/<resource_group_name>/providers/Microsoft.Devices/IoTHubs/<iot_hub_name>。
部署指标收集器模块
将指标收集器模块部署到要监视的每个设备。 它像任何其他模块一样在设备上运行,并监视其分配的终结点以获取要收集和发送到云的指标。
按照以下步骤部署和配置收集器模块:
- 登录到 Azure portal,然后转到IoT hub。
1.在 Device management 下,选择 Devices。
在IoT Edge设备列表中选择目标设备的设备 ID,以打开设备详细信息页。
在菜单栏中,选择“ 设置模块”。
从门户部署模块的第一步是声明设备上的 模块 。 如果使用的是在快速入门中创建的同一设备,则可以看到列出的“SimulatedTemperatureSensor”。 如果未出现,请立即添加:
在 IoT Edge modules 部分中,选择 Add,然后选择 IoT Edge Module。
更新以下模块设置:
设置 “值” IoT 模块名称 SimulatedTemperatureSensor映像 URI mcr.microsoft.com/azureiotedge-simulated-temperature-sensor:latest重启策略 总是 期望状态 “正在运行” 选择“下一步: 路由”来继续配置路由。
添加一个路由,用于将模拟温度模块中的所有消息发送到IoT Hub。
设置 “值” 名称 SimulatedTemperatureSensorToIoTHub“值” FROM /messages/modules/SimulatedTemperatureSensor/* INTO $upstream
添加和配置指标收集器模块:
选择 Add,然后选择 IoT Edge Module。
搜索并选择IoT Edge指标收集器。
更新以下模块设置:
设置 “值” IoT 模块名称 IoTEdgeMetricsCollector映像 URI mcr.microsoft.com/azureiotedge-metrics-collector:latest重启策略 总是 期望状态 “正在运行”
若要使用度量收集器模块的不同版本或体系结构,请在 Microsoft Artifact Registry 中查找可用映像。
转到“ 环境变量 ”选项卡。
添加以下文本类型环境变量:
名称 “值” 资源ID 您在上一部分中检索到的 IoT hub 资源 ID。 UploadTarget AzureMonitorLogAnalyticsWorkspaceId 您在前一部分中检索到的 Log Analytics 工作区 ID。 LogAnalyticsSharedKey 您在上一部分中检索到的 Log Analytics 密钥。 有关环境变量设置的详细信息,请参阅指标收集器配置。
选择“应用”以保存所做的更改。
注意事项
若要通过 IoT Hub 发送指标,请将路由添加到上游,类似于
FROM /messages/modules/< FROM_MODULE_NAME >/* INTO $upstream。 在本教程中,指标将直接发送到 Log Analytics,因此不需要此路由。选择 “查看 + 创建 ”以继续执行部署模块的最后一步。
选择“创建”以完成部署。
部署完模块后,返回到设备详细信息页,其中看到四个模块在 部署中列为“指定”。 所有四个模块可能需要一些时间才能被列为设备报告,这意味着它们已经启动,并将状态报告给IoT Hub。 刷新页面以查看最新状态。
监视设备运行状况
设备监视工作簿可能最多需要 15 分钟才能准备好供查看。 部署指标收集器模块后,它会开始将指标消息发送到 Log Analytics,这些消息组织在表中。 您提供的 IoT Hub 资源 ID 可将所收集的指标链接到正确的集线器。 因此,精选的 IoT Edge 工作簿通过查询资源 ID 指定的指标表来获取指标。
Azure Monitor 为 IoT 提供三个默认工作簿模板:
- “车队视图”工作簿显示跨多个 IoT 资源的设备运行状况。 该视图允许为设备运行状况设置阈值,并显示每个设备的主要指标的聚合。
- “设备详细信息”工作簿显示消息传送、模块和主机的可视化效果。 消息视图可直观呈现设备的消息路由,并报告消息系统的整体运行状况。 模块视图显示设备上的单个模块如何执行。 主机视图显示有关主机设备的信息,包括主机组件和资源使用的版本信息。
- 警报 工作簿视图显示多个 IoT 资源中设备的警报。
浏览车队视图和运行状况快照工作簿
机群视图工作簿显示所有设备,并允许你选择特定设备以查看其运行状况快照。 按照以下步骤浏览工作簿可视化效果:
在 Azure 门户中,转到你的 IoT 中心页面。
在主菜单中,向下滚动到 “监视 ”部分,然后选择“ 工作簿”。
选择“车队视图”工作簿。
你会看到运行指标收集器模块的设备。 该设备列为“运行正常”或“运行不正常” 。
选择设备名称以查看详细指标。
在任何时间图表上,使用 X 轴下的箭头图标或选择图表并拖动光标以更改时间范围。
关闭运行状况快照工作簿。 在机群视图工作簿中,选择工作簿以返回到工作簿库。
浏览设备详细信息工作簿
设备详细信息工作簿显示单个设备的性能详细信息。 按照以下步骤浏览工作簿可视化效果:
在工作簿库中,选择IoT Edge 设备详细信息工作簿。
设备详细信息工作簿中的第一页是 消息 视图,其中选择了 “路由 ”选项卡。
左侧是一个表,显示设备上按终结点组织的路由。 对于此设备,用于路由到IoT Hub的上游终结点从模拟温度传感器模块的temperatureOutput输出中接收消息。
在右侧,图形显示一段时间内连接的客户端数。 选择并拖动图形以更改时间范围。
选择“图形”选项卡以查看路由的不同可视化效果。 在图形页上,拖放终结点以重新排列图形。 当有许多要可视化的路由时,此功能会有所帮助。
健康选项卡显示消息传送的任何问题,例如丢失的消息或断开连接的客户端。
选择 模块 视图以查看设备上部署的所有模块的状态。 选择一个模块以查看其 CPU 和内存使用情况的详细信息。
选择 host 视图以查看有关主机设备的信息,包括其作系统、IoT Edge守护程序版本和资源使用情况。
查看模块日志
查看设备的指标后,可能需要进一步深入了解并检查各个模块。 IoT Edge通过实时模块日志功能在Azure portal中提供故障排除支持。
在设备详细信息工作簿中,选择“ 实时故障排除”。
故障排除页面会直接打开并显示来自 IoT Edge 设备的 edgeAgent 日志。 如果在设备详细信息工作簿中选择特定的时间范围,该设置将传递到故障排除页面。
使用下拉菜单切换到设备上运行的其他模块的日志,并使用“ 重启 ”按钮重启模块。
还可以从IoT Edge设备的详细信息页access故障排除页面。 有关详细信息,请参阅通过 Azure 门户解决 IoT Edge 设备故障。
后续步骤
完成本教程的其余部分时,请将指标收集器模块保留在设备上,并返回到这些工作簿,以查看添加更复杂的模块和路由时信息是如何变化的。
转到下一教程,设置开发人员环境并开始将自定义模块部署到设备。
使用 Visual Studio Code 开发 Azure IoT Edge 模块