ELK系列-如何在Kibana中快速定位你想要的日志
前言
前面我们讲了 ELK系列文章的安装备份和恢复 ,咱们今天来说说如何在Kibana中搜索你想要的日志,下面列举一些比较常用的搜索方式,以便快速定位到你想要的日志,从而进一步对日志进行分析并解决问题。下面我们就直接开工列举方式。
二、使用步骤
1.文本搜索
只需输入一个文本字符串。例如,如果您正在搜索web服务器日志,您可以输入safari来搜索术语safari的所有字段
2.特定字段中搜索
用字段的名称作为值的前缀。例如,您可以输入status:200来查找在status字段中包含值为200的所有条目。例子如下:
status字段包含active。表达式为:
status:active
title字段包含quick或black。如果省略OR操作符,则使用默认操作符。表达式为:
title:(quick OR black)
或者
title:(quick black)
其中author字段包含确切的短语“Jack”。表达式为:
author:"Jack"
实体类多个字段混合查询如:book.content、book.name、book.date包含quick或black(注意我们需要用反斜杠来转义*)。表达式为:
book.*:(quick black)
_exists_:title
3.通配符搜索
通配符搜索可以在单独的条件上运行,使用?替换单个字符,*替换零个或多个字符。表达式为:
qu?ck bla*
。唯一要注意的是通配符查询可能会使用大量内存,并且性能非常差,你想想需要查询多少项才能匹配查询字符串“a* b* c*”。
4.正则表达式搜索
正则表达式可以通过将查询字符串包装在前后斜杠("/")中,例如:
name:/joh?n(ath[oa]n)/
。更多语法参考官网
传送门
5.模糊搜索
我们可以使用“~”操作符来搜索与我们搜索词相似但又不完全相似的词,例如:
quikc~ brwn~ foks~
6.近似搜索
邻近查询允许指定的单词间隔更远或以不同的顺序。
7.范围值搜索
可以为日期、数字或字符串字段指定范围。包含范围用方括号[最小到最大]指定,排除范围用花括号{最小到最大}指定。
date:[2021-01-01 TO 2021-12-31]
count:[1 TO 5]
tag:{alpha TO omega}
count:[10 TO *]
date:{* TO 2021-01-01}
count:[1 TO 5}
age:>10
age:>=10
age:<10
age:<=10
将上下边界与简化的语法结合起来,需要用and操作符连接两个子句:
age:(>=10 AND <20)
age:(+>=10 +<20)
8.关键字搜索
使用关键字操作符^使一个术语比另一个术语更相关。例如,如果我们想找到所有关于猫的信息,但我们对quick cat特别感兴趣:
quick^2 cat
^默认值是1,但可以是任何正浮点数。0到1会降低相关性。
也可以用于短语或群体:
"Jack"^2 (food)^4
9.布尔操作符搜索
默认情况下,只要有一个术语匹配,所有术语都是可选的。搜索foo bar baz将找到包含一个或多个foo或bar或baz的任何文档。
首选的操作符是+(这个项必须存在)和-(这个项必须不存在)。其他条款均为可选条款。例如,这个查询:
quick black+cat-news
cat 必须有的
news 必须不存在
quick和black是可选的,它们的存在增加了相关性
也支持熟悉的运算符AND、OR和NOT(也写为&&、||和!)。然而,这些操作符的影响可能比乍一看更复杂。NOT优先于AND, which优先于OR。而+和-只影响操作符右边的项,和和或可以影响左边和右边的项
((quick AND cat) OR (brown AND cat) OR cat) AND NOT news
10.组合搜索
多个术语或子句可以用括号组合在一起,形成子查询。
(quick OR brown) AND cat
组合搜索可以用于针对特定字段,或者增强子查询的结果。
status:(active OR pending) title:(full text search)^2
11.保留字符查询
\+ - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /
如果您需要在查询中使用以上作为操作符的字符(而不是作为操作符),那么您应该用反斜杠进行转义。
12.空查询
如果查询字符串为空或仅包含空格,则查询将生成一个空结果集。
通过以上的一些操作基本满足了工作中的需要,更重要是来一套组合并灵和运用。多加练习吧!