Kibana查询语法

根据某个字段查询

  • 精确匹配: agent:"Mozilla/5.0"
  • 如果不带双引号,只要包含指定值就可以搜索到 agent:Mozilla/5.0
  • 如果是数值类型没有以上区别

范围查询

类型 语法
指定区间 response:[100 TO 200]
大于等于 response:[201 TO *]
小于等于 response:[* TO 200]
大于指定数值 response:{10 TO 20}

注意:TO 必须是大写, [ ] 表示端点数值包含在范围内,{ } 表示端点数值不包含在范围内。

不等于

  • 不等于:NOT
    例子:查询名字不为李四的学生
    NOT name:"lisi"

从指定时间到现在/或者查询指定时间前数据

  • 2015-05-20T09:20:41.943Z之后的数据: @timestamp:{2015-05-20T09:20:41.943Z TO *}

  • 2015-05-20T09:20:41.943Z之前的数据: @timestamp:{* TO 2015-05-20T09:20:41.943Z }

  • 指定时间范围: @timestamp:{2015-05-20T09:20:41.943Z TO 015-05-22T09:20:41.943Z}

注意:TO 必须是大写;09:20:41事实上是17:20:41,存在8个小时差

模糊搜索

  • ~ : 在一个单词后面加上~启用模糊搜索

first~ 也能匹配到 frist

近似搜索

  • 在短语后面加上~

"select where"~3 表示 select 和 where 中间隔着3个单词以内。

正则匹配

  • 包含指定值: request:/uploads*/

  • 不包含指定值: !request:/uploads*/

逻辑查询

  • AND(并且) request:/uploads*/ AND response:404

  • OR(或者) request:/uploads*/ OR response:200

  • 组合查询 (uid OR token) AND version

存在/不存在

  • 存在 _exists_:http :返回结果中需要有 http 字段

  • 不存在 _missing_:http :不能含有 http 字段

通配符

  • ? 匹配单个字符

  • * 匹配0到多个字符

kiba?a, el*search

? * 不能用作第一个字符,例如 :?text *text

特殊转义字符

+ – && || ! () {} [] ^” ~ * ? : \

以上字符当作值搜索的时候需要用\转义

上一篇:大数据系列之日志数据实时分析计算


下一篇:ELK7日志采集架构与实战