Kibana搜索技巧


Kibana 是干什么用的呢?官网如下描述

目前我们用的最多的就是底层用Elasticsearch存储,前端用Kibana查询,尤其是在排查问题查询日志的时候。因此我们需要了解一些基本的使用,好让我们能够快速精准的定位到错误日志出现的位置。

Elasticsearch是基于Lucene的,Kibana是基于Elasticsearch的,因此Kibana也是支持Lucene语法的,但是Lucene语法比较晦涩难懂,因此Kibana发明了一种类似SQL的语法,但是又不同于SQL,所以算是一种领域语言了,叫做KQL(Kibana Query Language),也就是在Kibana上面进行查询时使用的语法。

Kibanan上如何切换两种语法的查询方式

Kibana 官方文档教程 https://www.elastic.co/guide/en/kibana/current/discover.html
关于 KQL 的使用教程 https://www.elastic.co/guide/en/kibana/current/kuery-query.html

接下来我主要记录一下使用KQL查询的一些基本和常用的场景,其他用法看官方文档即可

Filter for documents that match a value

所有查询都是本着先分词后查询的原则。

message:null pointer
这个是搜索message中包含 null ,或者包含 pointer ,或者两者都包含的文档

那怎么禁止分词呢

message:“null pointer”
这个是搜索message中包含null pointer的文档

对于转义字符怎么处理呢

message: “https://example.com
message: https://example.com

使用带引号不转义或者不带引号进行转义的写法,需要转义的字符包括以下

():<>"*

Combining multiple queries

就是带有 AND 、OR 的查询条件

http.request.method: GET OR http.response.status_code: 400
这个是搜索http.request.method包含GET请求或者http.response.status_code包含400的文档

Visualize

默认情况下,Kibana 展示的是文档

但是我们可以把我们关注的字段展示出来

最终就会以下面的形式展示

然后点击Visualize,我们还可以进行统计

展示如下


评论
  目录