Kibana 是一个为 Logstash 和 ElasticSearch 提供的日志分析的 Web 接口。可使用它对日志进行高效的搜索、可视化、分析等各种操作。Kibana的使用场景主要集中在两方面:
实时监控。通过histogram面板,配合不同条件的多个queries可以对一个事件走很多个维度组合出不同的时间序列走势。时间序列数据是最常见的监控报警了。 问题分析。通过Kibana的交互式界面可以很快地将异常时间或者事件范围缩小到秒级或者个位数。期望一个完美的系统可以给你自动找到问题并且解决是不现实的,能够让你两三下就从TB级的数据里看到关键数据以便做出判断就很棒了。这时候,一些非histogram的其他面板还可能会体现出你意想不到的价值。全局状态下看似很普通的结果,可能在你锁定某个范围的时候发生剧烈的反方向的变化,这时候你就能从这个维度去重点排查。而表格面板则直观的显示出你最关心的字段,加上排序等功能。入库前字段切分好,对于排错分析真的至关重要。这里默认Kibana5已经安装部署完毕。预览图如下:
在开始使用Kibana之前,你需要告诉它打算探索哪个ElasticSearch索引。第一次访问的时候,你会被要求定义一个index pattern用来匹配一个或多个索引。
1、点击工具栏中的Management --> 选择index patterns --> 点击add new 按钮。默认情况下,Kibana认为你要访问的是通过Logstash导入ElasticSearch的数据。这时候你可以用默认的logstash-*作为你的index pattern。通配符(*)匹配索引名中零到多个字符。这里我写的index pattern为logs-bd-keyword*。 2、然后选择一个包含了时间戳的索引字段,可以用来做基于时间的处理。Kibana会读取索引的映射,然后列出所有包含了时间戳的字段(实际是字段类型为date的字段,而不是"看起来像时间戳的字段")。如果你的索引没有基于时间的数据,关闭Index contains time-based envents参数。 3、点击create之后,第一个被添加的pattern会自动被设置成默认值。如果有多个index pattern的时候,可以在Discover索引模式里选择一个进行探索数据。
a) 简单的文本搜索,直接输入文本字符串。比如,如果你在搜索网站服务器日志,可以输入Safari来搜索各字段中的Safari单词。 b) 要搜索特定字段中的值,则在值前加上字段名。比如,你可以输入status:200来限制搜索结果都是在status字段里有200的内容。 c) 要搜索一个值的范围,你可以用范围查询语法。比如,要查找4xx的状态码,你可以输入status:[400 TO 499]。 d) 要指定更负责的搜索标准,可以用布尔操作符AND,OR,和NOT。比如要查找4xx的状态码,还是php和html结尾的数据,你可以输入status:[400 TO 499] AND (extension:php OR extension:html)。
按字段过滤 你可以过滤搜索结果,只显示在某字段中包含了特定值的文档。也可以创建反向过滤器,排除包含特定字段值的文档。比如存在字段字段为responsetime,现在对该字段进行过滤,可以选择字段并点击add:如果想要移除,remove该字段即可:
下面再举一个添加过滤器的例子,每个字段下面默认会显示次数前5的值,比如添加字段localip的值为10.205.51.20的过滤器,只要点击+号的按钮即可,结果只显示包含该localip为10.205.51.20的文档;同样地反向过滤可以点击-号:
如果想要移除,点击删除符号即可
《ELK stack权威指南》 https://www.elastic.co/guide/en/kibana/5.1/index.html
