ELK:Kibana使用分析介绍

应团队ELK使用需要,特写了一篇Kibana介绍使用相关文章。

以下演示基于官方Kibana演示页面:http://demo.elastic.co/packetbeat/#/discover

一、Kibana界面说明

    1.Discover页面

    这个面板主要提供了给用户基于记录做快速检索,查询框中输入的查询表达式为luence的query syntax. 在本文后面会分享一些常用的luence语法使用
    1.1 时间区间选择
        在查询面板中,一般默认是显示最近15分钟的数据。如果我们想查最近30分钟、一周、一年或者从2010-01-01到2010-02-01等区间就可以用到这个功能。
    1.2 自动刷新
在日志量比较大的时候,我们查看日志时一般会自己手动点击刷新来查看最新的数据。 那么能不能偷下懒,让Kibana来帮我们完成这个动作,也就是自动刷新呢? 当前可以,请看下面:
    

    2.Visualize页面

可视化页面可以基于查询条件组合生成很多类型的图表,例如:区域图、数据表、折线图、拼图、竖向图和能基于IP在地图展示的拼贴图等待,如下图所示:
    2.1 饼图演示(基于访问IP分析)
    下面基于访问IP,统计了在15分钟内访问TOP 50的客户端分布。其他的图表可以自己尝试去玩玩看,都大同小异。

3.Dashboard页面

这个页面上可以将多个已保存的图表创建为一个Dashboard,用作大屏展示。还提供了ifame的方式能将指定Dashboard嵌入到其他你想显示的页面里面。
多个图表支持鼠标拖动位置,同时还能选定指定区间数据进行细化查看。都是挺好用的功能。
下面我们来从官方提供的Dashboard挑选两个看看,对其他的感兴趣的可以自行去:http://demo.elastic.co/packetbeat/#/dashboard?_g=() 查看。
3.1 HTTP
这里显示总请求数、HTTP code分布数、按照时间序列柱状图展示、HTTP error分布、TOP N 请求等常用图表展示,如下图:
3.2 MySQL performance
提供了查询错误分布、CRUD以及ROLLBACK分布、MySQL读写、慢查询SQL语句、TOP N 语句等常用图表。

二、查询语法

    1.全文检索

        例子:在搜索框中检索和http相关的记录
        

    2.字段查询

        2.1 精确匹配
            字符串的话用英文双引号括起来,例如:查询server为app.server2的表达式为–>:server:”app.server2″
    
      
    2.2 整形查询
其他的类似,只不过特殊字符需要转义。
  2.3 限定字段全文搜索
    例如只在path中检索console存在的记录,取消双引号就好了。
    
 

 3.范围检索(数字、时间)

        3.1 查询输出字节数100~200之间的:bytes_out:[100 TO 200],可以用*代表无边界。
        
    3.2 查询时间区间
        这里一般会存在时区的问题,相差8个小时,但是我们不影响我们查询,查询的时候也少8个小时就好了。
        3.2.1 从指定时间到现在/或者查询指定时间前数据 
        表达式如下:
        dataField:{startTime TO endTime}  // 指定区间范围
        dataField:{* TO endTime}               // 指定结束时间
        dataField:{startTime TO *}              // 指定开始时间
 
        比如查询2016-06-30T09:20:41.943之后的数据,可以用:–>@timestamp:{2016-06-30T09:20:41.943Z TO *} , 上面是09:20:41事实上是17:20:41,8个小时差。
        
    4.正则
查询所有host非pub打头的记录,表达式为: –> !host:/pub*/,前面的英文感叹号用作取反。

下面来个复杂点的,多个条件组合查询。表达式为:
!host:”tjwq01-cp-net-neutron002204.tjwq01.ksyun.com” AND !host:”tjwq01-cp-control002193.tjwq01.ksyun.com” AND !host:”tjwq01*” AND !host:/pub*/
可用用AND和OR来做逻辑与、逻辑或,和RDBMS查询意思一样。
    5.逻辑操作
基于AND 和 OR做条件连接即可,
语法为:
condition1 AND condition2 OR condition3
比如:
age:20 AND address:”beijing” OR address:”shanghai”
    6.存在/不存在
一条语句解释两个关键字: _exists_:host AND _missing_:bill , 表达的意思是查询存在host并且没有bill字段的记录。

    7.特殊转义字符
+ – && || ! () {} [] ^” ~ * ? : \
以上字符当作值搜索的时候需要用\转义

8.模糊搜索

~:在一个单词后面加上~启用模糊搜索
first~ 也能匹配到 frist
还可以指定需要多少相似度cromm~0.3 会匹配到 from 和 chrome
数值范围0.0 ~ 1.0,默认0.5,越大越接近搜索的原始值
 

 

9.近似搜索

    在短语后面加上~
    “select where”~3 表示 select 和 where 中间隔着3个单词以内
    拓展阅读:
    0.《Elasticsearch 权威指南(中文版)》http://es.xiaoleilu.com/index.html
    参考资料:
    0.《ELK:kibana使用的lucene查询语法》https://segmentfault.com/a/1190000002972420
    1.《ELK kibana查询与过滤(17th)》http://www.ttlsa.com/elk/elk-kibana-query-and-filter/
    2.《Kibana示例》http://demo.elastic.co/packetbeat/

 

 

Bill

赶紧打开电脑 写两行代码压压惊 ~

发表评论

电子邮件地址不会被公开。 必填项已用*标注