Probe CIM

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 9 min. de leitura
  • O probe CIM usa protocolos WBEM para consultar um servidor CIM específico, o CIM Object Manager, para um conjunto de objetos de dados e propriedades.

    Para obter instruções sobre como configurar parâmetros de probe, consulte Definir parâmetros de probe.

    Os seguintes parâmetros podem ser passados para o probe CIM:

    Tabela 1. Probe CIM
    Parâmetro Descrição Valor padrão
    origem [Obrigatório] O host inicial ao qual se conectar. Nenhum(a)
    porta A porta à qual se conectar. Se estiver vazio, o valor será determinado pelo parâmetro "schema": http 5988, https 5989. 5988 ou 5989
    esquema [Obrigatório] O esquema a ser usado: '"http"' ou '"https"'. http
    namespace (Obrigatório] O namespace CIM. Pode ser substituído por uma consulta. Nenhum(a)
    consultas Uma lista delimitada por ponto e vírgula de consultas de probe CIM para processar e retornar resultados. Nenhum(a)
    novas tentativas O número de vezes para repetir uma consulta se ela falhar devido a problemas de conectividade de rede. 2
    connection_timeout O número de milissegundos que a probe tem para se conectar a um servidor. 5000
    socket_timeout O número de milissegundos que a probe tem para ler dados. 5000

    CIM Intermediate Query Language (CimIQL) usa chaves, filtros e referência com pontos para percorrer o esquema CIM.

    Expansão de parâmetro

    A linguagem de consulta CIM oferece suporte à expansão de parâmetro de probe pré-processado SNC padrão. Coloque variáveis em consultas encapsulando seus nomes como este:

    ${foobar}.CIM_RunningOS[0].Name
    CIM_ComputerSystem.${barfoo}

    O texto foobar é substituído pelo conteúdo do parâmetro foobarprobe passado para a probe CIM; da mesma forma para barfoo.

    CIMIQL

    CIM Intermediate Query Language (CimIQL) é uma linguagem intermediária projetada para simplificar o processo de consulta de provedores CIM.

    Atualmente, o CimIQL oferece suporte à pilha de protocolo padrão WBEM (Web-Based Enterprise Management), mas outros, como WS-MAN (Web Services-Management), podem ser adicionados no futuro. A sintaxe da linguagem de consulta toma empréstimo de elementos de Microsoft Idioma de consulta WMI e UNIX comando wbemcli de . A biblioteca CimIQL é uma implementação Java pura.

    Nota:
    CimIQL é pronunciada como "símicle".

    Sintaxe de CimIQL

    A sintaxe do CimIQL consiste em vários elementos, incluindo uma consulta e tokens diferentes.

    Tabela 2. Descrições do elemento de sintaxe do CimIQL
    Elemento Descrição
    Declaração O elemento mais básico do CimIQL é um válido . Uma declaração contém várias consultas delimitadas por um ponto . caractere.
    Consulta . representa uma única solicitação independente de protocolo de alto nível. Cada consulta é composta por componentes de idioma aninhados e subcomponentes conhecidos como tokens.
    Token . Descreve um aspecto lexical específico da sintaxe do CimIQL.
    Token de operação O primeiro token de cada consulta deve ser um , que representa a operação lógica geral a ser realizada.
    Token do componente . um subcomponente de um token de operação.
    Resultado Cada consulta é emparelhada com um resultado, que é fornecido como entrada para a próxima consulta na declaração. . é composto por um conjunto de objetos e suas propriedades.

    Tokens de operação do CimIQL

    A probe CimIQL requer tokens de operação.

    Cada uma das operações principais a seguir tem uma contrapartida no Operações de CIM sobre HTTP padrão.

    Tabela 3. Resumo do token de operação do CimIQL
    Retornar Valor Detalhes Operação CIM equivalente por HTTP
    objeto de classe Obter objeto

    Recupera um único objeto de uma classe específica especificando todas as suas chaves exclusivas (como tokens de chave ) e qualquer opcional tokens de parâmetro , separados por vírgulas.

    GetInstance
    objeto de classe Enumere objetos

    Recupera objetos que correspondem a um conjunto de tokens de condição e. tokens de parâmetro .

    EnumerateInstances
    objeto de classe Enumere objetos associados

    Recupera objetos associados a cada resultado da consulta anterior.

    Associadores
    resultados da declaração Substituição

    Token não operacional que alimenta os resultados de uma declaração nomeada anterior como entrada na próxima consulta de sua própria declaração.

    Faça referência aos resultados de uma declaração nomeada

    Obter token de objeto

    <key token>, <parameter token>,... <classname>)
    • Recupera um único objeto de uma classe específica especificando todas as suas chaves exclusivas (como tokens de chave tokens de chave ) e qualquer opcional tokens de parâmetro , separados por vírgulas. Este token também é conhecido como .
    • O <classname> é o nome da classe CIM que diferencia maiúsculas de minúsculas do objeto desejado. Por padrão, os objetos da classe especificada e de todas as classes estendidas são recuperados.
    • Os tokens de chave e parâmetro são delimitados por um único par de chaves.
    • Este token só deve ser usado como a primeira consulta em uma declaração.
    • Retorna: Objeto de classe
    • Exemplo:
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    Enumerar token de objetos

    "<condition token>,,..."" OU "token de índice de matriz" (array index index index token) (<classname> <classname>, <parameter token>,...)
    • Recupera objetos que correspondem a um conjunto de tokens de condição e. tokens de parâmetro . Este token também é conhecido como .
    • Os tokens de condição e os tokens de parâmetro são delimitados por dois pares de chaves. As chaves são opcionais se não houver condições ou parâmetros necessários.
    • O <classname> é o nome da classe CIM que diferencia maiúsculas de minúsculas dos objetos desejados. Por padrão, os objetos da classe especificada e de todas as classes estendidas são recuperados.
    • . token de índice é opcional.
    • Este token só deve ser usado como a primeira consulta em uma declaração.
    • Retorna: Objeto de classe
    • Exemplo:
      CIM_ComputerSystem{{Name!='runtime'}}.*

    Enumere token de objetos associados

    Token de filtro de propriedade>, <parameter token>,... OU token de índice de matriz> do TIPO de índice de matriz> do TIPO de índice de matriz <association classname> <association classname>
    • Recupera objetos associados a cada resultado da consulta anterior.
    • . tokens de condição e. tokens de parâmetro são delimitados por dois pares de chaves. As chaves são opcionais se não houver filtros de propriedades ou parâmetros necessários.
    • O <association classname> é o nome da classe muitos para muitos ou um para muitos que associa dois objetos. Por padrão, os objetos da classe especificada e de todas as classes estendidas são recuperados.
    • ResultClass, o <parameter token>, pode ser especificado para filtrar resultados com base no nome de classe do objeto resultante.
    • . token de índice é opcional.
    • Este token não deve ser usado como a primeira consulta em uma declaração.
    • Retorna: Objeto de classe
    • Exemplo:
      CIM_ComputerSystem{{Name='runtime'}}[2].*

    Token de substituição

    (<statement name>)
    • Token não operacional que alimenta os resultados de uma declaração nomeada anterior como entrada na próxima consulta de sua própria declaração.
    • Retorna: vazio
    • Exemplo:
      $(lastComputer).ElementName

    Tokens de componente CimIQL

    A probe CimIQL requer tokens de componente, que são subcomponentes de tokens operacionais.

    Os tokens a seguir são subcomponentes de tokens de operação .
    Tabela 4. Resumo do token do componente CimIQL
    Token Detalhes
    Token de propriedades * OU <property name>, <property name>,...

    Especifica quais propriedades serão retornadas para cada objeto do conjunto de resultados final.

    Token do delimitador de consulta . (Período)

    Separa consultas.

    Token de índice [índice]

    Reduz os resultados de uma consulta anterior a um único objeto no índice inteiro especificado.

    Token de chave "<value> <key name>"

    Corresponde a uma propriedade de objeto designada como uma chave por valor exato.

    Token de condição <property name> <conditional operator> <enclosed value>

    Corresponde a uma única propriedade de um objeto com base na condição especificada.

    Token de parâmetro "<value> <parameter name>"

    Passa um parâmetro por <parameter name> para a operação que está sendo chamada. O parâmetro pode ser consumido durante o pré-processamento do CimIQL ou pelo CIMOM por solicitação, dependendo do parâmetro.

    Token de propriedades

    * OU <property name>, <property name>,...
    • Especifica quais propriedades serão retornadas para cada objeto do conjunto de resultados final.
    • O curinga * retorna todas as propriedades disponíveis. Cada nome de propriedade desejado será fornecido em uma lista separada por vírgulas.
    • Este token é necessário no final de cada declaração.
    • Exemplo:
      CIM_ComputerSystem[0].*

    Token do delimitador de consulta

    . (Período)
    • Separa consultas.
    • Exemplo:
      CIM_ComputerSystem.PrimaryOwnerContact

    Token de índice

    [índice]
    • Reduz os resultados de uma consulta anterior a um único objeto no índice inteiro especificado.
    • Este token é sempre opcional.
    • Exemplo:
      CIM_ComputerSystem[0].*

    Token de chave

    "<value> <key name>"
    • Corresponde a uma propriedade de objeto designada como uma chave por valor exato.
    • O <key name> é o nome da propriedade usada como uma chave.
    • Exemplo:
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    Token de condição

    <property name> <conditional operator> <enclosed value>
    • Corresponde a uma única propriedade de um objeto com base na condição especificada.
    • O <property name> é o nome da propriedade a ser correspondida.
    • O <conditional operator> determina como o valor real da propriedade é comparado ao valor esperado. Os operadores disponíveis são igualdade e. desigualdade (!).
    • O <enclosed value> deve ser um dos seguintes:
      • Valor literal entre aspas simples ' ... '. Por exemplo, foo
      • Expressão regular, delimitada por um par de barras / ... /. Por exemplo, foo/bar.*/
    • Exemplo:
      CIM_ComputerSystem{{Name!='runtime'}}.*

    Token de parâmetro

    "<value> <parameter name>"
    • Passa um parâmetro por <parameter name> para a operação que está sendo chamada. O parâmetro pode ser consumido durante o pré-processamento do CimIQL ou pelo Common Information Model Object Manager (CIMOM) por solicitação, dependendo do parâmetro.
    • Exemplo:
      CIM_ComputerSystem.CIM_RunningOS{{ResultClass:'Win32_ComputerSystem'}}.*

    Tutorial do CimIQL

    Este é um tutorial por exemplo em que cada exemplo é baseado no exemplo anterior.

    Tabela 5. Tutorial do CimIQL
    Ordem Declaração de CimIQL Resultado
    1 CIM_ComputerSystem[0].* Recupera o. primeiro resultado De todas as instâncias de CIM_ComputerSystem e seus descendentes. Recupera tudo propriedades .
    2 CIM_ComputerSystem.PrimaryOwnerContact Recupera todas as instâncias de CIM_ComputerSystem e seus descendentes. Recupera apenas um propriedade PrimaryOwnerContact.
    3 CIM_ComputerSystem Recupera uma única instância exclusiva de CIM_ComputerSystem e seus descendentes. Todos tokens de chave deve ser especificado em token de identidade .
    4 CIM_ComputerSystem

    Recupera todas as instâncias e descendentes de CIM_ComputerSystem que não têm um Nome propriedade de "tempo de execução".

    . token de filtro filtra as instâncias que não contêm todas as propriedades/chaves especificadas.

    5 CIM_ComputerSystem
    Recupera todas as instâncias e descendentes de CIM_ComputerSystem que têm um valor correspondente à expressão regular contida nos caracteres / / .
    Nota:
    A expressão regular não requer aspas simples.

    . token de filtro filtra as instâncias que não contêm todas as propriedades/chaves especificadas.

    6 CIM_ComputerSystem[2].*

    Recupera o. segundo resultado De todas as instâncias de CIM_ComputerSystem e seus descendentes onde As instâncias têm um Nome de propriedade "runtime".

    A ordem das operações segue a sintaxe da consulta.
    1. Consulta Servidor para todos CIM_ComputerSystem e descendentes.
    2. Filtro Resultados baseados na propriedade Nome.
    3. Recupere o segundo instância que passou no filtro.
    7 CIM_ComputerSystem.CIM_RunningOS[0].Name

    Recupera o Nome propriedade Para a primeira instância CIM_OperatingSystem de cada instância CIM_ComputerSystem.

    O token do meio, CIM_RunningOS, é o nome do Classe Associador , não o resultado final.

    8 CIM_ComputerSystem.CIM_RunningOS[0].Name Recupera o Nome propriedade Para a primeira instância CIM_OperatingSystem de cada instância CIM_ComputerSystem, onde Cada instância CIM_OperatingSystem tem uma propriedade Name que contém "CentOS".

    Resultados do CimIQL

    Os resultados da Probe CIM são passados para o sensor de probe como um documento XML incorporado no <output>elemento.

    A seguir está um exemplo comentado de um resultado em lote do CimQuery.
    <!-- document root -->
     <cimqueryset>
     <!-- A single query and query result. Multiple <cimquery> tags may be provided. -->
     <cimquery>
       <!-- The original query, enclosed by CDATA. -->
       <query><!CDATA[[>CIM_ComputerSystem[0].PrimaryOwnerContact<! ]]></query>
       <!-- The resulting data is enclosed within a single <result> tag. -->
       <result>
         <!-- A single class instance result. Multiple <instance> tags may be provided.
              Special tags are prefixed with an underscore character. -->
         <instance>
           <!-- The instance's CIM classname -->
           <_classname>Linux_ComputerSystem</_classname>
           <!-- A set of this instances identifying keys. Always provided, regardless of property filters.
                Within here, each key is provided as <KeyName>VALUE</KeyName> with the VALUE enclosed as CDATA. -->
           <_key>
             <CreationClassName><![CDATA[Linux_ComputerSystem]]></CreationClassName>
             <Name><![CDATA[runtime]]></Name>
           </_key>
           <!-- Each property that matches the query's property filter will be provided here, in the same format as keys;
                As <PropertyName>VALUE<PropertyName> where VALUE is enclosed as CDATA -->
           <PrimaryOwnerContact><![CDATA[root@runtime]]></PrimaryOwnerContact>
         </instance>
       </result>
     </cimquery>
     </cimqueryset>