PHP开发中使用es查询数据

ELK
在这里插入图片描述

官网地址:https://www.elastic.co/cn/

官网权威指南:https://www.elastic.co/guide/cn/elasticsearch/guide/current/index.html

安装指南:https://www.elastic.co/guide/en/elasticsearch/reference/5.x/rpm.html

ELK是Elasticsearch、Logstash、Kibana的简称,这三者是核心套件,但并非全部。

Elasticsearch是实时全文搜索和分析引擎,提供搜集、分析、存储数据三大功能;是一套开放REST和JAVA API等结构提供高效搜索功能,可扩展的分布式系统。它构建于Apache Lucene搜索引擎库之上。

Logstash是一个用来搜集、分析、过滤日志的工具。它支持几乎任何类型的日志,包括系统日志、错误日志和自定义应用程序日志。它可以从许多来源接收日志,这些来源包括 syslog、消息传递(例如 RabbitMQ)和JMX,它能够以多种方式输出数据,包括电子邮件、websockets和Elasticsearch。

Kibana是一个基于Web的图形界面,用于搜索、分析和可视化存储在 Elasticsearch指标中的日志数据。它利用Elasticsearch的REST接口来检索数据,不仅允许用户创建他们自己的数据的定制仪表板视图,还允许他们以特殊的方式查询和过滤数据

简述:

Logstash:负责日志的收集,处理和储存
Elasticsearch:负责日志检索和分析
Kibana:负责日志的可视化
上面配置信息直接工具图形化界面查询的确很方便,如果想自己定制化使用到指定的后台管理,就需要自己去开发编程去采集数据并拿回来展示。
es收集的数据虽然可以在kibina里展示,但是要局限也比较大,不能用kibina展示的只能自己动手写web展示了,利用php读取elasticsearch数据,经过处理成echarts 图表数据通过web界面展示。这里展开阐述一下es采集
使用的查询包::

{
        "require": {
            "elasticsearch/elasticsearch": "^7.0",
            "ongr/elasticsearch-dsl": "^7.0"
        }
}

举例

public function esCollect($indexName)
    {
        $search = new Search();
        $timeRange = new RangeQuery('@timestamp', [
            'gte' => get_start_time() * 1000,
            'lt' => get_end_time() * 1000
        ]);
        $statusItem = new TermsAggregation($indexName, $indexName);
        $search->addQuery($timeRange);
        $search->addAggregation($statusItem);
        $params = [
            'index' => get_index($this->serviceName),
            'body' => $search->toArray(),
        ];
        $result = get_es_client()->search($params);
        unset($search);
        return $result;
    }

在这里插入图片描述
开发过程中,一般使用时候需要理解如何调用orm去查询es数据,主要是聚合统计分析,挑选合适的选择器,搭配索引去查询。

Elasticsearch有一个功能叫做聚合(aggregations),它允许你在数据上生成复杂的分析统计。它很像SQL中的GROUP BY但是功能更强大。

参考文献:https://es.xiaoleilu.com/index.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值