Compartilhar via


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

Importante

A versão 1.0.3 (publicada em 28 de junho de 2022) inclui alterações interruptivas nos nomes dos membros que podem afetar os usuários existentes. Para obter mais informações, consulte: Transição de nomes de membro de PascalCase para camelCase na versão 1.0.3

Público-alvo e escopo

Este artigo foi projetado para dar suporte a pessoas que provisionam ou gerenciam dispositivos com o Azure IoT. Se isso não soar como você, considere dar uma olhada na documentação audiências para OSConfig.

Este artigo descreve e demonstra o uso dos módulos DeviceInformation e TPM para obter informações do dispositivo, incluindo sistema operacional, versão, presença do TPM, memória e muito mais.

Dica

Se você estiver aqui para a referência do modelo de objeto, poderá ignorar os exemplos de Casos de uso para as informações de referência

Exemplos de casos de uso

Esses exemplos podem servir como pontos de partida para você se adaptar ao seu ambiente exclusivo.

Pré-requisitos para experimentar os exemplos em sistemas dinâmicos

Se você estiver usando este artigo para referência (por exemplo, você está aqui para copiar um nome de propriedade), não há pré-requisitos.

Se você quiser experimentar os exemplos em sistemas dinâmicos (recomendado), então:

  1. Você precisará de uma conta do Azure com um Hub IoT

    Este artigo pressupõe alguma familiaridade com Hub IoT e ferramentas relacionadas. Por exemplo, ele pressupõe que você esteja confortável criando Hubs IoT e anexando dispositivos. Se você preferir uma introdução passo a passo mais prescritiva à instalação e ao uso do OSConfig do zero, consulte: Início Rápido: Gerenciar um único dispositivo IoT virtual usando a CLI do Azure .

  2. Você precisará de pelo menos um dispositivo Linux com o agente OSConfig instalado e conectado ao Azure IoT.

    Para obter mais informações, consulte: Como e onde instalar o agente OSConfig para Linux.

  3. Você usará o Portal do Azure ou a CLI do Azure para interagir com os dispositivos por meio do Hub IoT

    Para obter mais etapas, escolha sua experiência preferida:

  1. Verifique se você está conectado ao Portal do Azure e pode acessar a página Visão geral do Hub IoT Captura de tela mostrando Hub IoT e dispositivos no Portal do Azure

Exemplo A. Obter todas as propriedades de informações do dispositivo

Neste exemplo, simplesmente recuperamos todas as informações do dispositivo disponíveis nesses dois namespaces. Espera-se que você use essas informações como parte de um cenário de inventário em sua solução de nuvem ou em um cenário de diagnóstico.

Instruções passo a passo após a captura de tela

Navegando até o módulo gêmeo OSConfig para ver as informações do dispositivo

  1. Navegue até o gêmeo OSConfig para o dispositivo de sua escolha
    1. Na página do Hub IoT no Portal do Azure, navegue até Dispositivos Gerenciamento de Dispositivos > (ou Gerenciamento de Dispositivos > IoT Edge se o dispositivo tiver IoT Edge instalado)
    2. Clique no nome do dispositivo na lista de IDs do dispositivo
    3. Em Identidades do Módulo, clique na ID do módulo osconfig
    4. Clique em Módulo Identidade Gêmeo
  2. Role para exibir as DeviceInfo seções e Tpm em properties.reportede anote as informações disponíveis, incluindo cpuType, osVersion, totalMemory, tpmVersione várias outras.

Exemplo B. Gerar um relatório tabular de informações do sistema operacional e da CPU entre dispositivos

Para este exemplo, somente o bash/Cloud Shell, o exemplo em escala é preenchido. Isso mostra o uso Hub IoT funções de consulta junto com o recurso da CLI do --output table Azure. Espera-se que você integre esses pontos de dados em seus próprios fluxos de trabalho de nuvem, exibindo tabelas conforme necessário para seus operadores de solução.

Não aplicável. Navegue até Pré-requisitos para experimentar os exemplos em sistemas dinâmicos neste documento e escolha "Bash/Cloud Shell".

Exemplo C. Contar dispositivos com e sem TPMs

Este exemplo usará o operador GROUP BY da Consulta IoT do Azure, aplicado em informações do TPM expostas por OSConfig.

Não aplicável, consulte Portal do Azure, em escala.

Informações de referência

Descrição do modelo de objeto

Esta seção descreve as propriedades do gêmeo e os comportamentos correspondentes.

Dica

Nos casos em que o ponto de vista gêmeo sem formatação desejado/relatado difere do ponto de vista aprimorado de DTDL, o primeiro é dado primeiro seguido pelo último entre parênteses.

DeviceInfo
  • Caminho: properties.reported.DeviceInfo (DeviceInfo componente)

  • Descrição: informações de todo o dispositivo, como nome do sistema operacional, versão do sistema operacional, tipo de CPU etc.

  • Membros

    Nome Type Observações
    osName string Nome do sistema operacional, como Ubuntu, Debian etc.
    osVersion string Versão do sistema operacional, como "20.04", etc.
    cpuType string Identificador ISA de alto nível, como "aarch64", "x86_64", etc.
    cpuVendorId string Identificador de fornecedor, como "ARM", "GenuineIntel", etc.
    cpuModel string Identificador do processador, como "Cortex-A72", etc.
    totalMemory INT RAM instalada, conforme visto pelo sistema operacional
    freeMemory INT RAM disponível (na hora de início do serviço)¹, conforme visto pelo sistema operacional
    kernelName string Nome do kernel, como "Linux"
    kernelVersion string Informações adicionais de build do kernel, como "#75-Ubuntu SMP PREEMPT Fri Jun 3 14:24:57 UTC 2022"
    kernelRelease string Identificador de versão de build do kernel, como "5.4.0-1065-raspi"
    Productvendor string Refere-se ao contexto do fornecedor de produtos do dispositivo, como "Contoso Systems, Inc"; muitas vezes em branco
    productName string Nome do produto do dispositivo, como "Raspberry Pi 4 Modelo B Rev 1.4"
    productVersion string Versão do produto do dispositivo; muitas vezes em branco
    systemCapabilities string Em lshw -c system
    systemConfiguration string Em lshw -c system
    osConfigVersion string Número de versão do agente OSConfig que representa o dispositivo

    ¹ A freeMemory propriedade foi projetada para caracterização geral do sistema, não para monitoramento dinâmico. Dessa forma, ele só atualiza o valor após o início do serviço, evitando que a CPU e as despesas de rede atualizem continuamente esse valor. Para monitoramento contínuo da memória gratuita, consulte Azure Monitor.

  • Conteúdo de exemplo (como visto na seção de properties.reported gêmeos)

    "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
  • Caminho: properties.reported.Tpm (Tpm componente)

  • Descrição: presença e status do TPM expostos ao sistema operacional

  • Membros

    Nome Type Observações
    tpmStatus enumeração de ints 0 (desconhecido), 1 (detectado), 2 (não detectado)
    tpmVersion string Versão da interface TPM, por exemplo, "2.0"
    tpmManufacturer string Identificador, por exemplo, "IFX"
  • Example payload (as seen in twin's properties.reported section)

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

Próximas etapas

Para obter uma visão geral dos cenários e funcionalidades do OSConfig, consulte:

Para obter exemplos práticos específicos, consulte: