相关文章推荐
喝醉的小笼包  ·  java.lang.NoSuchMethod ...·  1 年前    · 
逼格高的自行车  ·  Python+Django ...·  1 年前    · 
温文尔雅的紫菜汤  ·  c++ 平方符号-掘金·  1 年前    · 
慈祥的数据线  ·  python - '>=' not ...·  1 年前    · 
精彩文章免费看

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)

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

    3.通配符搜索

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

    4.正则表达式搜索

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

    5.模糊搜索

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

    6.近似搜索

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

    7.范围值搜索

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

  • 2021年全天
    date:[2021-01-01 TO 2021-12-31]
  • 数字1-5
    count:[1 TO 5]
  • alpha和omega之间的tag,不包括alpha和omega
    tag:{alpha TO omega}
  • 10以上的数字
    count:[10 TO *]
  • 在2021年之前的日期
    date:{* TO 2021-01-01}
  • 从1到但不包括5的数字
    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.空查询

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

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