CIM 프로브

  • 릴리스 버전: Australia
  • 업데이트 날짜 2026년 03월 12일
  • 소요 시간: 12분
  • CIM 프로브는 WBEM 프로토콜을 사용하여 데이터 객체 및 속성 세트에 대해 특정 CIM 서버인 CIM Object Manager를 쿼리합니다.

    프로브 매개변수 구성에 대한 지침은 다음 문서를 참조하십시오 프로브 매개변수 설정.

    다음 매개변수를 CIM 프로브에 전달할 수 있습니다.

    표 1. CIM 프로브
    매개변수 설명 기본값
    소스 [필수] 연결할 초기 호스트입니다. 없음
    포트 연결할 포트입니다. 비어 있는 경우 값은 http = 5988, https = 5989와 같은 "schema" 매개변수에 의해 결정됩니다. 5988 또는 5989
    스키마 [필수] 사용할 스키마: '"http"' 또는 '"https"' http
    네임스페이스 [필수] CIM 네임스페이스입니다. 쿼리에 의해 재정의될 수 있습니다. 없음
    쿼리 [필수] 결과를 처리하고 반환할 CIM 프로브 쿼리의 세미콜론으로 구분된 목록입니다. 없음
    재시도 네트워크 연결 문제로 인해 실패하는 경우 쿼리를 다시 시도할 횟수입니다. 2
    connection_timeout 프로브가 서버에 연결하는 시간(밀리초)입니다. 5000
    socket_timeout 프로브가 데이터를 읽어야 하는 시간(밀리초)입니다. 5000

    CimIQL(CIM Intermediate Query Language)은 키, 필터 및 닷워킹을 사용하여 CIM 스키마를 통과합니다.

    매개변수 확장

    CIM 쿼리 언어는 표준 SNC 전처리 프로브 매개변수 확장을 지원합니다. 다음과 같이 변수 이름을 캡슐화하여 쿼리에 변수를 넣습니다.

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

    ${foobar} 텍스트는 CIM 프로브에 전달된 foobarprobe 매개변수의 내용으로 대체됩니다. Barfoo도 마찬가지입니다.

    시미클

    CimIQL(CIM Intermediate Query Language)은 CIM 제공자 쿼리 프로세스를 단순화하도록 설계된 중간 언어입니다.

    CimIQL은 현재 표준 WBEM(Web-Based Enterprise Management) 프로토콜 스택을 지원하지만 WS-MAN(Web Services-Management)과 같은 다른 프로토콜 스택이 향후에 추가될 수 있습니다. 쿼리 언어 구문은 의 WMI 쿼리 언어 및 UNIXwbemcli 명령의 Microsoft요소에서 차용합니다. CimIQL 라이브러리는 순수 Java 구현입니다.

    주:
    CimIQL은 "simicle"로 발음합니다.

    CimIQL 구문

    CimIQL 구문은 쿼리와 서로 다른 토큰을 포함한 여러 요소로 구성됩니다.

    표 2. CimIQL 구문 요소 설명
    요소 설명
    설명 CimIQL의 가장 기본적인 요소는 유효한 입니다. 문에는 마침표로 구분된 여러 쿼리가 포함됩니다. 캐릭터.
    쿼리 는 높은 수준의 프로토콜 독립적 단일 요청을 나타냅니다. 각 쿼리는 중첩된 언어 구성요소와 토큰으로 알려진 하위 구성요소로 구성됩니다.
    토큰 은 CimIQL 구문의 특정 어휘적 측면을 설명합니다.
    운영 토큰 각 쿼리의 첫 번째 토큰은 수행할 전체 논리 연산을 나타내는 이어야 합니다.
    구성요소 토큰 은 운영 토큰의 하위 구성요소입니다.
    결과 각 쿼리는 결과와 쌍을 이룬 다음 문의 다음 쿼리에 입력으로 제공됩니다. 객체 세트와 해당 속성으로 구성됩니다.

    CimIQL 운영 토큰

    CimIQL 프로브에는 운영 토큰이 필요합니다.

    다음의 각 핵심 운영은 HTTP 표준을 통한 CIM 운영 에 대응합니다.

    표 3. CimIQL 운영 토큰 요약
    값 반환 세부사항 동등한 HTTP를 통한 CIM 운영
    클래스 객체 객체 가져오기

    모든 고유 키( 키 토큰)와 선택적 매개변수 토큰을 쉼표로 구분하여 지정하여 특정 클래스의 단일 객체를 검색합니다.

    인스턴스 가져오기
    클래스 객체 객체 열거

    조건 토큰매개변수 토큰 집합과 일치하는 객체를 검색합니다.

    열거형 인스턴스
    클래스 객체 연결된 객체 열거

    이전 쿼리의 각 결과와 연결된 객체를 검색합니다.

    연결자
    문 결과 대체

    이전 명명된 문의 결과를 자체 문의 다음 쿼리에 입력으로 공급하는 no-op 토큰입니다.

    명명된 문의 결과 참조

    객체 토큰 가져오기

    <classname>{<key token>,<parameter token>,...}
    • 모든 고유 키(키 토큰, 키 토큰)와 선택적 매개변수 토큰을 쉼표로 구분하여 지정하여 특정 클래스의 단일 객체를 검색합니다. 이 토큰을 이라고도 합니다.
    • <classname>은 원하는 객체의 대/소문자를 구분하는 CIM 클래스 이름입니다. 기본적으로 지정된 클래스 및 확장 클래스의 객체는 검색됩니다.
    • 키 및 매개변수 토큰을 한 쌍의 중괄호 {...}로 묶습니다.
    • 이 토큰은 문에서 첫 번째 쿼리로 사용해야 합니다.
    • 반환: 클래스 객체
    • 예제:
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    객체 열거 토큰

    <classname>{{<condition token>,<parameter token>,...}}또는 <배열 인덱스 토큰> 또는 <classname><array 인덱스 토큰>
    • 조건 토큰매개변수 토큰 집합과 일치하는 객체를 검색합니다. 이 토큰을 이라고도 합니다.
    • 조건 토큰과 매개변수 토큰을 두 쌍의 중괄호 {{...}}로 묶습니다. 필요한 조건이나 매개변수가 없는 경우 중괄호는 선택 사항입니다.
    • <classname>은 원하는 객체의 대/소문자를 구분하는 CIM 클래스 이름입니다. 기본적으로 지정된 클래스 및 확장 클래스의 객체는 검색됩니다.
    • 인덱스 토큰은 선택 사항입니다.
    • 이 토큰은 문에서 첫 번째 쿼리로 사용해야 합니다.
    • 반환: 클래스 객체
    • 예제:
      CIM_ComputerSystem{{Name!='runtime'}}.*

    연결된 객체 열거 토큰

    연결 <class name>{{<property 필터 토큰>,<parameter token>,...}}<배열 인덱스 토큰> 또는 <연결 클래스 이름><배열 인덱스 토큰>
    • 이전 쿼리의 각 결과와 연결된 객체를 검색합니다.
    • 조건 토큰매개변수 토큰을 두 쌍의 중괄호 {{...}}로 묶습니다. 필요한 속성, 필터 또는 매개변수가 없는 경우 중괄호는 선택 사항입니다.
    • <association classname>은 두 객체를 함께 연결하는 다대다 또는 일대다 클래스의 이름입니다. 기본적으로 지정된 클래스 및 확장 클래스의 객체는 검색됩니다.
    • 결과 객체의 클래스 이름에 따라 결과를 필터링하도록 <매개변수 토큰>인 ResultClass를 지정할 수 있습니다.
    • 인덱스 토큰은 선택 사항입니다.
    • 이 토큰은 문에서 첫 번째 쿼리로 사용하면 안 됩니다.
    • 반환: 클래스 객체
    • 예제:
      CIM_ComputerSystem{{Name='runtime'}}[2].*

    대체 토큰

    ${<statement name>}
    • 이전 명명된 문의 결과를 자체 문의 다음 쿼리에 입력으로 공급하는 no-op 토큰입니다.
    • 반환: void
    • 예제:
      $(lastComputer).ElementName

    CimIQL 구성요소 토큰

    CimIQL 프로브에는 운영 토큰의 하위 구성요소인 구성요소 토큰이 필요합니다.

    다음 토큰은 운영 토큰의 하위 구성요소입니다.
    표 4. CimIQL 구성요소 토큰 요약
    토큰 세부사항
    속성 토큰 * 또는 <property name>,<property name>,...

    최종 결과 세트의 각 객체에 대해 반환되는 속성을 지정합니다.

    쿼리 구분 기호 토큰 . (기간)

    쿼리를 구분합니다.

    인덱스 토큰 [색인]

    앞의 쿼리 결과를 지정된 정수 인덱스의 단일 객체로 줄입니다.

    키 토큰 <키 이름>='<값>'

    키로 지정된 객체 속성을 정확한 값과 일치시킵니다.

    조건 토큰 <속성 이름><조건부 연산자><포함된 값>

    지정된 조건에 따라 객체의 단일 속성을 일치시킵니다.

    매개변수 토큰 <parameter name>:'<value>'

    호출 중인 운영에 <매개변수 이름>으로 매개변수를 전달합니다. 매개변수는 CimIQL 전처리 중에 사용되거나 요청을 통해 CIMOM에서 사용될 수 있습니다.

    속성 토큰

    * 또는 <property name>,<property name>,...
    • 최종 결과 세트의 각 객체에 대해 반환되는 속성을 지정합니다.
    • 와일드카드 *는 사용 가능한 모든 속성을 반환합니다. 그렇지 않으면 원하는 각 속성 이름이 쉼표로 구분된 목록 내에서 제공됩니다.
    • 이 토큰은 각 문의 끝에 필요합니다.
    • 예제:
      CIM_ComputerSystem[0].*

    쿼리 구분 기호 토큰

    . (기간)
    • 쿼리를 구분합니다.
    • 예제:
      CIM_ComputerSystem.PrimaryOwnerContact

    인덱스 토큰

    [색인]
    • 앞의 쿼리 결과를 지정된 정수 인덱스의 단일 객체로 줄입니다.
    • 이 토큰은 항상 옵션입니다.
    • 예제:
      CIM_ComputerSystem[0].*

    키 토큰

    <키 이름>='<값>'
    • 키로 지정된 객체 속성을 정확한 값과 일치시킵니다.
    • <키 이름>은 키로 사용되는 속성의 이름입니다.
    • 예제:
      CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.*

    조건 토큰

    <속성 이름><조건부 연산자><포함된 값>
    • 지정된 조건에 따라 객체의 단일 속성을 일치시킵니다.
    • <속성 이름>은 일치할 속성의 이름입니다.
    • <조건부 연산자>는 속성의 실제 값을 예상 값과 비교하는 방법을 결정합니다. 사용 가능한 연산자는 같음 (=) 및 부등식 (!=)입니다.
    • <포함된 값>은 다음 중 하나여야 합니다.
      • 작은따옴표로 묶은 리터럴 값 ' ... '. 예시: foo='bar'
      • 한 쌍의 슬래시 / ... /로 묶은 정규식입니다. 예시: foo=/bar.*/
    • 예제:
      CIM_ComputerSystem{{Name!='runtime'}}.*

    매개변수 토큰

    <parameter name>:'<value>'
    • 호출 중인 운영에 <매개변수 이름>으로 매개변수를 전달합니다. 매개변수에 따라 요청을 통해 CIMOM(Common Information Model Object Manager)에서 CimIQL 전처리 중에 매개변수를 사용할 수 있습니다.
    • 예제:
      CIM_ComputerSystem.CIM_RunningOS{{ResultClass:'Win32_ComputerSystem'}}.*

    CimIQL 튜토리얼

    각 예가 이전 예 위에 빌드되는 예에 따른 튜토리얼입니다.

    표 5. CimIQL 튜토리얼
    순서 CimIQL 문 결과
    1 CIM_ComputerSystem[0].* CIM_ComputerSystem의 모든 인스턴스와 해당 하위 항목의 첫 번째 결과를 검색합니다. 모든 속성을 검색합니다.
    2 CIM_ComputerSystem.PrimaryOwnerContact CIM_ComputerSystem의 모든 인스턴스와 해당 하위 항목을 조회합니다. PrimaryOwnerContact라는 하나의 속성만 조회합니다.
    3 CIM_ComputerSystem{CreationClassName='Linux_ComputerSystem',Name='runtime'}.* CIM_ComputerSystem의 고유한 단일 인스턴스와 해당 하위 항목을 검색합니다. 모든 키 토큰 을 {} ID 토큰 내에 지정해야 합니다.
    4 CIM_ComputerSystem{{Name!='runtime'}}.*

    이름 속성 이 "런타임"이 아닌 CIM_ComputerSystem의 모든 인스턴스와 하위 항목을 검색합니다.

    필터 토큰 {{ }}은 지정된 모든 속성/키를 포함하지 않는 인스턴스를 필터링합니다.

    5 CIM_ComputerSystem{{Name=/^run.*$/}}.*
    / / 문자 내에 포함된 정규 표현식과 값이 일치하는 CIM_ComputerSystem의 모든 인스턴스와 하위 항목을 검색합니다.
    주:
    정규식에는 작은따옴표가 필요하지 않습니다.

    필터 토큰 {{ }}은 지정된 모든 속성/키를 포함하지 않는 인스턴스를 필터링합니다.

    6 CIM_ComputerSystem{{Name='runtime'}}[2].*

    인스턴스의 속성 이름이 "런타임"인 CIM_ComputerSystem 및 해당 하위 항목의 모든 인스턴스의 두 번째 결과를 검색합니다.

    운영 순서는 쿼리 구문을 따릅니다.
    1. 모든 CIM_ComputerSystem 및 하위 항목에 대한 쿼리 서버입니다.
    2. 이름 속성을 기준으로 결과를 필터링합니다.
    3. 필터를 통과한 두 번째 인스턴스를 검색합니다.
    7 CIM_ComputerSystem.CIM_RunningOS[0]입니다. 이름

    각 CIM_ComputerSystem 인스턴스의 첫 번째 CIM_OperatingSystem 인스턴스에 대한 이름 속성을 조회합니다.

    CIM_RunningOS 중간 토큰은 최종 결과가 아니라 Associator 클래스의 이름입니다.

    8 CIM_ComputerSystem.CIM_RunningOS{{name=/CentOS/}}[0]입니다. 이름 각 CIM_ComputerSystem 인스턴스의 첫 번째 CIM_OperatingSystem 인스턴스에 대한 이름 속성을 검색합니다. 여기서 각 CIM_OperatingSystem 인스턴스에는 "CentOS"가 포함된 이름 속성이 있습니다.

    CimIQL 결과

    CIM 프로브 결과는 요소 내에 <output> 포함된 XML 문서로 프로브 센서에 전달됩니다.

    다음은 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>