Delen via


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

Belangrijk

Versie 1.0.3 (gepubliceerd op 28 juni 2022) bevat wijzigingen die fouten veroorzaken in ledennamen die van invloed kunnen zijn op bestaande gebruikers. Zie voor meer informatie: Ledennamen overstappen van PascalCase naar camelCase in versie 1.0.3

Doelgroep en bereik

Dit artikel is bedoeld ter ondersteuning van personen die apparaten inrichten of beheren met Azure IoT. Als dat niet zo klinkt, kunt u overwegen om de documentatie voor Doelgroepen voor OSConfig te bekijken.

Dit artikel beschrijft en demonstreert het gebruik van de modules DeviceInformation en TPM om apparaatgegevens op te halen, waaronder besturingssysteem, versie, TPM-aanwezigheid, geheugen en meer.

Tip

Als u hier bent voor de referentie voor het objectmodel, kunt u de Use Cases-voorbeelden overslaan naar de Referentie-informatie

Voorbeelden van gebruiksvoorbeelden

Deze voorbeelden kunnen als uitgangspunt dienen om u aan te passen aan uw unieke omgeving.

Vereisten voor het uitproberen van de voorbeelden op live systemen

Als u dit artikel ter referentie gebruikt (u bent bijvoorbeeld hier om de naam van een eigenschap te kopiëren), zijn er geen vereisten.

Als u de voorbeelden op live systemen wilt uitproberen (aanbevolen), gaat u als volgt te werk:

  1. U hebt een Azure-account met een IoT Hub

    In dit artikel wordt ervan uitgegaan dat u bekend bent met IoT Hub en verwante hulpprogramma's. Er wordt bijvoorbeeld van uitgegaan dat u vertrouwd bent met het maken van IoT Hubs en het koppelen van apparaten. Als u liever een meer beschrijvende stapsgewijze inleiding tot het volledig installeren en gebruiken van OSConfig, raadpleegt u: Quickstart: In plaats daarvan één virtueel IoT-apparaat beheren met behulp van Azure CLI .

  2. U hebt ten minste één Linux-apparaat nodig waarop de OSConfig-agent is geïnstalleerd en is verbonden met Azure IoT.

    Zie De OSConfig-agent voor Linux installeren voor meer informatie.

  3. U gebruikt Azure Portal of Azure CLI om met de apparaten te communiceren via uw IoT Hub

    Kies voor verdere stappen de gewenste ervaring:

  1. Zorg ervoor dat u bent aangemeld bij Azure Portal en dat u toegang hebt tot de overzichtspagina van uw IoT Hub Schermopname van IoT Hub en apparaten vanuit de Azure-portal

Voorbeeld A. Alle eigenschappen van apparaatgegevens ophalen

In dit voorbeeld halen we gewoon alle apparaatgegevens op die beschikbaar zijn in deze twee naamruimten. Het wordt verwacht dat u deze informatie gebruikt als onderdeel van een inventarisscenario in uw cloudoplossing of in een diagnostisch scenario.

Stapsgewijze instructies voor het volgen van de schermopname

Bladeren naar OSConfig-moduledubbel om apparaatgegevens te bekijken

  1. Navigeer naar de OSConfig-dubbel voor het apparaat van uw keuze
    1. Ga op de pagina van uw IoT Hub in Azure Portal naar Apparaatbeheer > Apparaten (of Apparaatbeheer > IoT Edge als het apparaat IoT Edge is geïnstalleerd)
    2. Klik op de apparaatnaam in de lijst met apparaat-id's
    3. Klik onder Module-identiteiten op de osconfig-module-id
    4. Klik op Module Identity Twin
  2. Schuif naar de DeviceInfo secties en Tpm onder properties.reporteden bekijk de beschikbare informatie, waaronder cpuType, osVersion, totalMemorytpmVersion, en meer.

Voorbeeld B. Een rapport in tabelvorm genereren met besturingssysteem- en CPU-gegevens op verschillende apparaten

Voor dit voorbeeld wordt alleen het voorbeeld Bash/Cloud Shell, op schaal ingevuld. Dit toont het gebruik van IoT Hub Query-functies samen met de functie van --output table Azure CLI. Het wordt verwacht dat u deze gegevenspunten integreert in uw eigen cloudwerkstromen, waarbij tabellen naar behoefte worden weergegeven voor uw oplossingsoperators.

Niet van toepassing. Navigeer naar Vereisten om de voorbeelden op live systemen in dit document uit te proberen en kies 'Bash/Cloud Shell'.

Voorbeeld C. Apparaten met en zonder TTPM's tellen

In dit voorbeeld wordt gebruikgemaakt van de GROUP BY-operator van Azure IoT Query, toegepast op TPM-informatie die door OSConfig wordt weergegeven.

Niet van toepassing, zie Azure Portal, op schaal.

Referentiegegevens

Beschrijving van objectmodel

In deze sectie worden de eigenschappen van de tweeling en het bijbehorende gedrag beschreven.

Tip

In gevallen waarin het gewenste/gerapporteerde dubbelpunt verschilt van het verbeterde punt van DTDL, wordt het eerste punt eerst weergegeven, gevolgd door het laatste tussen haakjes.

DeviceInfo
  • Pad: properties.reported.DeviceInfo (DeviceInfo onderdeel)

  • Beschrijving: informatie voor het hele apparaat, zoals de naam van het besturingssysteem, de versie van het besturingssysteem, het CPU-type, enzovoort.

  • Leden

    Naam Type Opmerkingen
    osName tekenreeks Naam van het besturingssysteem, zoals Ubuntu, Debian, enzovoort.
    osVersion tekenreeks Versie van het besturingssysteem, zoals '20.04', enzovoort.
    cpuType tekenreeks ISA-id op hoog niveau, zoals 'aarch64', 'x86_64', enzovoort.
    cpuVendorId tekenreeks Leverancier-id, zoals 'ARM', 'GenuineIntel', enzovoort.
    cpuModel tekenreeks Processor-id, zoals Cortex-A72, enzovoort.
    totalMemory int Geïnstalleerd RAM-geheugen, zoals gezien door het besturingssysteem
    freeMemory int Beschikbaar RAM-geheugen (op het begintijd van de service)¹, zoals gezien door het besturingssysteem
    kernelName tekenreeks Kernelnaam, zoals 'Linux'
    kernelVersion tekenreeks Aanvullende informatie over kernelbuild, zoals "#75-Ubuntu SMP PREEMPT fri 3 juni 14:24:57 UTC 2022"
    kernelRelease tekenreeks Kernel build versie-id, zoals "5.4.0-1065-raspi"
    productVendor tekenreeks Verwijst naar de context van de productleverancier van het apparaat, zoals 'Contoso Systems, Inc'; vaak leeg
    Productnaam tekenreeks Productnaam van het apparaat, zoals 'Raspberry Pi 4 Model B Rev 1.4'
    productVersion tekenreeks Productversie van apparaat; vaak leeg
    systemCapabilities tekenreeks Vanaf lshw -c system
    systemConfiguration tekenreeks Vanaf lshw -c system
    osConfigVersion tekenreeks Versienummer voor de OSConfig-agent die het apparaat vertegenwoordigt

    ¹ De freeMemory eigenschap is ontworpen voor algemene systeemaanduiding, niet voor dynamische bewaking. Als zodanig wordt alleen de waarde bijgewerkt bij het starten van de service, waardoor de CPU- en netwerkkosten van het voortdurend bijwerken van deze waarde worden vermeden. Zie Azure Monitor voor doorlopende bewaking van het vrije geheugen.

  • Voorbeeld van nettolading (zoals te zien in de sectie van de properties.reported tweeling)

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

  • Beschrijving: aanwezigheid en status van TPM die beschikbaar zijn voor het besturingssysteem

  • Leden

    Naam Type Opmerkingen
    tpmStatus enum van ints 0 (onbekend), 1 (gedetecteerd), 2 (niet gedetecteerd)
    tpmVersion tekenreeks TPM-interfaceversie, bijvoorbeeld '2.0'
    tpmManufacturer tekenreeks Id, bijvoorbeeld 'IFX'
  • Example payload (as seen in twin's properties.reported section)

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

Volgende stappen

Zie voor een overzicht van OSConfig-scenario's en -mogelijkheden:

Zie voor specifieke praktijkvoorbeelden: