ELK kibana查询与过滤总结

 

Kibana自带了与或非的逻辑语法,还有取值范围等等。

AND

http_code:502 AND domain:"www.xnow.me"

以上搜索可以过滤出来www.xnow.me的返回码为502的请求。

OR

domain:"www.xnow.me" AND ( http_code:500 OR http_code:502)

以上搜索可以过滤出来www.xnow.me中,返回码是502或者500的请求。

NOT

http_code:500 AND NOT domain:"www.xnow.me"

以上搜索可以过滤非www.xnow.me的其它域名,返回码为500的请求。

取值范围

domain:"www.xnow.me" AND http_code:[400 TO 599]

使用以上搜索,可以看到www.xnow.me上,400到599的所有返回码,譬如404,503等等。

 

比如有个字段是响应时间request_time,如何查询request_time大于0.5的日志?

price:[0.5 TO *]

注意必须确保该字段为数值型

 

可以参考官方文档 https://www.elastic.co/guide/en/kibana/3.0/queries.html

 

高阶,使用正则表达式搜索

grep的牛逼之处正是在于其对正则表达式的支持,掌握了kibana的正则表达式,grep自然就变得无足轻重了。以下使用json格式的字符串进行过滤。以下是我最常用的正则的搜索,过滤请求路径中的内容,可以很方便的分析出指定url的请求量变化。

{
  "regexp": {
    "request": "/login.*"
  }
}

以上搜索会过滤出路径起始为/login的请求。大多数正则引擎都使用^和$来对字符串的起始和结束进行锚点,但是kibana不用,比如在上面的例子中,/login.*,在其它引擎中可以表示为,^/login,此处的.*也不可忽略。

其它正则语法大多类似,下面简单描述下:

匹配任何字符

. 点可以用来匹配任何字符,ab.d可以匹配到abcd或者ab2d。

匹配重复出现一次或者多次

+ 加号可以匹配前面出现的字符再出现一次或者好几次,a+.+c可以匹配到aabbc或者aaaaaxxxc

* 星号匹配字符出现0次或者多次。

? 问号匹配字符出现0次或者1次。

限制出现确切的次数

{} 大括号可以过滤字符出现的确切次数
{3} 表示前一字符出现三次
{2,4} 表示前一字符可出现2,3或者4次。
{2,} 表示前一字符至少重复2次

字符组

用小括号()括起来的字符串可以认作一个组,例如ababab可以认为是(ab)这个组重复了3次,可以被(ab){3}或者(ab)+等等来匹配。

波浪号

还有一个很神奇的波浪号,ab~d表示,第一个字符是a,第二个字符是b,后面是任意长度的任意字符串但不能是c,最后一个字符是d。所以abcdef可以使用如下的正则来匹配:

ab~df # 匹配
ab~cf # 匹配
ab~cdef # 不匹配
a~(cb)def # 匹配
a~(bc)def # 不匹配

关于kibana的正则还有很多其它用法,大多数我都没用到过,所以此处不一一列举了,感兴趣的童鞋可以参考Elasticsearch的官网的这篇文章Regexp Query,以上部分也大多是取自这篇文档。

 

 

参考:http://xnow.me/ops/how-to-search-in-elk.html

http://www.ttlsa.com/elk/elk-kibana-query-and-filter/

转载于:https://my.oschina.net/aibati2008/blog/775901

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值