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
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
De här exemplen kan fungera som utgångspunkter för att du ska kunna anpassa dig till din unika miljö.
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:
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.
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.
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:
- Kontrollera att du är inloggad på Azure-portalen och kan komma åt IoT Hub översiktssida
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
- Navigera till OSConfig-tvillingen för valfri enhet
- Gå till > Enhetshantering enheter (eller Enhetshantering IoT Edge > om enheten har IoT Edge installerad) från IoT Hub-sidan i Azure-portalen.
- Klicka på enhetsnamnet i listan över enhets-ID:n
- Under Modulidentiteter klickar du på osconfig-modul-ID :t
- Klicka på Modulidentitetstvilling
- Rulla för att visa avsnitten
DeviceInfo
ochTpm
underproperties.reported
och notera den tillgängliga informationen, inklusivecpuType
,osVersion
,tpmVersion
totalMemory
, och flera fler.
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".
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.
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.
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" }
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" }
En översikt över OSConfig-scenarier och -funktioner finns i:
Specifika praktiska exempel finns i: