Probe de CIM

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 9 min. de leitura
  • A probe CIM usa protocolos WBEM para consultar um servidor CIM específico, o Gerenciador de objetos CIM, 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 a 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 [Obrigatório] 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 os dados. 5000

    A linguagem de consulta intermediária do CIM (CimIQL) usa chaves, filtros e referência com pontos para percorrer o esquema do CIM.

    Expansão de parâmetro

    A linguagem de consulta CIM é compatível com a expansão de parâmetro de probe pré-processada do 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

    A linguagem de consulta intermediária do CIM (CimIQL) é uma linguagem intermediária projetada para simplificar o processo de consultar provedores de CIM.

    Atualmente, o CimIQL oferece suporte à pilha de protocolo padrão de Gestão empresarial baseada na Web (WBEM), mas outros, como Gestão de serviços web (WS-MAN), podem ser adicionados no futuro. A sintaxe da linguagem de consulta é emprestada de elementos de MicrosoftIdioma de consulta WMI de e. UNIXcomando wbemcli de. A biblioteca CimIQL é uma implementação Java pura.

    Nota:
    CimIQL é pronunciado como "Simicle".

    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 de CimIQL é um válido . Uma declaração contém várias consultas delimitadas por um ponto . caractere.
    Consulta R representa uma única solicitação independente de protocolo de alto nível. Cada consulta é composta por componentes de linguagem aninhados e subcomponentes conhecidos como tokens.
    Token R 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 R é 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. R é 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 por HTTP padrão.

    Tabela 3. Resumo do token de operação do CimIQL
    Retornar Valor Detalhes Operação de 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 .

    EnumerateInstâncias
    objeto de classe Enumere objetos associados

    Recupera objetos associados a cada resultado da consulta anterior.

    Associadores
    resultados da declaração Substituição

    Um 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.

    Consulte os resultados de uma declaração nomeada

    Obter token de objeto

    <classname> (<key token>,<parameter token>,...)
    • 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. Esse 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 instrução.
    • Retorna: Objeto de classe
    • Exemplo:
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    Token de objetos enumerados

    Token de índice de matriz <classname> (<condition token>,<parameter token>,...) OU token de índice de matriz <classname> (token de índice de matriz)
    • Recupera objetos que correspondem a um conjunto de tokens de condição e. tokens de parâmetro . Esse 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 instrução.
    • Retorna: Objeto de classe
    • Exemplo:
      CIM_ComputerSystem{{Name!='runtime'}}.*

    Token de objetos associados

    Token de índice de matriz <association classname>, <parameter token>,... OU token de índice de matriz <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 juntos. Por padrão, os objetos da classe especificada e de todas as classes estendidas são recuperados.
    • O <parameter token>, ResultClass, pode ser especificado para filtrar resultados com base no classname do objeto resultante.
    • . token de índice é opcional.
    • Este token não deve ser usado como a primeira consulta em uma instrução.
    • Retorna: Objeto de classe
    • Exemplo:
      CIM_ComputerSystem{{Name='runtime'}}[2].*

    Token de substituição

    (<statement name>)
    • Um 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 do CimIQL

    A probe do 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 devem ser 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 <key name>: "<value>"

    Corresponde a uma propriedade de objeto designada como 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 <parameter name>:'<value>'

    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 via solicitação, dependendo do parâmetro.

    Token de propriedades

    * OU <property name>, <property name>,...
    • Especifica quais propriedades devem ser retornadas para cada objeto do conjunto de resultados final.
    • O curinga * retorna todas as propriedades disponíveis. Caso contrário, 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

    <key name>: "<value>"
    • Corresponde a uma propriedade de objeto designada como chave por valor exato.
    • O <key name> é o nome da propriedade usada como 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

    <parameter name>:'<value>'
    • 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 Gerenciador de objetos de modelo de informação comum (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 se baseia 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 Linux_ComputerSystem Recupera uma única instância exclusiva de CIM_ComputerSystem e seus descendentes. Todos tokens de chave deve ser especificado dentro de 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 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 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 os 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].Nome

    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 do Associador , não o resultado final.

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

    Resultados do CimIQL

    Os resultados da probe do CIM são passados para o sensor de probe como um documento XML incorporado ao <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>