Probe CIM
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:
| 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.
Sintaxe de CimIQL
A sintaxe do CimIQL consiste em vários elementos, incluindo uma consulta e tokens diferentes.
| 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.
| 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
- 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
- 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
- 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
- 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.
| 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
- 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
- Separa consultas.
- Exemplo:
CIM_ComputerSystem.PrimaryOwnerContact
Token de í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
- 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
- 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
- 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.
| 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.
|
| 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.
<!-- 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>