探索数据(Discovery)
通过Kibana中的Discovery组件,我们可以快速地进行数据的检索、查询。
一、使用探索数据功能
点击按钮可以打开Discovery页面。
我们发现没有展示任何的数据。但我们之前已经把数据导入到Elasticsearch中了。
Kibana提示,让我们扩大我们的查询的时间范围
默认Kibana是展示最近15分钟的数据。我们把时间范围调得更长一些,就可以看到数据了
将时间范围选择为1年范围内的,我们就可以查看到Elasticsearch中的数据了。
二、导入更多的Apache Web日志数据
- 将资料中的 access.log 文件上传到Linux
- 将access.log移动到/var/apache/log,并重命名为access.log.2
mv access.log /var/apache/log/access.log.2
- 启动FileBeat
./filebeat -e -c filebeat-logstash.yml
- 启动Logstash
bin/logstash -f config/filebeat-es.conf --config.reload.automatic
三、基于时间过滤查询
1、选择时间范围
2、指定查询某天的数据
查询2020年5月6日的所有日志数据。
3、从直方图上选择日期更细粒度范围
如果要选择查看某一天的日志,上面这种方式会有一些麻烦,我们有更快更容易的方式。
四、使用Kibana搜索数据
在Kibana的Discovery组件中,可以在查询栏中输入搜索条件。默认情况下,可以使用Kibana内置的标准查询语言,来进行快速查询。还有一种是遗留的基于Lucene的查询语法目前暂时可用,这种查询语法也可以使用基于JSON的Elasticsearch DSL也是可用的。当我们在Discovery搜索数据时,对应的直方图、文档列表都会随即更新。默认情况下,优先展示最新的文档,按照时间倒序排序的。
1、Kibana查询语言(KQL)
在7.0中,Kibana上线了新的查询语言。这种语言简洁、易用,有利于快速查询。
查询语法:
「字段:值」,如果值是字符串,可以用双引号括起来。
查询包含zhihu的请求
*zhihu*
查询页面不存在的请求
status : 404
查询请求成功和不存在的请求
status: (404 or 200)
查询方式为POST请求,并请求成功的日志
status: 200 and method: post
查询方式为GET成功的请求,并且响应数据大于512的日志
status: 200 and method: get and length > 512
查询请求成功的且URL为「/」开头的日志
uri: "\/\/*"
注意:因为/为特殊字符,需要使用反斜杠进行转义
2、过滤字段
Kibana的Discovery组件提供各种各样的筛选器,这样可以筛选出来我们关注的数据上。例如:我们只想查询404的请求URI。
指定过滤出来404以及请求的URI、从哪儿跳转来的日志
将查询保存下来,方便下次直接查看
下次直接点击Open就可以直接打开之前保存的日志了