Kibana日志查询总结

概述

下面的语法适用于 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 吧,一张图片胜过千万行日志!

  • 0
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

融极

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值