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

هام

يتضمن الإصدار 1.0.3 (المنشور في 28 يونيو 2022) التغييرات العاجلة على أسماء الأعضاء التي قد تؤثر على المستخدمين الحاليين. لمزيد من المعلومات، راجع: أسماء الأعضاء تنتقل من PascalCase إلى camelCase في الإصدار 1.0.3

الجمهور والنطاق

تم تصميم هذه المقالة لدعم الأشخاص الذين يقومون بتوفير الأجهزة أو إدارتها باستخدام Azure IoT. إذا كان هذا لا يبدو مثلك، ففكر في إلقاء نظرة على Audiences لوثائق OSConfig.

توضح هذه المقالة كيفية استخدام وحدات DeviceInformationوTPM للحصول على معلومات الجهاز بما في ذلك نظام التشغيلوالإصدارووجود TPMوالذاكرة والمزيد.

تلميح

إذا كنت هنا لمرجع نموذج الكائن، يمكنك تخطي أمثلة حالات الاستخدام إلى معلومات المرجع

أمثلة على حالات الاستخدام

يمكن أن تكون هذه الأمثلة بمثابة نقاط بداية للتكيف مع بيئتك الفريدة.

المتطلبات الأساسية لتجربة الأمثلة على الأنظمة المباشرة

إذا كنت تستخدم هذه المقالة كمرجع (على سبيل المثال، أنت هنا لنسخ اسم خاصية)، فلا توجد متطلبات مسبقة.

إذا كنت ترغب في تجربة الأمثلة على الأنظمة المباشرة (مستحسن)، فعندئذ:

  1. ستحتاج إلى حساب Azure مع IoT Hub

    تفترض هذه المقالة بعض الإلمام ب IoT Hub والأدوات ذات الصلة. على سبيل المثال، يفترض أنك مرتاح لإنشاء IoT Hubs وإرفاق الأجهزة. إذا كنت تفضل مقدمة أكثر توجيها خطوة بخطوة لتثبيت OSConfig واستخدامه من البداية، فراجع: التشغيل السريع: إدارة جهاز IoT ظاهري واحد باستخدام Azure CLI بدلا من ذلك.

  2. ستحتاج إلى جهاز Linux واحد على الأقل مع تثبيت عامل OSConfig وتوصيله ب Azure IoT.

    لمزيد من المعلومات، راجع: كيفية ومكان تثبيت عامل OSConfig لنظام التشغيل Linux.

  3. ستستخدم مدخل Microsoft Azure أو Azure CLI للتفاعل مع الأجهزة عبر IoT Hub

    لمزيد من الخطوات، اختر تجربتك المفضلة:

  1. تأكد من تسجيل الدخول إلى مدخل Microsoft Azure ويمكنك الوصول إلى صفحة نظرة عامة على مركز IoT لقطة شاشة تعرض IoT Hub والأجهزة من مدخل Microsoft Azure

مثال أ. الحصول على جميع خصائص معلومات الجهاز

في هذا المثال، نقوم ببساطة باسترداد جميع معلومات الجهاز المتوفرة في هاتين المساحات الاسميتين. من المتوقع أن تستخدم هذه المعلومات كجزء من سيناريو المخزون في حل السحابة الخاص بك، أو في سيناريو تشخيصي.

إرشادات خطوة بخطوة اتبع التقاط الشاشة

الاستعراض إلى وحدة OSConfig المزدوجة لمشاهدة معلومات الجهاز

  1. انتقل إلى OSConfig twin للجهاز الذي تختاره
    1. من صفحة IoT Hub في مدخل Microsoft Azure، انتقل إلى إدارة الجهاز > Devices (أو إدارة الجهاز > IoT Edge إذا كان الجهاز مثبتا عليه IoT Edge)
    2. انقر فوق اسم الجهاز في قائمة معرفات الجهاز
    3. ضمن Module Identities انقر فوق معرف الوحدة النمطية osconfig
    4. انقر فوق Module Identity Twin
  2. قم بالتمرير لعرض DeviceInfo المقطعين و Tpm ضمن properties.reported، ولاحظ المعلومات المتوفرة بما في ذلك cpuTypeو tpmVersionosVersiontotalMemoryو و و وغيرها.

مثال ب. إنشاء تقرير جدولي لمعلومات نظام التشغيل ووحدة المعالجة المركزية عبر الأجهزة

على سبيل المثال، يتم ملء مثال Bash / Cloud Shell فقط على نطاق واسع . يظهر هذا استخدام وظائف استعلام IoT Hub جنبا إلى جنب مع ميزة Azure CLI --output table . من المتوقع أن تقوم بدمج نقاط البيانات هذه في مهام سير العمل السحابية الخاصة بك، وعرض الجداول حسب الحاجة لمشغلي الحلول.

غير قابل للتطبيق. انتقل إلى المتطلبات الأساسية لتجربة الأمثلة على الأنظمة المباشرة في هذا المستند واختر "Bash / Cloud Shell".

مثال على C. حساب الأجهزة مع TPMs وبدونها

سيستفيد هذا المثال من عامل تشغيل GROUP BY لاستعلام Azure IoT، المطبق على معلومات TPM التي يعرضها OSConfig.

غير قابل للتطبيق، راجع مدخل Microsoft Azure، على نطاق واسع.

معلومات مرجعية

وصف نموذج الكائن

يصف هذا القسم الخصائص المزدوجة والسلوكيات المقابلة.

تلميح

في الحالات التي تختلف فيها نقطة النظر المزدوجة المطلوبة/المبلغ عنها العادية عن نقطة النظر المحسنة ل DTDL، يتم إعطاء الأول أولا يليه الأخير بين قوسين.

DeviceInfo
  • المسار: properties.reported.DeviceInfo (DeviceInfo مكون)

  • الوصف: معلومات على مستوى الجهاز مثل اسم نظام التشغيل وإصدار نظام التشغيل ونوع وحدة المعالجة المركزية وما إلى ذلك.

  • الأعضاء

    الاسم النوع ملاحظات
    osName سلسلة اسم نظام التشغيل، مثل Ubuntu وDebian وما إلى ذلك.
    osVersion سلسلة إصدار نظام التشغيل، مثل "20.04"، وما إلى ذلك.
    cpuType سلسلة معرف ISA عالي المستوى، مثل "aarch64" و"x86_64" وما إلى ذلك.
    cpuVendorId سلسلة معرف المورد، مثل "ARM" و"GenuineIntel"، وما إلى ذلك.
    cpuModel سلسلة معرف المعالج، مثل "Cortex-A72"، وما إلى ذلك.
    totalMemory int ذاكرة الوصول العشوائي المثبتة، كما يراه نظام التشغيل
    freeMemory int ذاكرة الوصول العشوائي المتوفرة (في وقت بدء الخدمة)¹، كما يراه نظام التشغيل
    اسم النواة سلسلة اسم Kernel، مثل "Linux"
    kernelVersion سلسلة معلومات بناء kernel إضافية، مثل "#75-Ubuntu SMP PREEMPT Fri 3 14:24:57 UTC 2022"
    kernelRelease سلسلة معرف إصدار Kernel، مثل "5.4.0-1065-raspi"
    productVendor سلسلة يشير إلى سياق مورد منتج الجهاز، مثل "Contoso Systems, Inc"؛ غالبا ما تكون فارغة
    productName سلسلة اسم منتج الجهاز، مثل "Raspberry Pi 4 Model B Rev 1.4"
    productVersion سلسلة إصدار منتج الجهاز؛ غالبا ما تكون فارغة
    قدرات النظام سلسلة من lshw -c system
    تكوين النظام سلسلة From lshw -c system
    osConfigVersion سلسلة رقم الإصدار لعامل OSConfig الذي يمثل الجهاز

    ¹ freeMemory تم تصميم الخاصية لوصف النظام العام، وليس للمراقبة الديناميكية. على هذا النحو، فإنه يقوم فقط بتحديث القيمة عند بدء الخدمة، وتجنب نفقات وحدة المعالجة المركزية والشبكة لتحديث هذه القيمة باستمرار. للمراقبة المستمرة للذاكرة الحرة، راجع Azure Monitor.

  • مثال على الحمولة (كما هو موضح في قسم التوأم 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
  • المسار: properties.reported.Tpm (Tpm مكون)

  • الوصف: وجود وحالة TPM المكشوف لنظام التشغيل

  • الأعضاء

    الاسم النوع ملاحظات
    tpmStatus عدد ال ints 0 (غير معروف)، 1 (تم الكشف عنه)، 2 (لم يتم اكتشافه)
    tpmVersion سلسلة إصدار واجهة TPM، على سبيل المثال "2.0"
    tpmManufacturer سلسلة المعرف، على سبيل المثال "IFX"
  • Example payload (as seen in twin's properties.reported section)

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

الخطوات التالية

للحصول على نظرة عامة على سيناريوهات وقدرات OSConfig، راجع:

للحصول على أمثلة عملية محددة، راجع: