Report and inventory hardware and OS information with Azure IoT and OSConfig

Importante

La versione 1.0.3 (pubblicata il 28 giugno 2022) include modifiche di rilievo ai nomi dei membri che potrebbero influire sugli utenti esistenti. Per altre informazioni, vedere: I nomi dei membri passano da PascalCase a camelCase nella versione 1.0.3

Destinatari e ambito

Questo articolo è progettato per supportare gli utenti che effettuano il provisioning o la gestione dei dispositivi con Azure IoT. Se questo non è simile a te, prendi in considerazione l'argomento Destinatari per la documentazione di OSConfig.

Questo articolo descrive e illustra l'uso dei moduli DeviceInformation e TPM per ottenere informazioni sul dispositivo, tra cui sistema operativo, versione, presenza TPM, memoria e altro ancora.

Suggerimento

Se si è qui per il riferimento al modello a oggetti, è possibile ignorare gli esempi casi d'uso alle informazioni di riferimento

Esempi di casi d'uso

Questi esempi possono fungere da punti di partenza per adattarsi all'ambiente unico.

Prerequisiti per provare gli esempi nei sistemi live

Se si usa questo articolo per riferimento (ad esempio, si è qui per copiare un nome di proprietà), non sono necessari prerequisiti.

Se si vogliono provare gli esempi nei sistemi live (scelta consigliata), procedere come segue:

  1. È necessario un account Azure con un hub IoT

    Questo articolo presuppone una certa familiarità con hub IoT e gli strumenti correlati. Si supponga, ad esempio, di avere familiarità con la creazione di hub IoT e il collegamento di dispositivi. Se si preferisce un'introduzione più dettagliata all'installazione e all'uso di OSConfig da zero, vedere Guida introduttiva: Gestire un singolo dispositivo IoT virtuale usando l'interfaccia della riga di comando di Azure.

  2. Sarà necessario almeno un dispositivo Linux con l'agente OSConfig installato e connesso ad Azure IoT.

    Per altre informazioni, vedere How and where to install the OSConfig agent for Linux (Come e dove installare l'agente OSConfig per Linux).

  3. Si userà il portale di Azure o l'interfaccia della riga di comando di Azure per interagire con i dispositivi tramite il hub IoT

    Per altri passaggi, scegliere l'esperienza preferita:

  1. Assicurarsi di aver eseguito l'accesso al portale di Azure e di accedere alla pagina Panoramica del hub IoT Screenshot che mostra hub IoT e dispositivi dal portale di Azure

Esempio A. Ottenere tutte le proprietà delle informazioni sul dispositivo

In questo esempio si recuperano semplicemente tutte le informazioni sul dispositivo disponibili in questi due spazi dei nomi. È previsto che queste informazioni vengano usate come parte di uno scenario di inventario nella soluzione cloud o in uno scenario di diagnostica.

Istruzioni dettagliate seguono l'acquisizione dello schermo

Esplorazione del modulo gemello OSConfig per visualizzare le informazioni sul dispositivo

  1. Passare al gemello OSConfig per il dispositivo preferito
    1. Dalla pagina del hub IoT nel portale di Azure passare a Dispositivi Gestione dispositivi > (o Gestione dispositivi IoT Edge > se il dispositivo è installato IoT Edge)
    2. Fare clic sul nome del dispositivo nell'elenco degli ID dispositivo
    3. In Identità del modulo fare clic sull'ID del modulo osconfig
    4. Fare clic su Module Identity Twin (Identità modulo gemello)
  2. Scorrere per visualizzare le DeviceInfo sezioni e Tpm in properties.reportede prendere nota delle informazioni disponibili, tra cui cpuType, , osVersiontotalMemorytpmVersion, e diverse altre.

Esempio B. Generare un report tabulare delle informazioni sul sistema operativo e sulla CPU tra i dispositivi

Per questo esempio, viene popolato solo l'esempio Bash/Cloud Shell su larga scala. Viene illustrato l'uso delle funzioni di query hub IoT insieme alla funzionalità dell'interfaccia della riga di comando di --output table Azure. Si prevede di integrare questi punti dati nei propri flussi di lavoro cloud, visualizzando le tabelle in base alle esigenze degli operatori della soluzione.

Non applicabile. Passare a Prerequisiti per provare gli esempi nei sistemi live in questo documento e scegliere "Bash/Cloud Shell".

Esempio C. Contare i dispositivi con e senza TPM

Questo esempio userà l'operatore GROUP BY di Azure IoT Query applicato sulle informazioni TPM esposte da OSConfig.

Non applicabile, vedere Portale di Azure su larga scala.

Informazioni di riferimento

Descrizione del modello a oggetti

In questa sezione vengono descritte le proprietà dei dispositivi gemelli e i comportamenti corrispondenti.

Suggerimento

Nei casi in cui il punto di vista del gemello desiderato/segnalato normale differisce dal punto di vista avanzato DTDL, il primo viene dato in precedenza seguito da quest'ultimo tra parentesi.

DeviceInfo
  • Percorso: properties.reported.DeviceInfo (DeviceInfo componente)

  • Descrizione: informazioni a livello di dispositivo, ad esempio nome del sistema operativo, versione del sistema operativo, tipo di CPU e così via.

  • Members

    Nome Type Note
    osName string Nome del sistema operativo, ad esempio Ubuntu, Debian e così via.
    osVersion string Versione del sistema operativo, ad esempio "20.04" e così via.
    cpuType string Identificatore ISA di alto livello, ad esempio "aarch64", "x86_64" e così via.
    cpuVendorId string Identificatore del fornitore, ad esempio "ARM", "GenuineIntel" e così via.
    cpuModel string Identificatore del processore, ad esempio "Cortex-A72" e così via.
    totalMemory INT RAM installata, come illustrato dal sistema operativo
    freeMemory INT RAM disponibile (all'ora di inizio del servizio)¹, come illustrato dal sistema operativo
    kernelName string Nome del kernel, ad esempio "Linux"
    kernelVersion string Informazioni aggiuntive sulla compilazione del kernel, ad esempio "#75-Ubuntu SMP PREEMPT Fri 3 14:24:57 UTC 2022"
    kernelRelease string Identificatore della versione di compilazione del kernel, ad esempio "5.4.0-1065-raspi"
    productVendor string Fa riferimento al contesto del fornitore del prodotto del dispositivo, ad esempio "Contoso Systems, Inc"; spesso vuoto
    productName string Nome del prodotto del dispositivo, ad esempio "Raspberry Pi 4 Model B Rev 1.4"
    productVersion string Versione del prodotto del dispositivo; spesso vuoto
    systemCapabilities string Da lshw -c system
    systemConfiguration string Da lshw -c system
    osConfigVersion string Numero di versione per l'agente OSConfig che rappresenta il dispositivo

    ¹ La freeMemory proprietà è stata progettata per la caratterizzazione generale del sistema, non per il monitoraggio dinamico. Di conseguenza, aggiorna solo il valore all'avvio del servizio, evitando le spese di CPU e rete di aggiornare continuamente questo valore. Per il monitoraggio continuo della memoria libera, vedere Monitoraggio di Azure.

  • Payload di esempio (come illustrato nella sezione del properties.reported gemello)

    "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
  • Percorso: properties.reported.Tpm (Tpm componente)

  • Descrizione: Presenza e stato di TPM esposti al sistema operativo

  • Members

    Nome Type Note
    tpmStatus enumerazione di ints 0 (sconosciuto), 1 (rilevato), 2 (non rilevato)
    tpmVersion string Versione dell'interfaccia TPM, ad esempio "2.0"
    tpmManufacturer string Identificatore, ad esempio "IFX"
  • Example payload (as seen in twin's properties.reported section)

    "Tpm": {
         "__t": "c",
         "tpmStatus": 1,
         "tpmVersion": "2.0",
         "tpmManufacturer": "IFX"
    }
    

Passaggi successivi

Per una panoramica degli scenari e delle funzionalità osConfig, vedere:

Per esempi pratici specifici, vedere: