본문으로 건너뛰기
Kibana Query Language (KQL)

Kibana Query Language (KQL)

Kibana Query Language (KQL)을 정리한다.

1. Kibana Query Language (KQL)

1.1 Terms Query

Field와 Value가 정확히 일치하는 Document만 출력하는 Query를 의미한다.

  • [Field]:[Value] : Field에 Value가 존재하는 Document만 얻는다.
    • respose:200 : response Field에 200 Value가 존재하는 Document만 얻는다.
    • message:ssup2 : message Field에 “ssup2” 문자열 Value가 존재하는 Document만 얻는다.
    • message:“ssup2 blog” : message Field에 “ssup2 blog” 문자열 Value가 존재하는 Document만 얻는다.

1.2. Boolean Query

not, and, or 논리 연산자를 이용하는 Query를 의미한다. 괄호를 이용하여 연산자 비교 대상 제한 및 우선순위를 변경할 수 있다.

  • not [Field]:[Value] : Field에 Value가 존재하지 않는 Document만 얻는다.
    • not respose:200 : response Field에 200 Value가 존재하지 않는 Document만 얻는다.
  • [Field1]:[Value1] and [Field2]:[Value2] : Field1에 Value1하고 Field2에 Value2가 존재하는 Document만 얻는다.
    • respose:200 and message:“ssup2” : response Field에 200 Value가 존재하고 message Field에 ssup2 문자열 Value가 존재하는 Document만 얻는다.
  • [Field]:([Value1] or [Value2]) : Field에 Value1이 존재하거나 Value2가 존재하는 Document만 얻는다.
    • response:(200 or 404) : response Field에 200 Value가 존재학거나 404 Value가 존재하는 Document만 얻는다.

1.3. Range Query

>, >=, <, <= 비교 연산자를 이용하는 Query를 의미한다.

    • [Field]:[Value]>[Number] : Field에 Number보다 작은 Value가 존재하는 Document만 얻는다.

1.4. Wildcard Query

Wildcard(*)를 이용하는 Query를 의미한다.

  • [Field]:* : Field가 존재하는 Document만 얻는다.
    • respose:* : response Field가 존재하는 Document만 얻는다.
  • [Field]:[Value]* : Field에 “Value” 문자열로 시작하는 Value가 존재하는 Document만 얻는다.
    • message:ssup* : message Field에 “ssup” 문자열로 시작하는 Value가 존재하는 Document만 얻는다.
  • [Field]*:[Value] : “Field” 문자열로 시작하는 Field에 Value가 존재하는 Document만 얻는다.
    • mess*:ssup2 : “mess” 문자열로 시작하는 Field에 “ssup2” 문자열 Value가 존재하는 Document만 얻는다.

1.5. Nested Field Query

Field 내부에 Field가 존재하는 Nested Field에 존재하는 쿼리를 의미한다.

  • [Field1]:{[Field2]:[Value]} : Field1 내부의 Field2에 Value가 존재하는 Document만 얻는다.
    • request:{response:200} : request Field 내부의 response Field에 200 Value가 존재하는 Document만 얻는다.

2. 참조