Compartir a través de


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.

Audiencia y ámbito

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.

Ejemplos de casos de uso

Estos ejemplos pueden servir como puntos de partida para adaptarse a su entorno único.

Requisitos previos para probar los ejemplos en sistemas activos

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:

  1. 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.

  2. 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.

  3. 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:

  1. 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 Captura de pantalla que muestra IoT Hub y dispositivos desde Azure Portal.

Ejemplo A. Obtener todas las propiedades de información del dispositivo

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

Exploración al módulo gemelo OSConfig para ver la información del dispositivo

  1. Vaya al gemelo OSConfig para el dispositivo que prefiera.
    1. 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).
    2. Haga clic en el nombre del dispositivo en la lista de identificadores de dispositivo.
    3. En Identidades de módulo, haga clic en el identificador del módulo osconfig .
    4. Haga clic en Identidad de módulo gemelo.
  2. Desplácese para ver las DeviceInfo secciones y Tpm en properties.reported, y anote la información disponible, como cpuType, osVersiontotalMemory, 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".

Ejemplo C. Recuento de dispositivos con y sin TPM

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.

Información de referencia

Descripción del modelo de objetos

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.

DeviceInfo
  • 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"
    }
    
Tpm
  • 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"
    }
    

Pasos siguientes

Para obtener información general sobre los escenarios y funcionalidades de OSConfig, consulte:

Para obtener ejemplos prácticos específicos, consulte: