Kibana日志查询总结

导读:本篇文章讲解 Kibana日志查询总结,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

概述

下面的语法适用于 lucene 查询模式。

常用查询语法

1、要搜索一个确切的字符串,即精确搜索,需要使用双引号引清理

示例:

"/app/logs/nginx/acess.log"

2、如果不带引号,将会匹配每个单词

/app/logs/nginx/acess.log

3、~模糊搜索

"/app/~"
"马~"

4、*匹配0到多个字符

*oken
"马*"

5、?匹配单个字符

toke?n

6、+,- 搜索结果是否包含指定信息

注意查询条件和指定信息之间不能有空格直接就是(+/-)连接符。
+:搜索结果中必须包含词项;
-:不能包含词项。

# 查询结果包含小燕
"/app/api/order"+"小燕"
# 查询结果不包含小于燕,但包含小明
"/app/api/order"-"小于燕"+"小明"

firstname:(+H* -He*) 搜索firstname字段里H开头的结果,并且排除firstname里He开头的结果

7、组合查询,运算符必须大写

AND,OR,NOT

(uid  OR token )  AND version
"0eca9570-6441-4e2e-9d2c-09eb5764506b" AND "夏艺桐"

8、范围查询

[]:包含边界值;
{}:不包含边界值;
例如:

# 查询下面时间范围的日志,包含开始和结束两个时间
["2022-07-14 14:58:43.723" TO "2022-07-14 14:59:43.800"]
# 查询下面时间范围的日志,不包含开始和结束两个时间
{"2022-07-14 14:58:43.723" TO "2022-07-14 14:59:43.800"}

9、特殊字符需要在字符前加上转义字符\

特殊字符:+、-、&&、||、!、(、)、{、}、[、]、^、”、~、*、?、:、\

10、分组查询

(firstname:H* OR age:20) AND state:KS 先查询名字H开头年龄或者是20的结果,然后再与国家是KS的结合

查询语法总结

1、语法关键字

+ - && || ! ( ) { } [ ] ^ “ ~ * ? : /

如果所要查询的查询词中本身包含关键字,则需要用\进行转义(注意是本身!)

2、查询词(Term)

支持两种查询词,一种是单一查询词,如”hello”,一种是词组(phrase),如”hello world”。

3、查询域(Field)

例如:

message:"东电梯"

在查询语句中,可以指定从哪个域中寻找查询词,如果不指定,则从默认域中查找。
查询域和查询词之间用:分隔,如title:”Do it right”。
:仅对紧跟其后的查询词起作用,如果title:Do it right,则仅表示在title中查询Do,而it right要在默认域中查询。

例1:stream:“stdout”

在这里插入图片描述

例2:只搜“1”,可以搜到log和message两个字段都有1,搜 log:“1”,只可以搜到log字段的1

在这里插入图片描述
在这里插入图片描述

4、通配符查询(Wildcard)

支持两种通配符:?表示一个字符,表示多个字符。
通配符可以出现在查询词的中间或者末尾,如te?t,test
,tet,但决不能出现在开始,如test,?test。
例1:k8s-?
例2: k8s-*
例3:kube-syst*m

5、模糊查询(Fuzzy)

模糊查询的算法是基于Levenshtein Distance,也即当两个词的差别小于某个比例的时候,就算匹配,如roam~0.8,即表示 相似度大于0.8才算匹配。
例1:fetc~
例2:con~
例3:“2栋单元”~0.8

6、区间查询(Range)

区间查询包含两种,一种是包含边界,用[A TO B]指定,一种是不包含边界,用{A TO B}指定。
如date:[20020101 TO 20030101],当然区间查询不仅仅用于时间,如title:{Aida TO Carmen}
例1:hostname:{k8s-1 TO k8s-5}
例2:时间范围查询

["2022-07-14 14:58:43.723" TO "2022-07-14 14:58:43.800"]

7、布尔操作符

布尔操作符包括连接符,如AND,OR,和修饰符,如NOT,+,-。
默认状态下,空格被认为是OR的关系,可以通过QueryParser.setDefaultOperator(Operator.AND)设置为空格为AND。
+表示一个查询语句是必须满足的(required),NOT和-表示一个查询语句是不能满足的(prohibited)。
例1:network AND error
例2: network OR error

8、组合

可以用括号,将查询语句进行组合,从而设定优先级。
例如:(jakarta OR apache) AND website
例1:network AND (error OR success)

参考

日志查询神器 Kibana简单使用
kibana日志搜索规则及搜索界面显示处理
你还在用命令看日志?快用 Kibana 吧,一张图片胜过千万行日志!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/100058.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!