Probe CIM
O probe CIM usa protocolos WBEM para consultar um servidor CIM específico, o CIM Object Manager, em busca de 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 | [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 tentar novamente uma consulta se ela falhar devido a problemas de conectividade de rede. | 2 |
| connection_timeout | O número de milissegundos que o probe tem para se conectar a um servidor. | 5000 |
| soquete_timeout | O número de milissegundos que o probe tem para ler dados. | 5000 |
A linguagem de consulta intermediária CIM (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é-processada 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 o probe CIM; da mesma forma para barfoo.
CIMIQL
A CIM Intermediate Query Language (CimIQL) é uma linguagem intermediária projetada para simplificar o processo de consulta de provedores de CIM.
No momento, o CimIQL oferece suporte à pilha de protocolos padrão do Web-Based Enterprise Management (WBEM), mas outros, como o Web Services-Management (WS-MAN), podem ser adicionados no futuro. A sintaxe da linguagem de consulta é emprestada de elementos da linguagem de consulta WMI de MicrosoftUNIXe do comando wbemcli de []. A biblioteca CimIQL é uma implementação Java pura.
Sintaxe do CimIQL
A sintaxe da CimIQL consiste em vários elementos, incluindo uma consulta e diferentes tokens.
| Elemento | Descrição |
|---|---|
| Declaração | O elemento mais básico da CimIQL é uma válida. Uma declaração contém várias consultas delimitadas por um ponto. caractere. |
| Consulta | Uma 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 | Um descreve um aspecto lexical específico da sintaxe da CimIQL. |
| Token de operação | O primeiro token de cada consulta deve ser um , que representa a operação lógica geral a ser executada. |
| Token do componente | Um é 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. Um é composto por um conjunto de objetos e suas propriedades. |
Tokens de operação CimIQL
O probe CimIQL requer tokens de operação.
Cada uma das seguintes operações principais tem uma contraparte no padrão Operações CIM sobre HTTP.
| Retornar Valor | Detalhes | Operação CIM equivalente sobre 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 quaisquer tokens de parâmetroopcionais, separados por vírgulas. |
Obter instância |
| objeto de classe | Enumerar objetos Recupera objetos que correspondem a um conjunto de tokens de condição e de parâmetro. |
Enumerar instâncias |
| objeto de classe | Enumerar 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. |
Referenciar os resultados de uma declaração nomeada |
Obter token do objeto
- Recupera um único objeto de uma classe específica especificando todas as suas chaves exclusivas (como tokens dechavetokens de chave ) e quaisquer tokens de parâmetroopcionais, 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 quaisquer classes estendidas são recuperados.
- Os tokens de chave e de 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 de parâmetro. Este token também é conhecido como o .
- Os tokens de condição e os tokens de parâmetro são colocados entre dois pares de chaves {{ ... }}. Os colchetes 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 quaisquer classes estendidas são recuperados.
- O 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'}}.*
Enumerar token de objetos associados
- Recupera objetos associados a cada resultado da consulta anterior.
- Os tokens de condição e os tokens de parâmetro são colocados entre dois pares de chaves {{ ... }}. Os colchetes são opcionais se não houver filtros de propriedades ou parâmetros necessários.
- O<association classname> é o nome da classe many-to-many ou one-to-many que associa dois objetos. Por padrão, os objetos da classe especificada e de quaisquer classes estendidas são recuperados.
- O<parameter token> , ResultClass, pode ser especificado para filtrar resultados com base no nome da classe do objeto resultante.
- O 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
- 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 do componente CimIQL
O probe CimIQL requer tokens de componente, que são subcomponentes de tokens operacionais.
| Token | Detalhes |
|---|---|
| Token de propriedades | * OU<property name> , ,... Especifica quais propriedades devem ser retornadas para cada objeto do conjunto de resultados final. |
| Token do delimitador de de consulta | . (Período) Separa consultas. |
| Token Token de índice | [índice] Reduz os resultados de uma consulta anterior a um único objeto no índice inteiro especificado. |
| Token de Token de chave | <key name>='<value> ' Corresponde a uma propriedade de objeto designada como uma chave pelo valor exato. |
| Token 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 Token de parâmetro | <parameter name>:'<value> ' Passa um parâmetro até<parameter name> à operação que está sendo chamada. O parâmetro pode ser consumido durante o pré-processamento do CimIQL ou pelo CIMOM por meio de solicitação, dependendo do parâmetro. |
Token de propriedades
- 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
- 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 pelo 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 inequação (!=).
- O<enclosed value> deve ser um dos seguintes:
- Valor literal entre aspas simples ' ... '. Por exemplo, foo='bar'
- Expressão regular, entre barras / ... /. Por exemplo, foo=/bar.*/
- Exemplo:
CIM_ComputerSystem{{Name!='runtime'}}.*
Token de Parâmetro
- Passa um parâmetro até<parameter name> à operação que está sendo chamada. O parâmetro pode ser consumido durante o pré-processamento do CimIQL ou pelo CIMOM (Common Information Model Object Manager) por meio de 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.
| Ordem | Instrução CimIQL | Resultado |
|---|---|---|
| 1 | CIM_ComputerSystem[0].* | Recupera o primeiro resultado de todas as instâncias de CIM_ComputerSystem e seus descendentes. Recupera todas as propriedades. |
| 2 | CIM_ComputerSystem.PrimaryOwnerContact | Recupera todas as instâncias de CIM_ComputerSystem e seus descendentes. Recupera apenas uma propriedade, PrimaryOwnerContact. |
| 3 | CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.* | Recupera uma única instância exclusiva de CIM_ComputerSystem e seus descendentes. Todos os tokens de chave devem ser especificados no token de identidade{ } . |
| 4 | CIM_ComputerSystem{{Name!='runtime'}}.* | Recupera todas as instâncias e descendentes de CIM_ComputerSystem que não têm uma propriedade Nome de "tempo de execução". O token de filtro {{ }} filtra instâncias que não contêm todas as propriedades/chaves especificadas. |
| 5 | CIM_ComputerSystem{{Name=/^run.*$/}.* | 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. O token de filtro {{ }} filtra instâncias que não contêm todas as propriedades/chaves especificadas. |
| 6 | CIM_ComputerSystem{{Name='runtime'}}[2].* | Recupera o segundo resultado de todas as instâncias de CIM_ComputerSystem e seus descendentes em que as instâncias têm uma propriedade Nome de "tempo de execução". A ordem de operações segue a sintaxe da consulta.
|
| 7 | CIM_ComputerSystem.CIM_RunningOS[0].Nome | Recupera a propriedade Nome da primeira instância CIM_OperatingSystem de cada instância CIM_ComputerSystem. O token do meio, CIM_RunningOS, é o nome da classe do Associador, não o resultado final. |
| 8 | CIM_ComputerSystem.CIM_RunningOS{{Nome=/CentOS{}}[0].Nome | Recupera a propriedade Nome da primeira instância CIM_OperatingSystem de cada instância CIM_ComputerSystem, em que cada instância CIM_OperatingSystem tem uma propriedade Nome que contém "CentOS". |
Resultados da CimIQL
Os resultados da Probe CIM são passados para o sensor da probe como um documento XML incorporado ao elemento <output>.
<!-- 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>