Report and inventory hardware and OS information with Azure IoT and OSConfig
Penting
Versi 1.0.3 (diterbitkan 28 Juni 2022) mencakup perubahan yang melanggar pada nama anggota yang dapat memengaruhi pengguna yang ada. Untuk informasi selengkapnya, lihat: Transisi nama anggota dari PascalCase ke camelCase dalam versi 1.0.3
Artikel ini dirancang untuk mendukung orang-orang yang menyediakan atau mengelola perangkat dengan Azure IoT. Jika itu tidak terdengar seperti Anda, pertimbangkan untuk melihat dokumentasi Audiens untuk OSConfig.
Artikel ini menjelaskan dan menunjukkan penggunaan modul DeviceInformation dan TPM untuk mendapatkan informasi perangkat termasuk sistem operasi, versi, kehadiran TPM, memori, dan banyak lagi.
Tip
Jika Anda berada di sini untuk referensi model objek, Anda dapat melewati contoh Kasus penggunaan ke informasi Referensi
Contoh-contoh ini dapat berfungsi sebagai titik awal bagi Anda untuk beradaptasi dengan lingkungan unik Anda.
Jika Anda menggunakan artikel ini untuk referensi (misalnya, Anda di sini untuk menyalin nama properti), tidak ada prasyarat.
Jika Anda ingin mencoba contoh pada sistem langsung (disarankan), maka:
Anda akan memerlukan akun Azure dengan IoT Hub
Artikel ini mengasumsikan beberapa keakraban dengan IoT Hub dan alat terkait. Misalnya, ini mengasumsikan Anda nyaman membuat IoT Hub dan melampirkan perangkat. Jika Anda lebih suka pengenalan langkah demi langkah yang lebih preskriptif untuk menginstal dan menggunakan OSConfig dari awal, lihat: Mulai cepat: Mengelola satu perangkat IoT virtual menggunakan Azure CLI sebagai gantinya.
Anda akan memerlukan setidaknya satu perangkat Linux dengan agen OSConfig yang diinstal dan terhubung ke Azure IoT.
Untuk informasi selengkapnya, lihat: Cara dan tempat menginstal agen OSConfig untuk Linux.
Anda akan menggunakan Portal Microsoft Azure atau Azure CLI untuk berinteraksi dengan perangkat melalui IoT Hub
Untuk langkah-langkah lebih lanjut, pilih pengalaman pilihan Anda:
- Pastikan Anda masuk ke Portal Microsoft Azure dan dapat mengakses halaman Gambaran Umum IoT Hub
Dalam contoh ini kita cukup mengambil semua informasi perangkat yang tersedia di dua namespace ini. Diharapkan bahwa Anda akan menggunakan informasi ini sebagai bagian dari skenario inventaris dalam solusi cloud Anda, atau dalam skenario diagnostik.
Petunjuk langkah demi langkah ikuti tangkapan layar
- Navigasi ke OSConfig twin untuk perangkat pilihan Anda
- Dari halaman IoT Hub Anda di Portal Microsoft Azure, navigasikan ke Perangkat Manajemen Perangkat > (atau Manajemen Perangkat > IoT Edge jika perangkat telah IoT Edge diinstal)
- Klik nama perangkat dalam daftar ID perangkat
- Di bawah Identitas Modul, klik ID modul osconfig
- Klik Module Identity Twin
- Gulir untuk melihat
DeviceInfo
bagian danTpm
di bawahproperties.reported
, dan catat informasi yang tersedia termasukcpuType
, ,osVersion
totalMemory
,tpmVersion
, dan beberapa lagi.
Untuk contoh ini, hanya Bash / Cloud Shell, contoh dalam skala besar yang diisi. Ini memperlihatkan penggunaan fungsi IoT Hub Query bersama dengan fitur Azure CLI--output table
. Diharapkan Anda akan mengintegrasikan titik data ini ke dalam alur kerja cloud Anda sendiri, menampilkan tabel sesuai kebutuhan untuk operator solusi Anda.
Tidak dapat diterapkan. Navigasi ke Prasyarat untuk mencoba contoh pada sistem langsung dalam dokumen ini dan pilih "Bash / Cloud Shell".
Contoh ini akan menggunakan operator GROUP BY Azure IoT Query, yang diterapkan melalui informasi TPM yang diekspos oleh OSConfig.
Tidak berlaku, lihat Portal Microsoft Azure, dalam skala besar.
Bagian ini menjelaskan properti kembar dan perilaku yang sesuai.
Tip
Dalam kasus di mana titik pandang kembar yang diinginkan/dilaporkan berbeda dari titik pandang DTDL yang ditingkatkan, yang pertama diberikan terlebih dahulu diikuti oleh yang terakhir dalam tanda kurung.
Jalur:
properties.reported.DeviceInfo
(DeviceInfo
komponen)Deskripsi: Informasi di seluruh perangkat seperti nama OS, versi OS, jenis CPU, dll.
Anggota
Nama Jenis Catatan osName string Nama OS, seperti Ubuntu, Debian, dll. osVersion string Versi OS, seperti "20.04", dll. cpuType string Pengidentifikasi ISA tingkat tinggi, seperti "aarch64", "x86_64", dll. cpuVendorId string Pengidentifikasi vendor, seperti "ARM", "GenuineIntel", dll. cpuModel string Pengidentifikasi prosesor, seperti "Cortex-A72", dll. totalMemory int RAM terinstal, seperti yang terlihat oleh OS freeMemory int RAM yang tersedia (pada waktu mulai layanan)¹, seperti yang terlihat oleh OS kernelName string Nama kernel, seperti "Linux" kernelVersion string Informasi build kernel tambahan, seperti "#75-Ubuntu SMP PREEMPT Fri Jun 3 14:24:57 UTC 2022" kernelRelease string Pengidentifikasi versi build kernel, seperti "5.4.0-1065-raspi" productVendor string Mengacu pada konteks vendor produk perangkat, seperti "Contoso Systems, Inc"; sering kosong productName string Nama produk perangkat, seperti "Raspberry Pi 4 Model B Rev 1.4" productVersion string Versi produk perangkat; sering kosong systemCapabilities string Dari lshw -c system
systemConfiguration string Dari lshw -c system
osConfigVersion string Nomor versi untuk agen OSConfig yang mewakili perangkat ¹ Properti
freeMemory
dirancang untuk karakterisasi sistem umum, bukan untuk pemantauan dinamis. Dengan demikian, ini hanya memperbarui nilai saat layanan dimulai, menghindari biaya CPU dan jaringan untuk terus memperbarui nilai ini. Untuk pemantauan memori gratis yang sedang berlangsung, lihat Azure Monitor.Contoh payload (seperti yang terlihat di bagian kembar
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" }
Jalur:
properties.reported.Tpm
(Tpm
komponen)Deskripsi: Kehadiran dan status TPM yang terekspos ke OS
Anggota
Nama Jenis Catatan tpmStatus enum ints 0 (tidak diketahui), 1 (terdeteksi), 2 (tidak terdeteksi) tpmVersion string Versi antarmuka TPM, misalnya "2.0" tpmManufacturer string Pengidentifikasi, misalnya "IFX" Example payload (as seen in twin's
properties.reported
section)"Tpm": { "__t": "c", "tpmStatus": 1, "tpmVersion": "2.0", "tpmManufacturer": "IFX" }
Untuk gambaran umum skenario dan kemampuan OSConfig, lihat:
Untuk contoh praktis tertentu, lihat: