一、关于Elastic Search

1.1简介

在这里插入图片描述

官网:https://www.elastic.co/cn/downloads/elasticsearch

Elaticsearch,简称为es,es是一个开源的高扩展分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别(大数据时代)的数据。

es也使用java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。

据国际权威的数据库产品评测机构DB Engines的统计,在2016年1月,ElasticSearch已超过Solr等,成为排名第一的搜索引擎类应用

1.2发展

许多年前,一个刚结婚的名叫 Shay Banon 的失业开发者,跟着他的妻子去了伦敦,他的妻子在那里学习厨师。在寻找一个赚钱的工作的时候,为了给他的妻子做一个食谱搜索引擎,他开始使用 Lucene 的一个早期版本。
直接使用 Lucene 是很难的,因此 Shay 开始做一个抽象层,Java 开发者使用它可以很简单的给他们的程序添加搜索功能。 他发布了他的第一个开源项目 Compass
后来 Shay 获得了一份工作,主要是高性能,分布式环境下的内存数据网格。这个对于高性能,实时,分布式搜索引擎的需求尤为突出, 他决定重写 Compass,把它变为一个独立的服务并取名 Elasticsearch

第一个公开版本在2010年2月发布,从此以后,Elasticsearch 已经成为了 Github 上最活跃的项目之一,他拥有超过300名 contributors(目前736名 contributors )。 一家公司已经开始围绕 Elasticsearch 提供商业服务,并开发新的特性,但是,Elasticsearch 将永远开源并对所有人可用。
据说,Shay 的妻子还在等着她的食谱搜索引擎…

在这里插入图片描述

Elasticsearch 于2010年提交到 GitHub。

  • 2010年2月8日推出了 V0.4.0 的发行版本,2010年2月12日推出 V1.0.0 版本,2016年2月2日推出 V1.7.5 版本, 此为 1.X 最终版本,不再更新。
  • 2015年10月28日推出 V2.0.0 版本,2017年7月25日推出 V2.4.6 版本,此为 2.X 最终版本,不再更新。
  • 2016年10月26日推出 V5.0.0 版本,2018年2月20日推出 V5.6.8 版本,此并不是 5.X 的最终版本,还在更新中……
  • 2017年11月14日推出 V6.0.0 版本,2018年2月20日推出 V6.2.2 版本。
  • ……

Elasticsearch 版本更新还在持续迭代进行中。

从以上更新我们也能得出,ES5.X 的末期版本和 ES6.X 的初期版本时间存在重叠。

在 Elasticsearch5.X 之前的版本中,Kibana 和 Logstash 各有自己的一套版本管理体系。如 Kibana4.X 对应 Elasticsearch2.3.X。

为统一规范化版本管理,Elasticsearch 跃过 3.X 大版本、4.X 大版本,直接和 Kibana、Logstash、Feat 升级为相同的 5.X、6.X 乃至以后的 7.X 版本。

1.3使用案例

  • 2013年初,GitHub抛弃了Solr,采取ElasticSearch 来做PB级的搜索。 “GitHub使用ElasticSearch搜索20TB
    的数据,包括13亿文件和1300亿行代码”
  • 维基百科:启动以elasticsearch为基础的核心搜索架构
  • SoundCloud:“SoundCloud使用ElasticSearch为1.8亿用户提供即时而精准的音乐搜索服务”
  • 百度:百度目前广泛使用ElasticSearch作为文本数据分析,采集百度所有服务器上的各类指标数据及用户自定义数据,通过对各种数据进行多维分析展示,辅助定位分析实例异常或业务层面异常。目前覆盖百度内部20多个业务线(包括casio、云分析、网盟、预测、文库、直达号、钱包、风控等),单集群最大100台机器,200个ES节点,每天导入30TB+数据
  • 新浪使用ES 分析处理32亿条实时日志
  • 阿里使用ES 构建挖财自己的日志采集和分析体系

img

1、维基百科,类似百度百科,全文检索,高亮,搜索推荐/2
2、The Guardian (国外新闻网站) ,类似搜狐新闻,用户行为日志(点击,浏览,收藏,评论) +社交网络数据(对某某新闻的相关看法) ,数据分析,给到每篇新闻文章的作者,让他知道他的文章的公众反馈(好,坏,热门,垃圾,鄙视,崇拜)
3、Stack Overflow (国外的程序异常讨论论坛) , IT问题,程序的报错,提交上去,有人会跟你讨论和回答,全文检索,搜索相关问题和答案,程序报错了,就会将报错信息粘贴到里面去,搜索有没有对应的答案
4、GitHub (开源代码管理),搜索 上千亿行代码
5、电商网站,检索商品
6、日志数据分析, logstash采集日志, ES进行复杂的数据分析, ELK技术, elasticsearch+logstash+kibana
7、商品价格监控网站,用户设定某商品的价格阈值,当低于该阈值的时候,发送通知消息给用户,比如说订阅牙膏的监控,如果高露洁牙膏的家庭套装低于50块钱,就通知我,我就去买
8、BI系统,商业智能, Business Intelligence。比如说有个大型商场集团,BI ,分析一下某某区域最近3年的用户消费 金额的趋势以及用户群体的组成构成,产出相关的数张报表, **区,最近3年,每年消费金额呈现100%的增长,而且用户群体85%是高级白领,开-个新商场。ES执行数据分析和挖掘, Kibana进行数据可视化
9、国内:站内搜索(电商,招聘,门户,等等),IT系统搜索(OA,CRM,ERP,等等),数据分析(ES热门
的一一个使用场景)

二、下载安装

2.1安装ES

2.1.1下载

JDK8,最低要求

使用Java开发,必须保证ElasticSearch​的版本与Java的核心jar包版本对应!(Java环境保证没错)

Elasticsearch:官方分布式搜索和分析引擎 | Elastic https://www.elastic.co/cn/elasticsearch/

image-20230518095558705

image-20230518100551986

image-20230518100610896

image-20230518101209912


解压后文件
image-20230518101321252

image-20230518101354213

2.1.2运行

image-20230518101012764

浏览器输入:http://127.0.0.1:9200 查看效果
在这里插入图片描述

2.2 安装ES-head插件(图形化插件)

上述可以发现,ElasticSearch不同于Solr自带图形化界面,我们可以通过安装ElasticSearch的head插件,完成图形化界面的效果,完成索引数据的查看。安装插件的方式有两种,在线安装和本地安装。本文档采用本地安装方式进行head插件的安装。elasticsearch-5-*以上版本安装head需要安装node和grunt 。

2.2.1安装node环境

Download | Node.js https://nodejs.org/en/download

image-20230518102718668

image-20230518102845039

image-20230518102921126

img

image-20230518103127955

安装完后cmd查看版本node -v

image-20230518103411671

2.2.2安装grunt

grunt是一个很方便的构建工具,可以进行打包压缩、测试、执行等等的工作,5.x里之后的head插件就是通过grunt启动的。因此需要安装grunt.

npm install -g grunt-cli

查看版本号 grunt -version

注意:如果提示grunt命令不存在,转移博主node安装教程篇

image-20230518105340724

image-20230518113328291

2.2.3下载head插件

1.网址:https://github.com/mobz/elasticsearch-head下载安装包

image-20230518114131381

复制项目https链接,通过idea,clone下载

image-20230518110817051

image-20230518111530249

3.进入head文件夹下,执行命令:npm install (此处是为安装进行安装pathomjs)

如果安装速度慢,设置成淘宝的镜像重新安装 npm config set registry https://registry.npm.taobao.org

image-20230518111855847

image-20230518112132957

2.2.4启动head

image-20230531165355074

grunt server

安装完成之后npm run start或grunt server,启动head插件

image-20230518112239888

image-20230518113831989

2.2.5修改es使用的参数(支持跨域)

编辑D:\elasticsearch\elasticsearch-7.3.2-windows-x86_64\elasticsearch-7.3.2\config\elasticsearch.yml文件(目录根据保存位置调整)

image-20230518112506472

目的是使ES支持跨域请求

# 增加新的参数,这样head插件可以访问es
http.cors.enabled: true 
http.cors.allow-origin: "*"

2.2.6修改完配置将es重启

浏览器访问 http://localhost:9100
在这里插入图片描述

三、ELK下载安装(附)

3.1了解ELK

  • ELK是

    Elasticsearch、Logstash、 Kibana三大开源框架首字母大写简称

    。市面上也被成为Elastic Stack。

    • 其中Elasticsearch是一个基于Lucene、分布式、通过Restful方式进行交互的近实时搜索平台框架。

      • 像类似百度、谷歌这种大数据全文搜索引擎的场景都可以使用Elasticsearch作为底层支持框架,可见Elasticsearch提供的搜索能力确实强大,市面上很多时候我们简称Elasticsearch为es。
    • Logstash是ELK的中央数据流引擎,用于从不同目标(文件/数据存储/MQ )收集的不同格式数据,经过过滤后支持输出到不同目的地(文件/MQ/redis/elasticsearch/kafka等)。

    • Kibana可以将elasticsearch的数据通过友好的页面展示出来 ,提供实时分析的功能。

  • 市面上很多开发只要提到ELK能够一致说出它是一个日志分析架构技术栈总称 ,但实际上ELK不仅仅适用于日志分析,它还可以支持其它任何数据分析和收集的场景,日志分析和收集只是更具有代表性。并非唯一性。

收集清洗数据(Logstash) ==> 搜索、存储(ElasticSearch) ==> 展示(Kibana)

img

3.2安装 Kibana

Kibana 是一个开源的分析与可视化平台,设计出来用于和 Elasticsearch 一起使用的。你可以用 Kibana 搜索、查看存放在 Elasticsearch 中的数据。Kibana 与 Elasticsearch 的交互方式是各种不同的图表、表格、地图等,直观的展示数据,从而达到高级的数据分析与可视化的目的。
Elasticsearch、Logstash 和 Kibana 这三个技术就是我们常说的 ELK 技术栈,可以说这三个技术的组合是大数据领域中一个很巧妙的设计。一种很典型的MVC思想,模型持久层,视图层和控制层。Logstash 担任控制层的角色,负责搜集和过滤数据。Elasticsearch 担任数据持久层的角色,负责储存数据。而我们这章的主题 Kibana 担任视图层角色,拥有各种维度的查询和分析,并使用图形化的界面展示存放在 Elasticsearch 中的数据

这是一个官方推出的把 Elasticsearch 数据可视化的工具,官网在这里:【传送门】,不过我们现在暂时还用不到那些数据分析的东西,不过里面有一个 Dev Tools 的工具可以方便的和 Elasticsearch 服务进行交互

3.2.1下载

Past Releases of Elastic Stack Software | Elastic https://www.elastic.co/cn/downloads/past-releases#kibana

与es版本一致

image-20230519153906282

image-20230519154127766

image-20230519154157849

3.2.2启动 Kibana服务(需先启动es)

先启动es

image-20230519160416946

image-20230519155938130

image-20230519160438394

3.2.3打开浏览器

http://localhost:5601/

image-20230519160652311

image-20230519160707233

image-20230519160819716

3.2.4汉化

image-20230519161002875

去掉#,并将"en"改成"zh-CN";重启服务

image-20230519161029463

image-20230519161626478

image-20230519162038966

3.2.5可视化查看es集群

img

3.3安装 Logstash

3.3.1下载

注意:logstash要和es同一个版本号

Past Releases of Elastic Stack Software | Elastic https://www.elastic.co/cn/downloads/past-releases#logstash

image-20230519182059639

3.3.2启动

创建logstash.conf文件

image-20230523203718554

input {
    stdin{
    }
} 
 
output {
    stdout{
    }
}

cmd启动

image-20230523204251894

logstash -f logstash.conf

image-20230523203838831

浏览器验证

http://127.0.0.1:9600/

在这里插入图片描述

问题1—虚拟机修改配置
Unrecognized VM option 'UseConcMarkSweepGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

image-20230519184844902

image-20230519185110580

image-20230519185016535

问题2—java版本问题

module java.base does not “opens java.security” to unnamed module @cb4999d

image-20230519194331984

3.4整体ELK服务启动

3.4.1ES

image-20230523201934485

3.4.2Kibana

先启动es

image-20230519160416946

image-20230519155938130

3.4.3Logstash

image-20230523204251894

logstash -f logstash.conf

image-20230523203838831

3.4.4ES-head

image-20230519163042316

image-20230519163052769

grunt server

image-20230519163202281

image-20230519163214692

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐