Report and inventory hardware and OS information with Azure IoT and OSConfig
重要
版本 1.0.3 (于 2022 年 6 月 28 日发布) 包括对成员名称的重大更改,这些更改可能会影响现有用户。 有关详细信息,请参阅: 成员名称在版本 1.0.3 中从 PascalCase 转换到 camelCase
本文旨在支持使用 Azure IoT 预配或管理设备 的人员。 如果这听起来不像你,请考虑查看 OSConfig 的受众文档。
本文介绍如何使用 DeviceInformation 和 TPM 模块获取设备信息,包括 操作系统、 版本、 TPM 状态、 内存等。
这些示例可以作为你适应独特环境的起点。
例如,如果使用本文作为参考 (此处复制属性名称) ,则没有任何先决条件。
如果要尝试实时系统上的示例 (推荐) ,请:
需要一个具有IoT 中心的 Azure 帐户
本文假设你已熟悉IoT 中心和相关工具。 例如,它假定你熟悉如何创建 IoT 中心和附加设备。 如果更喜欢从头开始安装和使用 OSConfig 的更规范的分步简介,请参阅: 快速入门:改为使用 Azure CLI 管理单个虚拟 IoT 设备 。
需要至少一台已安装 OSConfig 代理并连接到 Azure IoT 的 Linux 设备。
有关详细信息,请参阅: 安装适用于 Linux 的 OSConfig 代理的方式和位置。
你将使用 Azure 门户或 Azure CLI 通过IoT 中心
有关后续步骤,请选择首选体验:
- 确保已登录到 Azure 门户并可以访问IoT 中心的“概述”页
在此示例中,我们只是检索这两个命名空间中可用的所有设备信息。 在云解决方案或诊断方案中,应将此信息用作清单方案的一部分。
分步说明遵循屏幕截图
- 导航到所选设备的 OSConfig 孪生
- 在 Azure 门户中IoT 中心页中,导航到“设备管理>设备” (或设备管理 > IoT Edge(如果设备已安装IoT Edge)
- 单击设备 ID 列表中的设备名称
- 在“ 模块标识”下 ,单击 osconfig 模块 ID
- 单击“模块标识孪生”
- 滚动以查看 下的 和 部分,并记下包括 、、
tpmVersion
osVersion
totalMemory
、 等在内的可用信息。cpuType
Tpm
properties.reported
DeviceInfo
对于此示例,仅填充 Bash/Cloud Shell大规模示例。 这显示了如何使用 IoT 中心 查询函数以及 Azure CLI --output table
的功能。 预期会将这些数据点集成到自己的云工作流中,并根据需要向解决方案操作员显示表。
不适用。 导航到“先决条件”以尝试本文档中的实时系统上的示例,然后选择“Bash /Cloud Shell”。
此示例将使用 Azure IoT 查询的 GROUP BY 运算符,该运算符通过 OSConfig 公开的 TPM 信息应用。
不适用,请参阅大规模 Azure 门户。
本部分介绍孪生体属性和相应行为。
提示
如果普通所需/报告的孪生视图点不同于 DTDL 增强的视点,则前者先在括号中指定后跟后者。
路径:
properties.reported.DeviceInfo
(DeviceInfo
组件)说明:设备范围的信息,例如 OS 名称、OS 版本、CPU 类型等。
成员
名称 类型 说明 osName 字符串 OS 名称,如 Ubuntu、Debian 等。 osVersion string OS 版本,如“20.04”等。 cpuType 字符串 高级 ISA 标识符,如“aarch64”、“x86_64”等。 cpuVendorId 字符串 供应商标识符,如“ARM”、“正版Intel”等。 cpuModel 字符串 处理器标识符,如“Cortex-A72”等。 totalMemory int 已安装的 RAM,如 OS 所示 freeMemory int 服务开始时间 (可用 RAM) ¹,如 OS 所示 kernelName 字符串 内核名称,如“Linux” kernelVersion 字符串 其他内核生成信息,如“#75-Ubuntu SMP PREEMPT Fri Jun 3 14:24:57 UTC 2022” kernelRelease 字符串 内核生成版本标识符,如“5.4.0-1065-raspi” productVendor 字符串 指设备的产品供应商上下文,例如“Contoso Systems, Inc”;通常为空 productName string 设备产品名称,如“Raspberry Pi 4 型号 B Rev 1.4” productVersion 字符串 设备产品版本;通常为空 systemCapabilities 字符串 从 lshw -c system
systemConfiguration 字符串 从 lshw -c system
osConfigVersion 字符串 表示设备的 OSConfig 代理的版本号 ¹ 该
freeMemory
属性设计用于一般系统特性化,而不是动态监视。 因此,它仅在服务启动时更新值,避免不断更新此值而产生 CPU 和网络费用。 有关可用内存的持续监视,请参阅 Azure Monitor。示例有效负载 (,如孪生)
properties.reported
部分所示"DeviceInfo": { "__t": "c", "osName": "Ubuntu", "osVersion": "20.04.4", "cpuType": "aarch64", "cpuVendorId": "ARM", "cpuModel": "Cortex-A72", "totalMemory": 7998708, "freeMemory": 7168776, "kernelName": "Linux", "kernelVersion": "#75-Ubuntu SMP PREEMPT Fri Jun 3 14:24:57 UTC 2022", "kernelRelease": "5.4.0-1065-raspi", "productVendor": "", "productName": "Raspberry Pi 4 Model B Rev 1.4", "productVersion": "", "systemCapabilities": "smp cp15_barrier setend swp tagged_addr_disabled", "systemConfiguration": "", "osConfigVersion": "1.0.3.2022062801" }
路径:
properties.reported.Tpm
(Tpm
组件)说明:向 OS 公开的 TPM 的状态和状态
成员
名称 类型 说明 tpmStatus ints 的枚举 0 (未知) ,1 (检测到) ,2 (未检测到) tpmVersion 字符串 TPM 接口版本,例如“2.0” tpmManufacturer 字符串 标识符,例如“IFX” Example payload (as seen in twin's
properties.reported
section)"Tpm": { "__t": "c", "tpmStatus": 1, "tpmVersion": "2.0", "tpmManufacturer": "IFX" }
有关 OSConfig 方案和功能的概述,请参阅:
有关具体的实际示例,请参阅: