ELK系列-如何在Kibana中快速定位你想要的日志

2,607 阅读3分钟

前言

前面我们讲了ELK系列文章的安装备份和恢复,咱们今天来说说如何在Kibana中搜索你想要的日志,下面列举一些比较常用的搜索方式,以便快速定位到你想要的日志,从而进一步对日志进行分析并解决问题。下面我们就直接开工列举方式。


二、使用步骤

1.文本搜索

只需输入一个文本字符串。例如,如果您正在搜索web服务器日志,您可以输入safari来搜索术语safari的所有字段

2.特定字段中搜索

用字段的名称作为值的前缀。例如,您可以输入status:200来查找在status字段中包含值为200的所有条目。例子如下:

  1. status字段包含active。表达式为:status:active

  2. title字段包含quick或black。如果省略OR操作符,则使用默认操作符。表达式为:title:(quick OR black) 或者 title:(quick black)

  3. 其中author字段包含确切的短语“Jack”。表达式为:author:"Jack"

  4. 实体类多个字段混合查询如:book.content、book.name、book.date包含quick或black(注意我们需要用反斜杠来转义*)。表达式为:

book.*:(quick black)

  1. title字段有任何非空值。表达式为:_exists_:title

3.通配符搜索

通配符搜索可以在单独的条件上运行,使用?替换单个字符,*替换零个或多个字符。表达式为:qu?ck bla*。唯一要注意的是通配符查询可能会使用大量内存,并且性能非常差,你想想需要查询多少项才能匹配查询字符串“a* b* c*”。

4.正则表达式搜索

正则表达式可以通过将查询字符串包装在前后斜杠("/")中,例如: name:/joh?n(ath[oa]n)/。更多语法参考官网传送门

5.模糊搜索

我们可以使用“~”操作符来搜索与我们搜索词相似但又不完全相似的词,例如:quikc~ brwn~ foks~

6.近似搜索

邻近查询允许指定的单词间隔更远或以不同的顺序。

7.范围值搜索

可以为日期、数字或字符串字段指定范围。包含范围用方括号[最小到最大]指定,排除范围用花括号{最小到最大}指定。

  1. 2021年全天 date:[2021-01-01 TO 2021-12-31]
  2. 数字1-5 count:[1 TO 5]
  3. alpha和omega之间的tag,不包括alpha和omega tag:{alpha TO omega}
  4. 10以上的数字 count:[10 TO *]
  5. 在2021年之前的日期 date:{* TO 2021-01-01}
  6. 从1到但不包括5的数字 count:[1 TO 5}
  7. 一侧为无界的范围可以使用以下语法:
	age:>10
	age:>=10
	age:<10
	age:<=10
  1. 将上下边界与简化的语法结合起来,需要用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.空查询

如果查询字符串为空或仅包含空格,则查询将生成一个空结果集。

总结

通过以上的一些操作基本满足了工作中的需要,更重要是来一套组合并灵和运用。多加练习吧!