다음을 통해 공유


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

중요

버전 1.0.3(2022년 6월 28일 게시됨)에는 기존 사용자에게 영향을 미칠 수 있는 멤버 이름에 대한 호환성이 손상되는 변경 내용이 포함되어 있습니다. 자세한 내용은 버전 1.0.3에서 멤버 이름이 PascalCase에서 camelCase로 전환됨을 참조하세요.

대상 그룹 및 범위

이 문서는 Azure IoT를 사용하여 디바이스를 프로비전하거나 관리하는 사용자를 지원하도록 설계되었습니다. 그렇지 않은 경우 OSConfig용 대상 그룹 설명서를 살펴보는 것이 좋습니다.

이 문서에서는 DeviceInformationTPM 모듈을 사용하여 운영 체제, 버전, TPM 현재 상태, 메모리 등을 포함한 디바이스 정보를 가져오는 방법을 설명하고 보여 줍니다.

개체 모델 참조를 위해 여기 있는 경우 사용 사례 예제참조 정보로 건너뛸 수 있습니다.

사용 사례 예제

이러한 예제는 고유한 환경에 맞게 조정하기 위한 시작점 역할을 할 수 있습니다.

라이브 시스템에서 예제를 시도하기 위한 필수 구성 요소

이 문서를 참조용으로 사용하는 경우(예: 속성 이름을 복사하려면 여기에 있음) 필수 구성 요소가 없습니다.

라이브 시스템에서 예제를 시도하려는 경우(권장) 다음을 수행합니다.

  1. IoT Hub Azure 계정이 필요합니다.

    이 문서에서는 IoT Hub 및 관련 도구에 대해 잘 알고 있다고 가정합니다. 예를 들어 IoT Hub를 만들고 디바이스를 연결하는 것이 편하다고 가정합니다. OSConfig를 처음부터 설치하고 사용하는 방법에 대한 보다 규범적인 단계별 소개를 선호하는 경우 빠른 시작: 대신 Azure CLI를 사용하여 단일 가상 IoT 디바이스 관리를 참조하세요.

  2. OSConfig 에이전트가 설치되고 Azure IoT에 연결된 Linux 디바이스가 하나 이상 필요합니다.

    자세한 내용은 Linux용 OSConfig 에이전트를 설치하는 방법 및 위치를 참조하세요.

  3. Azure Portal 또는 Azure CLI를 사용하여 IoT Hub 통해 디바이스와 상호 작용합니다.

    추가 단계를 보려면 원하는 환경을 선택합니다.

  1. Azure Portal에 로그인하고 Azure Portal에서 IoT Hub 및 디바이스를 보여 주는 IoT Hub 개요 페이지 스크린샷에 액세스할 수 있는지 확인합니다.

예제 A. 모든 디바이스 정보 속성 가져오기

이 예제에서는 이 두 네임스페이스에서 사용할 수 있는 모든 디바이스 정보를 검색하기만 하면 됩니다. 이 정보는 클라우드 솔루션의 인벤토리 시나리오 또는 진단 시나리오의 일부로 사용할 것으로 예상됩니다.

단계별 지침은 화면 캡처를 따릅니다.

OSConfig 모듈 쌍으로 이동하여 디바이스 정보 보기

  1. 선택한 디바이스에 대한 OSConfig 쌍으로 이동합니다.
    1. Azure Portal의 IoT Hub 페이지에서 장치 관리 > 디바이스로 이동합니다(또는 디바이스가 IoT Edge > 설치된 경우 IoT Edge 장치 관리).
    2. 디바이스 ID 목록에서 디바이스 이름을 클릭합니다.
    3. 모듈 ID에서 osconfig 모듈 ID를 클릭합니다.
    4. 모듈 ID 쌍을 클릭합니다.
  2. 스크롤하여 에서 및 섹션을 DeviceInfo 보고 , , osVersion, totalMemorytpmVersion, 등을 비롯한 cpuType사용 가능한 정보를 확인합니다.Tpmproperties.reported

예제 B. 여러 디바이스에서 OS 및 CPU 정보에 대한 테이블 형식 보고서 생성

이 예제에서는 Bash/Cloud Shell 대규모 예제만 채워집니다. Azure CLI의 기능과 함께 IoT Hub 쿼리 함수를 사용하는 방법을 --output table 보여 줍니다. 이러한 데이터 요소를 고유한 클라우드 워크플로에 통합하여 솔루션 운영자에게 필요에 따라 테이블을 표시할 것으로 예상됩니다.

해당 사항 없음 필수 구성 요소로 이동하여 이 문서의 라이브 시스템에 대한 예제를 시도하고 "Bash/Cloud Shell"를 선택합니다.

예제 C. TPM을 사용 또는 사용하지 않는 디바이스 수

이 예제에서는 OSConfig에서 노출하는 TPM 정보를 통해 적용된 Azure IoT 쿼리의 GROUP BY 연산자를 사용합니다.

해당 없음은 대규모 Azure Portal을 참조하세요.

참조 정보

개체 모델 설명

이 섹션에서는 쌍 속성 및 해당 동작에 대해 설명합니다.

일반 원하는/보고된 트윈 관점이 DTDL 향상된 관점과 다른 경우 전자는 먼저 제공되고 후자는 괄호로 표시됩니다.

DeviceInfo
  • 경로: properties.reported.DeviceInfo (DeviceInfo 구성 요소)

  • 설명: OS 이름, OS 버전, CPU 유형 등과 같은 디바이스 전체 정보입니다.

  • 멤버

    이름 형식 참고
    osName 문자열 OS 이름(예: Ubuntu, Debian 등)
    osVersion 문자열 OS 버전(예: "20.04") 등
    cpuType 문자열 "aarch64", "x86_64" 등과 같은 높은 수준의 ISA 식별자입니다.
    cpuVendorId 문자열 공급업체 식별자(예: "ARM", "GenuineIntel" 등)
    cpuModel 문자열 프로세서 식별자(예: "Cortex-A72" 등)
    totalMemory int OS에서 볼 수 있듯이 설치된 RAM
    freeMemory int OS에서 볼 수 있는 사용 가능한 RAM(서비스 시작 시간)을 참조하세요.
    kernelName 문자열 커널 이름(예: "Linux"
    kernelVersion 문자열 "#75-Ubuntu SMP PREEMPT Fri Jun 3 14:24:57 UTC 2022"와 같은 추가 커널 빌드 정보
    kernelRelease 문자열 커널 빌드 버전 식별자(예: "5.4.0-1065-raspi"
    productVendor 문자열 "Contoso Systems, Inc"와 같은 디바이스의 제품 공급업체 컨텍스트를 참조합니다. 종종 비어 있습니다.
    productName 문자열 "Raspberry Pi 4 모델 B Rev 1.4"와 같은 디바이스 제품 이름
    productVersion 문자열 디바이스 제품 버전; 종종 비어 있습니다.
    systemCapabilities 문자열 lshw -c system에서
    systemConfiguration 문자열 lshw -c system에서
    osConfigVersion 문자열 디바이스를 나타내는 OSConfig 에이전트의 버전 번호

    1 속성은 freeMemory 동적 모니터링이 아닌 일반 시스템 특성화를 위해 설계되었습니다. 따라서 서비스 시작 시 값만 업데이트하므로 이 값을 지속적으로 업데이트하는 데 드는 CPU 및 네트워크 비용을 방지할 수 있습니다. 사용 가능한 메모리에 대한 지속적인 모니터링은 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 구성 요소)

  • 설명: OS에 노출되는 TPM의 현재 상태 및 상태

  • 멤버

    이름 형식 참고
    tpmStatus int의 열거형 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 시나리오 및 기능에 대한 개요는 다음을 참조하세요.

구체적인 실제 예제는 다음을 참조하세요.