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만 얻는다.