ElasticSearch学习之一【ES概述】

Elasticsearch是一款非常强大的开源分布式搜索引擎,并且结合 Kibana、Logstash、 Beats 丰富的生态组件,也被广泛运用在大数据实时分析场景中,其中包括日志分析、指标监控、信息安全等领域。

其高性能、容易使用、容易扩展的特性,被大量的互联网公司使用,其中包括小米、饿了么、滴滴出行、携程旅游,同时国内公有云企业阿里云与 Elastic 合作推出了云服务产品“阿里云Elasticsearch”

一些知名公司
github利用ES进行代码搜索
* ES 词条搜索


ES起源于开源产品Lucene
Lucene
Java语言开发的搜索引擎类库,Apache*项目
优点:高性能、易扩展
局限性:只能基于Java语言开发、类库的接口学习曲线陡峭、原生不支持水平扩展

ES
支持分布式,可水平扩展
提供Restful接口,降低全文检索的学习曲线,可被任何编程语言调用。

ES的分布式架构
ElasticSearch学习之一【ES概述】

ES提供的一些基本功能:【主要是搜索聚合

1、海量数据的分布式存储以及集群管理
2、近实时搜索、性能卓越
3、海量数据近实时分析
示例:
ElasticSearch学习之一【ES概述】


Elastic Stack的生态圈
Elastic Stack 围绕 ELKB 构建出一套生态系统,适合大量应用场景。
Elasticsearch 拥有丰富的产品生态圈,从数据采集(Logstash、Beats)、存储/计算(Elasticsearch)到可视化管理【Kibana】,结合商业插件插件 X-pack,提供“搜索”、“日志分析”、“指标分析”、“安全分析”四大场景解决方案,并与国内外云服务企业合作,是一个全方面的产品生态圈。
ElasticSearch学习之一【ES概述】
Logstash:开源的服务器数据处理管道,支持从不同来源采集数据,转换数据,并将数据发送到不同的存储库中。特性:实时解析和转换数据、可扩展、可靠安全、监控
Kibana:可视化分析利器
Beats:轻量的数据采集器【从不同数据源搜集不同数据】


ES对日志管理提供很好的解决方案,一般日志分析主要包括以下几个层面:
日志搜集——格式化日志——全文检索——风险告警


结合业务场景与需求,我们可以基本分为两种业务架构

搜索类—可集成数据库同步数据/独立作为数据存储使用
ES与数据库的集成
ElasticSearch学习之一【ES概述】
日志型—Logstash 和 Beats 满足不同数据源,Kafka作为消息队列
指标分析/日志分析
ElasticSearch学习之一【ES概述】
Beats搜集数据
在数据量较大时,可引入Redis、Kafka、MQ等作为缓冲层,然后将数据发送到logstash
logstash对数据进行一系列转化和聚合发送到ES