Kibana KQL查询语法

一、KQL简单介绍

KQL(Kibana Query Language),也就是在Kibana上面进行查询时使用的语法。

Kibana中也可以使用Lucene的查询语法。

KQL可以参考https://www.elastic.co/guide/en/kibana/current/kuery-query.html#_terms_query

二、KQL查询语法

1.Terms Query

说人话就是根据列名查那一列的内容

比如说我收集的日志内容都在列message中的。

现在我要查询日志带有select字符的。那就是

message:select

上面这个表达式,会查询出message字段中包含select的文档对象,注意是包含,包含的是select这一个词,比如下面这个种情况都会被查询出来

但是selection是不会被查出来的。这里查的都是词!词!

这个com.sid.controller.TestController.select也不会被查出来,默认是用空格分词的,不会用.分词。

 引号的使用

message:hello word

这个是搜索message中包含hello,或者包含world,或者两者都包含的情况。

如果只需要把整个hello word一起查询出来。则使用引号

message:"hello word"

2.Boolean queries

KQL支持or   and  not查询

其中and的优先级高于or

response:200 or extension:php

 匹配response列有200,或者extension列有php的内容

response:200 and extension:php

  匹配response列有200,并且extension列有php的内容

response:(200 or 404)

 匹配response列有200或者404的内容

response:200 and (extension:php or extension:css)

  匹配response列有200,并且extension列有php或者css的内容 

response:200 and extension:php or extension:css

  匹配response列有200并且extension列有php的内容。或者extension列有css的内容  

not response:200

 匹配response列没有200的内容

response:200 and not (extension:php or extension:css)

   匹配response列有200,并且extension列没有php、css的内容

tags:(success and info and security)

 匹配tags列有success并且有info并且有security的内容

3.Range queries

KQL支持对数字和日志列使用 <   <=  >  >=

account_number >= 100 and items_sold <= 200

4.Date range queries

@timestamp < "2021-01-02T21:55:59"

@timestamp < "2021-01"

@timestamp < "2021"

5.Exist queries

response:*

匹配所有response字段存在的文档(无论其值为多少) 

6.Wildcard queries

machine.os:win*

匹配machine.os字段中以win开头的内容 

machine.os*:windows 10

这是匹配了多个字段,匹配了以machine.os字段开头的所有字段里面有windows 10的内容

  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值