Elasticsearch的数据就存储在硬盘中。当我们的访问日志非常大时,kabana绘制图形的时候会非常缓慢。而且硬盘空间有限,不可能保存所有的日志文件。如果我们想获取站点每天的重要数据信息,比如每天的访问量并希望能图像化的形式显示该如何做呢?
一、具体操作方法
获取数据之前你要知道你想要什么样的数据。比如我想获取每小时网站访问的PV,在kibana中肯定能获取到
这是在kibana中查询的每小时的pv,然后我们把他的查询json复制出来
把上述json粘贴到test文件中 然后使用如下语句即可查询上图显示的查询结果
curl -POST 'http://192.168.10.49:9200/_search' -d '@test'
{"took":940,"timed_out":false,"_shards":{"total":211,"successful":211,"failed":0},"hits"......
然后把返回的结果中的数据获取存入data数组中,这是你可以存入数据库也可以转换成json直接插入es
这种方法主要是通过elasticsearch的查询语句把数据查询出来在传参给其他地方。你输入固定的查询json它返回的json数据也是固定格式的,这样很方面就能从中挖掘出我们想要的数据!
二、php代码实现上述操作
class.php<?php
#从ES中导出数据
#两个参数:
#url为从