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,我们还可以进行统计
展示如下