Report and inventory hardware and OS information with Azure IoT and OSConfig
Importante
La versión 1.0.3 (publicada el 28 de junio de 2022) incluye cambios importantes en los nombres de miembros que pueden afectar a los usuarios existentes. Para obtener más información, consulte: Los nombres de miembro pasan de PascalCase a camelCase en la versión 1.0.3.
Este artículo está diseñado para admitir a los usuarios que aprovisionan o administran dispositivos con Azure IoT. Si eso no suena como usted, considere la posibilidad de echar un vistazo a la documentación de Audiences for OSConfig.
En este artículo se describe y muestra el uso de los módulos DeviceInformation y TPM para obtener información del dispositivo, incluido el sistema operativo, la versión, la presencia de TPM, la memoria, etc.
Sugerencia
Si está aquí para la referencia del modelo de objetos, puede omitir los ejemplos de casos de uso a la información de referencia.
Estos ejemplos pueden servir como puntos de partida para adaptarse a su entorno único.
Si usa este artículo como referencia (por ejemplo, está aquí para copiar un nombre de propiedad), no hay requisitos previos.
Si desea probar los ejemplos en sistemas dinámicos (recomendado), haga lo siguiente:
Necesitará una cuenta de Azure con un IoT Hub
En este artículo se supone que está familiarizado con IoT Hub y las herramientas relacionadas. Por ejemplo, se supone que está familiarizado con la creación de ioT Hubs y la conexión de dispositivos. Si prefiere una introducción paso a paso más prescriptiva para instalar y usar OSConfig desde cero, consulte Inicio rápido: Administración de un único dispositivo IoT virtual mediante la CLI de Azure en su lugar.
Necesitará al menos un dispositivo Linux con el agente OSConfig instalado y conectado a Azure IoT.
Para obtener más información, vea Cómo y dónde instalar el agente de OSConfig para Linux.
Usará Azure Portal o la CLI de Azure para interactuar con los dispositivos a través de la IoT Hub
Para conocer más pasos, elija su experiencia preferida:
- Asegúrese de que ha iniciado sesión en Azure Portal y puede acceder a la página Información general de la IoT Hub .
En este ejemplo, simplemente recuperamos toda la información del dispositivo disponible en estos dos espacios de nombres. Se espera que use esta información como parte de un escenario de inventario en la solución en la nube o en un escenario de diagnóstico.
Instrucciones paso a paso después de la captura de pantalla
- Vaya al gemelo OSConfig para el dispositivo que prefiera.
- En la página de la IoT Hub de Azure Portal, vaya a dispositivos Administración de dispositivos > (o Administración de dispositivos IoT Edge > si el dispositivo tiene IoT Edge instalado).
- Haga clic en el nombre del dispositivo en la lista de identificadores de dispositivo.
- En Identidades de módulo, haga clic en el identificador del módulo osconfig .
- Haga clic en Identidad de módulo gemelo.
- Desplácese para ver las
DeviceInfo
secciones yTpm
enproperties.reported
, y anote la información disponible, comocpuType
,osVersion
totalMemory
,tpmVersion
, y varias más.
Ejemplo B. Generación de un informe tabular de información de SISTEMA operativo y CPU entre dispositivos
En este ejemplo, solo se rellena el ejemplo de Bash/Cloud Shell a escala. Esto muestra el uso de IoT Hub funciones de consulta junto con la característica de la CLI de --output table
Azure. Se espera que integre estos puntos de datos en sus propios flujos de trabajo en la nube, mostrando las tablas según sea necesario para los operadores de la solución.
No aplicable. Vaya a Requisitos previos para probar los ejemplos de sistemas activos en este documento y elija "Bash/ Cloud Shell".
En este ejemplo se usará el operador GROUP BY de la consulta de Azure IoT, aplicado a través de la información de TPM expuesta por OSConfig.
No aplicable, consulte Azure Portal, a escala.
En esta sección se describen las propiedades del gemelo y los comportamientos correspondientes.
Sugerencia
En los casos en los que el punto de vista de gemelo deseado o notificado sin formato difiere del punto de vista mejorado de DTDL, el primero se da primero seguido de este último entre paréntesis.
Ruta de acceso:
properties.reported.DeviceInfo
(DeviceInfo
componente)Descripción: información para todo el dispositivo, como el nombre del sistema operativo, la versión del sistema operativo, el tipo de CPU, etc.
Miembros
Nombre Tipo Notas osName string Nombre del sistema operativo, como Ubuntu, Debian, etc. osVersion string Versión del sistema operativo, como "20.04", etc. cpuType string Identificador ISA de alto nivel, como "aarch64", "x86_64", etc. cpuVendorId string Identificador de proveedor, como "ARM", "GenuineIntel", etc. cpuModel string Identificador del procesador, como "Cortex-A72", etc. totalMemory int RAM instalada, como se ve en el sistema operativo freeMemory int RAM disponible (en la hora de inicio del servicio)¹, tal como lo ve el sistema operativo. kernelName string Nombre del kernel, como "Linux" kernelVersion string Información adicional de compilación del kernel, como "#75-Ubuntu SMP PREEMPT Fri 3 14:24:57 UTC 2022" kernelRelease string Identificador de versión de compilación del kernel, como "5.4.0-1065-raspi" productVendor string Hace referencia al contexto de proveedor del producto del dispositivo, como "Contoso Systems, Inc"; a menudo en blanco ProductName string Nombre del producto del dispositivo, como "Raspberry Pi 4 Model B Rev 1.4" productVersion string Versión del producto del dispositivo; a menudo en blanco systemCapabilities string De lshw -c system
systemConfiguration string De lshw -c system
osConfigVersion string Número de versión del agente OSConfig que representa el dispositivo ¹ La
freeMemory
propiedad fue diseñada para caracterización general del sistema, no para la supervisión dinámica. Por lo tanto, solo actualiza el valor al iniciar el servicio, evitando el gasto de CPU y red de actualizar continuamente este valor. Para la supervisión continua de la memoria libre, consulte Azure Monitor.Carga de ejemplo (como se muestra en la sección del
properties.reported
gemelo)"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" }
Ruta de acceso:
properties.reported.Tpm
(Tpm
componente)Descripción: presencia y estado del TPM expuesto al sistema operativo
Miembros
Nombre Tipo Notas tpmStatus enumeración de ints 0 (desconocido), 1 (detectado), 2 (no detectado) tpmVersion string Versión de la interfaz de TPM, por ejemplo "2.0" tpmManufacturer string Identificador, por ejemplo, "IFX". Example payload (as seen in twin's
properties.reported
section)"Tpm": { "__t": "c", "tpmStatus": 1, "tpmVersion": "2.0", "tpmManufacturer": "IFX" }
Para obtener información general sobre los escenarios y funcionalidades de OSConfig, consulte:
Para obtener ejemplos prácticos específicos, consulte: