A tecnologia WMI (Instrumentação de Gerenciamento do Windows) é a implementação da Microsoft da iniciativa WBEM (Gerenciamento de Empresas pela Web) da DMTF (Distributed Management Task Force), que estende o CIM (Modelo de Informação Comum) para representar objetos de gerenciamento em ambientes de gerenciamento baseados em Windows. O Modelo de Informação Comum, também um padrão DMTF, é um modelo de dados extensível para organização lógica de objetos de gerenciamento de forma consistente e unificada em um ambiente gerenciado.

Baseada no Modelo de Informação Comum, a iniciativa WBEM é uma tecnologia da DMTF que estabelece padrões de infraestrutura de gerenciamento e oferece uma maneira padronizada de acesso a informações de diversos sistemas de gerenciamento de hardware e software em um ambiente empresarial. Usando padrões da iniciativa WBEM, os desenvolvedores podem criar ferramentas e tecnologias que reduzem a complexidade e os custos do gerenciamento empresarial. Fornecendo tais padrões, a iniciativa WBEM contribui com os esforços de toda a indústria de reduzir o custo total de propriedade (TCO). O TCO refere-se aos custos administrativos associados à compra, implementação e configuração de hardware e software, atualizações de hardware e software, treinamento, manutenção e suporte técnico.

A iniciativa WBEM proporciona um ponto de integração pelo qual os dados das fontes de gerenciamento podem ser acessados e complementa e estende os protocolos e a instrumentação de gerenciamento existentes como os protocolos SNMP e CMIP e a interface de gerenciamento da área de trabalho (DMI).

Tecnologia de instrumentação de gerenciamento do Windows

A tecnologia de instrumentação de gerenciamento do Windows (WMI) é uma infraestrutura de gerenciamento que oferece suporte à sintaxe CIM, MOF (Managed Object Format) e a uma interface de programação comum. A sintaxe MOF define a estrutura e o conteúdo do esquema CIM em uma forma que pode ser lida pelo homem e pela máquina. A Instrumentação de Gerenciamento do Windows oferece um conjunto eficiente de serviços, incluindo recuperação de informações com base em consulta e notificação de evento. Esses serviços e os dados de gerenciamento são acessados por meio de uma interface de programação COM (Modelo de Objeto Componente). A interface de script WMI também oferece suporte a scripts.

A tecnologia WMI oferece:

  • Acesso para monitorar, comandar e controlar qualquer objeto gerenciado por meio de um conjunto comum e unificado de interfaces, independentemente do mecanismo de instrumentação suportado. A WMI é um mecanismo de acesso.

  • Um modelo consistente de operação, configuração e status do sistema operacional Windows.

  • Uma API (interface de programação de aplicativo) COM que oferece um único ponto de acesso a todas as informações de gerenciamento.

  • Interoperabilidade com outros serviços de gerenciamento do Windows. Essa abordagem pode simplificar o processo de criação de soluções de gerenciamento integradas e bem planejadas.

  • Uma arquitetura flexível e extensível. Os desenvolvedores podem estender o modelo de informação para abranger novos dispositivos, aplicativos, etc., escrevendo módulos de códigos denominados provedores de WMI.

  • Extensões para o WDM (Windows Driver Model) para capturar dados de instrumentação e eventos de drivers de dispositivo e componentes do kernel.

  • Uma arquitetura de evento potente. Isso possibilita que as alterações nas informações de gerenciamento sejam identificadas, agregadas, comparadas e associadas a outras informações de gerenciamento. Essas alterações também podem ser encaminhadas a aplicativos de gerenciamento local ou remoto.

  • Uma linguagem de consulta eficiente que possibilita consultas detalhadas do modelo de informação.

  • Uma API programável que os desenvolvedores podem usar para criar aplicativos de gerenciamento. A API de script oferece suporte a diversas linguagens, incluindo Microsoft Visual Basic; Visual Basic for Applications (VBA); Visual Basic, Scripting Edition (VBScript); software de desenvolvimento Microsoft JScript. Além de VBScript e JScript, os desenvolvedores podem usar qualquer implementação de linguagem de script que ofereça suporte às tecnologias de script do ActiveX da Microsoft com essa API (por exemplo, um mecanismo de script Perl). Você também pode usar o Host de scripts do Windows (WSH) ou o Microsoft Internet Explorer para escrever scripts usando essa interface. O Host de scripts do Windows, assim como o Internet Explorer, funciona como um mecanismo controlador dos mecanismos de script do ActiveX. O Host de scripts do Windows oferece suporte a scripts escritos em VBScript e JScript.

Visão geral da arquitetura de WMI

A arquitetura da tecnologia WMI consiste em:

  • Uma infraestrutura de gerenciamento: inclui o Gerenciador de Objetos CIM, que oferece aos aplicativos acesso padronizado aos dados de gerenciamento e uma área de armazenamento central dos dados de gerenciamento denominada repositório Gerenciador de Objetos CIM.

  • Provedores WMI: funcionam como intermediários entre o Gerenciador de Objetos CIM e os objetos gerenciados. Usando as APIs WMI, os provedores fornecem ao Gerenciador de Objetos CIM dados dos objetos gerenciados, gerenciam solicitações em nome dos aplicativos de gerenciamento e geram notificações de eventos.

A infraestrutura de gerenciamento consiste no Gerenciador de Objetos CIM e no repositório Gerenciador de Objetos CIM. Os aplicativos dependem do Gerenciador de Objetos para lidar com a interface entre os aplicativos de gerenciamento e os provedores de dados. A WMI facilita essas comunicações fornecendo uma interface de programação comum com os serviços de gerenciamento do Windows usando COM. Essa API COM oferece serviços de notificação de evento e processamento de consultas e pode ser usada em diversos ambientes de linguagem de programação como C e C++. O repositório Gerenciador de Objetos CIM armazena o CIM e os esquemas de extensão e as informações de dados ou detalhes da fonte de dados. O Gerenciador de Objetos CIM usa os dados do esquema desse repositório ao atender às solicitações dos aplicativos de gerenciamento para os objetos gerenciados.

Objetos gerenciados são componentes empresariais físicos ou lógicos que são modelados usando CIM. Por exemplo, um objeto gerenciado pode ser um item de hardware como um cabo ou um item de software como um aplicativo de banco de dados. Os aplicativos de gerenciamento podem acessar os objetos gerenciados por meio do Gerenciador de Objetos CIM.

Aplicativos de gerenciamento são aplicativos ou serviços do Windows que usam ou processam informações provenientes de objetos gerenciados. Os aplicativos de gerenciamento podem acessar informações dos objetos gerenciados fazendo uma solicitação ao Gerenciador de Objetos CIM por meio de um dos métodos na API WMI.

Provedores WMI são servidores COM e DCOM padrão que funcionam como mediadores entre os objetos gerenciados e o Gerenciador de Objetos CIM. Se o Gerenciador de Objetos CIM receber uma solicitação de um aplicativo de gerenciamento referente a dados que não estejam mais disponíveis no repositório Gerenciador de Objetos CIM ou notificações de evento que não sejam suportadas pelo Gerenciador de Objetos CIM, ele encaminhará a solicitação a um provedor WMI. Os provedores fornecem dados e notificações de eventos para os objetos gerenciados que são específicos aos seus domínios.

Para implementar um provedor, use um destes tipos de servidor suportados:

• Serviços do Microsoft Windows 2008 services, locais ou remotos.

• Executáveis padrão (arquivos .exe), locais ou remotos.

• DLLs (Bibliotecas de vínculo dinâmico) em processo.

Observe que os serviços locais ou remotos do Windows 2008 e os executáveis padrão são tipos de servidor recomendados.

A tecnologia WMI possui provedores internos (ou provedores padrão) que fornecem dados de fontes como o registro do sistema. Os provedores internos incluem:

  • Provedor do Active Directory: funciona como um gateway para todas as informações armazenadas no serviço do Active Directory. Permite que informações tanto da WMI quanto do Active Directory sejam acessadas usando uma única API.

  • Provedor do Windows Installer: possibilita o controle total do Windows Installer e a instalação do software por meio da WMI. Também fornece informações sobre qualquer aplicativo instalado com o Windows Installer.

  • Provedor do contador de desempenho: expõe as informações brutas do contador de desempenho usadas para computar os valores de desempenho mostrados na ferramenta Monitor do Sistema. Todos os contadores de desempenho instalados em um sistema poderão ser automaticamente visualizados por meio desse provedor.

  • Provedor do Registro: possibilita a criação, leitura e gravação de chaves do Registro. É possível gerar eventos WMI quando chaves do Registro especificadas forem modificadas

  • Provedor do SNMP: funciona como um gateway para os sistemas e dispositivos que usam o SNMP para gerenciamento. As variáveis do objeto MIB SNMP podem ser lidas e gravadas. É possível mapear automaticamente as interceptações SNMP aos eventos WMI.

  • Provedor de log de eventos: oferece acesso a dados e notificações de eventos do log de eventos do Windows Server 2008.

  • Provedor Win32: oferece informações sobre o sistema operacional, sistema do computador, dispositivos periféricos, sistemas de arquivos e informações de segurança.

  • Provedor WDM: oferece informações de nível inferior do WDM (Windows Driver Model) para dispositivos de entrada do usuário, dispositivos de armazenamento, interfaces de rede e portas de comunicação.

  • Provedor de visualização: possibilita que novas classes agregadas sejam criadas a partir de classes existentes. As classes de origem podem ser filtradas para exibir apenas as informações pretendidas, as informações de várias classes podem ser combinadas em uma única classe e os dados de várias máquinas podem ser agregados em uma única visualização.

A tecnologia WMI também oferece suporte a provedores personalizados de terceiros. É possível usar provedores personalizados para atender às solicitações de serviço relacionadas a objetos gerenciados específicos de um ambiente. Os provedores costumam usar a linguagem MOF para definir e criar classes. Os provedores usam a API WMI para acessar o repositório Gerenciador de Objetos CIM e para atender a solicitações do Gerenciador de Objetos CIM feitas inicialmente por aplicativos.

Visão geral do protocolo SNMP

O protocolo SNMP é um padrão de gerenciamento de rede que define uma estratégia para o gerenciamento de redes TCP/IP.

O SNMP usa uma arquitetura distribuída que inclui:

  • Vários nós gerenciados, cada um com uma entidade SNMP chamada de agente que oferece acesso remoto à instrumentação de gerenciamento.

  • Pelo menos uma entidade SNMP é denominada gerente e executa aplicativos de gerenciamento para monitorar e controlar os elementos gerenciados. Os elementos gerenciados são dispositivos como hosts, roteadores, etc., que são monitorados e controlados pelo acesso às suas informações de gerenciamento.

  • Um protocolo de gerenciamento, SNMP, é usado para transmitir informações de gerenciamento entre os agentes e as estações de gerenciamento. As informações de gerenciamento referem-se a uma coleção de objetos gerenciados que residem em um repositório virtual de informações denominado MIB (Base de Informações de Gerenciamento).

Mensagens SNMP

Para comunicar as informações do host, os agentes e os sistemas de gerenciamento usam mensagens SNMP. Essas mensagens são enviadas usando o protocolo UDP e são roteadas entre o sistema de gerenciamento e o host usando o protocolo IP.

Uma Base de Informações de Gerenciamento contém as informações solicitadas pelo sistema de gerenciamento. A MIB de um computador conectado em rede pode incluir informações sobre a configuração e o desempenho da placa da interface de rede, o espaço em disco disponível, a versão dos drivers e aplicativos, etc. É possível gravar e carregar MIBs adicionais para expor os dados que são especificados para coleção, desde que o sistema ofereça suporte à coleção das informações solicitadas.

Processando as solicitações de informações

Quando um sistema de gerenciamento solicita informações, ocorre esta sequência:

  1. Um sistema de gerenciamento envia uma solicitação a um agente usando o endereço IP do agente.

  2. O agente forma um datagrama SNMP que contém uma mensagem SNMP e o nome da comunidade à qual o sistema de gerenciamento pertence.

  3. O agente SNMP recebe o datagrama e confirma o nome da comunidade. Se o nome da comunidade for válido, o agente SNMP recuperará os dados apropriados. Caso contrário, se o nome da comunidade for inválido, a solicitação será recusada. Se o agente tiver sido configurado para enviar uma interceptação de autenticação, uma mensagem de interceptação será enviada.

  4. O datagrama SNMP é retornado ao sistema de gerenciamento com as informações solicitadas.

Mensagens

Os seguintes tipos de mensagem SNMP são usados:

  • GetThis é uma mensagem de solicitação. Os sistemas de gerenciamento SNMP usam as mensagens Get para solicitar informações sobre uma entrada da MIB ou um agente SNMP.

  • GetnextA tipo de mensagem de solicitação que pode ser usada para pesquisar uma árvore inteira de objetos gerenciados.

  • GetbulkA tipo de solicitação que especifica que o agente deve transferir o máximo de dados possível, dentro dos limites de tamanho de mensagem.

  • SetThis é usada para enviar e atribuir um valor atualizado da MIB a um agente.

  • Notify (or Trap)This é uma mensagem não solicitada que um agente envia a um sistema de gerenciamento SNMP quando ele detecta um determinado tipo de evento que ocorreu localmente no host gerenciado.

Os eventos SNMP (ou interceptações) são enviados de forma não solicitada a uma estação de gerenciamento que filtra os eventos; sendo assim, o tráfego da rede está envolvido. Com a WMI, os eventos são filtrados localmente e apenas os que atendem aos critérios do filtro são enviados pela rede, reduzindo assim a largura de banda necessária para os eventos pretendidos.

Suporte a SDK WMI para SNMP

O provedor do SNMP inclui os seguintes componentes:

  • Provedores de classe, instância e evento que integram a modelagem e o processamento de informações SNMP na WMI. Esses provedores do SNMP mapeiam as coleções de valores de objeto aos valores de propriedade das instâncias da classe CIM.

  • Um compilador do módulo de informação do SNMP que compila informações do esquema SNMP nativo no formato usado pelo CIM.

Provedores do SNMP

Os provedores do SNMP retornam informações dinâmicas. É possível especificar o conjunto de classes que será operado pelo provedor de instância de uma de duas maneiras:

  • Estaticamente: criando classes no namespace do repositório do objeto CIM associado ao dispositivo proxy.

  • Dinamicamente: usando o provedor de classe SNMP, que retorna o conjunto de classes localizado no namespace SMIR (Repositório de Informações do Módulo SNMP).

Além disso, também é possível especificar se a correlação deve ou não ser usada para o conjunto de classes retornado do namespace SMIR. As classes correlacionadas definem o conjunto de classes que sabe-se que um determinado agente SNMP suporta no momento em que ocorre a enumeração. A enumeração não correlacionada retorna todas as classes presentes no namespace SMIR, independentemente de serem ou não suportadas pelo dispositivo de agente.

Os provedores do SNMP incluem:

  • Provedores de classe e instância SNMP, que especificam quais aplicativos devem ser usados para acessar e modificar os dados referentes aos dispositivos SNMP.

  • Provedores de eventos SNMP, que geram eventos das interceptações e notificações SNMP. Eles reportam os mesmos tipos de evento, mas em formatos diferentes: Encapsulado e Referente. Encapsulado significa que a classe de evento possui propriedades simples que descrevem as informações mapeadas diretamente das macros TRAP-TYPE e NOTIFICATION-TYPE, descritas na próxima seção. As classes Referentes resumem as informações presentes nas macros de forma que as propriedades que compartilham a mesma classe e instância sejam apresentadas como objetos incorporados. Isso permite a extração de __RELPATH para que a instância exclusiva à qual a interceptação está associada possa ser recuperada após o recebimento do evento. Para escolher um formato, os consumidores se registram em uma determinada classe de eventos.

Mapenado dados do dispositivo para classes CIM

Os provedores do SNMP mapeiam os dados do dispositivo para as classes CIM por meio dos seguintes métodos:

  • Enumerando as definições de classe SNMP. Para enumerar um conjunto de definições de classe, os aplicativos podem chamar IWbemServices::CreateClassEnum ou IWbemServices::CreateClassEnumAsync.

    Os objetos MIB são mapeados às classes CIM SNMP usando a macro OBJECT-TYPE; os eventos são mapeados às classes usando as macros TRAP-TYPE e NOTIFICATION-TYPE.

    A macro OBJECT-TYPE é usada para descrever as características básicas de um objeto MIB. As macros SNMPv1 TRAP-TYPE e SNMPv2C NOTIFICATION-TYPE descrevem as características de um evento SNMP.

  • Criando instância de definições de classe SNMP. Para criar uma instância de uma definição de classe, os aplicativos podem chamar IWbemServices::GetObject ou IWbemServices::GetObjectAsync.

  • Enumerando as instâncias de classe SNMP. O provedor de instância SNMP atende às solicitações de enumeração de instâncias associadas às classes que representam as MIBs de dispositivo.

  • Criando uma instância de classe SNMP. O provedor de instância SNMP processa as solicitações de criação de uma instância de classes que representam os objetos MIB.

  • Recuperando instâncias de classe SNMP. Para recuperar uma determinada instância de uma classe CIM SNMP, os aplicativos podem chamar IWbemServices::GetObject ou IWbemServices::GetObjectAsync.

SNMP e o esquema CIM

O esquema que o SNMP usa para definir objetos é diferente do esquema utilizado no Modelo de Informação Comum da WMI. O esquema SNMPv1 e SNMPv2 é denominado SMI (Estrutura das Informações de Gerenciamento); é empacotado como arquivos da MIB. Para definir os objetos, os arquivos da MIB usam ASN.1 (Abstract Syntax Notation 1), uma linguagem padrão, e definições de macro que são usadas como modelos para descrição dos objetos. Essas macros fornecem informações sobre o objeto, incluindo seu nome, identificador, sintaxe, descrição, direitos de acesso, etc.

Os provedores do SNMP WMI convertem essas macros da MIB:

  • OBJECT-TYPE Descreve as características básicas de um objeto, como seu nome, sintaxe, direitos de acesso, etc. Referente a SNMPv1 e SNMPv2C.

  • TEXTUAL-CONVENTION Atribui um nome e, em alguns casos, um intervalo de valores a um tipo de dado existente. Referente apenas a SNMPv2C.

  • TRAP-TYPE Descreve mensagens de evento (interceptações). Referente apenas a SNMPv1.

  • NOTIFICATION-TYPE Descreve mensagens de evento (notificações). Referente apenas a SNMPv2C.

O provedor de classe SNMP enumera e cria uma instância de um conjunto de definições de classe referentes ao namespace CIM. Ele faz isso usando uma correlação da MIB e o repositório de informações do módulo SNMP, um banco de dados de esquema SNMP. O provedor de classe SNMP oferece suporte aos modos de correlacionados e não correlacionados. Você especifica um desses modos definindo uma correlação de valor de contexto (IWbemContext) do tipo Booleano e transmitindo-a ao método IWbemServices. O provedor de classe SNMP oferece suporte tanto à enumeração de definições de classe quanto à recuperação de definições de classe.

O provedor de instância SNMP mapeia os objetos MIB SNMP às instâncias de classe.

Namespace SNMP

O namespace SNMP é usado para definir a visualização de um dispositivo de rede. É possível criar um namespace SNMP usando o aplicativo WMI Common Information Model (CIM) Studio do SDK da WMI, compilando um arquivo MOF ou de forma programática com a API WMI.

A classe do sistema de namespace é usada para representar um namespace SNMP. Para gerar um novo namespace, crie uma instância dessa classe. É preciso associar pelo menos um descritor (ou qualificador) à instância de classe. Os qualificadores contêm informações de contexto específicas da implementação e propriedades de transporte que definem como os provedores do SNMP acessam um agente SNMP.

Representação do dispositivo SNMP

Os dispositivos SNMP são representados na WMI usando um namespace de proxy que contém um conjunto de qualificadores de instância. Esses qualificadores descrevem as características de transporte referentes ao dispositivo. A WMI usa um arquivo MOF, snmpreg.mof, para criar o namespace \\.\root\snmp\localhost, que é um padrão que representa o agente SNMP local.

SNMPv2C

O SNMPv2C é suportado no contexto WMI. O principal objetivo do SNMPv2C era fornecer um contexto mais seguro para o SNMP. Essa versão usa o recurso de autenticação simples e sem segurança baseado em senha, conhecido como recurso de comunidade (fornecido no SNMPv1). O SMI SNMPv2 realiza determinados acréscimos e melhorias à segurança da comunidade, como incluir cadeia de bit, endereços de rede e contadores aos tipos de dados específicos do SMI SNMPv1. Além disso, o SMI SNMPv2 especifica módulos de informação, que especificam um grupo de definições relacionadas. O SNMPv2 também define duas novas operações de protocolo: GetBulk e Inform.

Security

A segurança WMI valida as informações de logon de um usuário tanto para o computador local quanto para o acesso remoto. A WMI concede a um usuário validado alguma forma de acesso controlado a todo o repositório CIM. Na versão atual, a WMI não oferece segurança para os recursos do sistema como classes e instâncias individuais. No entanto, os administradores podem usar a WMI para controlar as permissões globais nas operações de esquema, como limitar o acesso de alguns usuários para operações somente leitura. A WMI também oferece suporte à segurança por namespace. Além disso, o provedor do SNMP oferece suporte a toda a segurança baseada em SNMP, incluindo as melhorias de segurança no SNMPv2C.

Compilador do módulo de informação do SNMP

O compilador do módulo de informação do SNMP é usado para compilar informações nativas de gerenciamento do SNMP que são definidas em uma MIB em uma definição de esquema CIM equivalente que pode ser usada com os provedores do SNMP. O esquema CIM pode existir como uma saída em um arquivo MOF ou pode ser carregado em um banco de dados de esquema do SNMP (o Repositório de Informações do Módulo SNMP ou SMIR). O provedor de classe dinâmica do SNMP usa o Repositório de Informações do Módulo SNMP para criar e recuperar instâncias de definições de classe.

O compilador do módulo de informação do SNMP é executado no modo de linha de comando como um arquivo executável, usando um módulo de informação do SNMP como entrada, e quaisquer arquivos adicionais que possam ser necessários para resolver referências externas. Os módulos de informação do SNMP são coleções de informações de gerenciamento compostas tipicamente por uma combinação de módulos da MIB e declarações AGENT-CAPABILITIES e MODULE-COMPLIANCE. As declarações AGENT-CAPABILITIES descrevem a compatibilidade de um agente com o conjunto de módulos da MIB que ele suporta. As declarações MODULE-COMPLIANCE descrevem a compatibilidade de um agente em relação às definições de objeto.

O compilador do módulo de informação do SNMP também fornece as seguintes funcionalidades:

  • Executa operações de verificação no módulo de informação. Por exemplo, verifica a sintaxe local e as referências externas em relação a informações nos módulos subsidiários.

  • Remove todos os dados previamente carregados do SMIR ou remove os dados carregados de um módulo de informação.

  • Retorna o nome do módulo ASN.1 de um arquivo especificado ou os nomes do módulo ASN.1 de todos os módulos importados em um arquivo especificado.

  • Retorna os nomes do módulo ASN.1 de todos os módulos de informação do SNMP atualmente carregados no SMIR.

  • Executa a resolução automática dos módulos importados em vez de exigir que os usuários especifiquem manualmente os módulos necessários.

  • Executa uma operação em modo de carregamento silencioso que não gera saída, mas pode ser usada para carregar dados no SMIR durante uma operação de instalação.

Consulte também


Sumário