Läs på engelska

Dela via


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

Viktigt

Version 1.0.3 (publicerad 28 juni 2022) innehåller icke-bakåtkompatibla ändringar av medlemsnamn som kan påverka befintliga användare. Mer information finns i: Medlemsnamn övergår från PascalCase till camelCase i version 1.0.3

Målgrupp och omfång

Den här artikeln är utformad för att stödja personer som etablerar eller hanterar enheter med Azure IoT. Om det inte låter som du kan du överväga att ta en titt på dokumentationen om Målgrupper för OSConfig.

Den här artikeln beskriver och visar hur du använder DeviceInformation - och TPM-modulerna för att hämta enhetsinformation, inklusive operativsystem, version, TPM-närvaro, minne med mera.

Tips

Om du är här för objektmodellreferensen kan du hoppa över användningsfallsexemplen till referensinformationen

Exempel på användningsfall

De här exemplen kan fungera som utgångspunkter för att du ska kunna anpassa dig till din unika miljö.

Förutsättningar för att prova exemplen på livesystem

Om du använder den här artikeln som referens (du är till exempel här för att kopiera ett egenskapsnamn) finns det inga förutsättningar.

Om du vill prova exemplen på livesystem (rekommenderas) kan du:

  1. Du behöver ett Azure-konto med en IoT Hub

    Den här artikeln förutsätter viss kunskap om IoT Hub och relaterade verktyg. Det förutsätter till exempel att du är bekväm med att skapa IoT Hubs och ansluta enheter. Om du föredrar en mer normativ stegvis introduktion till att installera och använda OSConfig från grunden kan du läsa: Snabbstart: Hantera en enda virtuell IoT-enhet med Azure CLI i stället.

  2. Du behöver minst en Linux-enhet med OSConfig-agenten installerad och ansluten till Azure IoT.

    Mer information finns i: Hur och var du installerar OSConfig-agenten för Linux.

  3. Du kommer att använda Azure-portalen eller Azure CLI för att interagera med enheterna via din IoT Hub

    Om du vill ha fler steg väljer du önskad upplevelse:

  1. Kontrollera att du är inloggad på Azure-portalen och kan komma åt IoT Hub översiktssida Skärmbild som visar IoT Hub och enheter från Azure-portalen

Exempel A. Hämta alla egenskaper för enhetsinformation

I det här exemplet hämtar vi helt enkelt all enhetsinformation som är tillgänglig i dessa två namnområden. Du förväntas använda den här informationen som en del av ett inventeringsscenario i din molnlösning eller i ett diagnostikscenario.

Stegvisa instruktioner följer skärmdumpen

Bläddra till OSConfig-modultvillingen för att se enhetsinformation

  1. Navigera till OSConfig-tvillingen för valfri enhet
    1. Gå till > Enhetshantering enheter (eller Enhetshantering IoT Edge > om enheten har IoT Edge installerad) från IoT Hub-sidan i Azure-portalen.
    2. Klicka på enhetsnamnet i listan över enhets-ID:n
    3. Under Modulidentiteter klickar du på osconfig-modul-ID :t
    4. Klicka på Modulidentitetstvilling
  2. Rulla för att visa avsnitten DeviceInfo och Tpm under properties.reportedoch notera den tillgängliga informationen, inklusive cpuType, osVersion, tpmVersiontotalMemory, och flera fler.

Exempel B. Generera en tabellrapport med OS- och CPU-information mellan enheter

I det här exemplet fylls endast Bash/Cloud Shell i exemplet i stor skala. Detta visar hur du använder IoT Hub Query-funktioner tillsammans med Azure CLI:s --output table funktion. Du förväntas integrera dessa datapunkter i dina egna molnarbetsflöden och visa tabeller efter behov för dina lösningsoperatorer.

Inte tillämpligt. Gå till Förutsättningar för att prova exemplen på livesystem i det här dokumentet och välj "Bash/Cloud Shell".

Exempel C. Räkna enheter med och utan TPM:er

Det här exemplet använder Azure IoT Querys GROUP BY-operator, tillämpad över TPM-information som exponeras av OSConfig.

Ej tillämpligt finns i Azure-portalen i stor skala.

Referensinformation

Beskrivning av objektmodell

Det här avsnittet beskriver tvillingegenskaperna och motsvarande beteenden.

Tips

I de fall där den oformaterade önskade/rapporterade tvillingens synvinkel skiljer sig från DTDL-förbättrad synvinkel ges den förstnämnda först följt av den senare inom parentes.

DeviceInfo
  • Sökväg: properties.reported.DeviceInfo (DeviceInfo komponent)

  • Beskrivning: Information om hela enheten, till exempel operativsystemnamn, operativsystemversion, CPU-typ osv.

  • Medlemmar

    Namn Typ Kommentarer
    osName sträng Operativsystemnamn, som Ubuntu, Debian osv.
    osVersion sträng Operativsystemversion, till exempel "20.04", osv.
    cpuType sträng ISA-identifierare på hög nivå, till exempel "aarch64", "x86_64" osv.
    cpuVendorId sträng Leverantörsidentifierare, till exempel "ARM", "GenuineIntel" osv.
    cpuModel sträng Processoridentifierare, till exempel "Cortex-A72", osv.
    totalMemory int Installerat RAM-minne, vilket ses av operativsystemet
    freeMemory int Tillgängligt RAM-minne (vid starttid för tjänsten)¹, vilket visas av operativsystemet
    kernelName sträng Kernelnamn, till exempel "Linux"
    kernelVersion sträng Ytterligare kernel build-information, till exempel "#75-Ubuntu SMP PREEMPT Fri Jun 3 14:24:57 UTC 2022"
    kernelRelease sträng Kernel build version identifier, som "5.4.0-1065-raspi"
    productVendor sträng Refererar till enhetens produktleverantörskontext, till exempel "Contoso Systems, Inc"; ofta tom
    Productname sträng Enhetens produktnamn, till exempel "Raspberry Pi 4 Model B Rev 1.4"
    productVersion sträng Enhetsproduktversion; ofta tom
    systemCapabilities sträng Från lshw -c system
    systemConfiguration sträng Från lshw -c system
    osConfigVersion sträng Versionsnummer för OSConfig-agenten som representerar enheten

    ¹ Egenskapen freeMemory har utformats för allmän systemkaraktärisering, inte för dynamisk övervakning. Därför uppdateras bara värdet vid tjänststart, vilket undviker cpu- och nätverkskostnaden för att kontinuerligt uppdatera det här värdet. Löpande övervakning av ledigt minne finns i Azure Monitor.

  • Exempelnyttolast (som du ser i tvillingavsnittet 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"
    }
    
Tpm
  • Sökväg: properties.reported.Tpm (Tpm komponent)

  • Beskrivning: Närvaro och status för TPM som exponeras för operativsystemet

  • Medlemmar

    Namn Typ Kommentarer
    tpmStatus uppräkning av ints 0 (okänd), 1 (identifierad), 2 (identifieras inte)
    tpmVersion sträng TPM-gränssnittsversion, till exempel "2.0"
    tpmManufacturer sträng Identifierare, till exempel "IFX"
  • Example payload (as seen in twin's properties.reported section)

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

Nästa steg

En översikt över OSConfig-scenarier och -funktioner finns i:

Specifika praktiska exempel finns i: