Elastic学习之旅 (1) 初识ElasticSearch
最近需要用到ElasticSearch,于是想要系统学习了解下,于是这就开始啦。
什么是ElasticSearch?
ElasticSearch是一款开源的分布式搜索分析引擎,它可以提供近实时(Near Real Time)的分布式存储/搜索/分析引擎服务。
起源:Lucene
ElasticSearch起源于Lucene,Lucene是一个基于Java开发的搜索引擎类库,创建于1999年,于2005年成为Apache顶级开源项目。Lucene具有高性能和易扩展的优点,但也有一定的局限性:只能基于Java开发,学习曲线陡峭,原生不支持水平扩展等。
重生:ElasticSearch
2004年Shay Banon基于Lucene开发了Compass,2010年Shay Banon重写了Compass,并改名为ElasticSearch,它完美解决了Lucene的局限!
ElasticSearch支持分布式,可水平扩展,且降低了全文检索的学习曲线,可以被任何编程语言调用。
ElasticSearch的主要功能
ElasticSearch主要提供了三大核心功能:
(1)海量数据的分布式存储以及集群管理
服务和数据的高可用,水平扩展
(2)近实时搜索,性能卓越
结构化 / 全文 / 地理位置 / 自动完成
(3)海量数据的近实时分析
聚合功能
支持多种方式集成接入
ElasticSearch提供了多种方式进行接入:
(1)多种编程语言类库,如Java/.NET/Python/PHP等;
(2)RESTful API v.s Transport API
(3)JDBC & ODBC
ElasticStack 生态圈
ElasticStack目前有如下图所示的成熟生态圈:
- Logstash:数据处理管道,支持从不同来源采集数据并转换数据,最后将数据发送到不同的存储库中。
- Beats:轻量级的数据采集器,如Filebeat、Packetbeat、Winlogbeat、Metricbeat、Heartbeat等。
- Kibana:可视化分析利器,帮助我们解开对数据的任何疑问,强大的数据展示能力。
- X-Pack:商业化套件,也就是付费用户专享了,有OSS、Basic、黄金版 和 白金版几个License类别。
ELK 应用场景
我们常常所听到的ELK其实是ElasticSearch + Logstach + Kibana的组合缩写,ELK被广泛的应用在下面这几个应用场景中:
(1)网站搜索 / 垂直搜索 / 代码搜索
(2)日志管理与分析 / 安全指标监控 / 应用性能监控
其中,日志管理与分析 可能是大家最熟悉的应用场景,因为日志对应用系统来说太重要了,它就像是医生给病人看病,日志就是病人对自己的陈述。
小结
本篇,我们了解了ElasticSearch是什么,它有什么样的特点,提供了什么主要的功能 以及 ELK的主要应用场景。至今,ElasticSearch已有超过2.5亿的下载量,不仅有良好的开发者社区,更有大量的互联网公司使用案例。
下一篇,我们就搭建一个ElasticSearch,并进行简单的配置,玩起来!
参考资料
极客时间,阮一鸣,《ElasticSearch核心技术与实战》