ElasticSearch 是分布式全文搜索引擎,底层是开源库 Lucene。但是,你没法直接用 Lucene,必须自己写代码去调用它的接口。es 是 Lucene 的封装,提供了 REST API 的操作接口,开箱即用。

# 1.安装

es 需要 Java 8 环境。如果没有安装 Java,请先安装并且设置正确的环境变量 JAVA_HOME。

# 1.1 java 安装

查看系统是否自带 jdk

$ rpm -qa |grep java 
$ rpm -qa |grep jdk
1
2

如果有输出信息,批量卸载系统自带

$ rpm -qa | grep java | xargs rpm -e --nodeps
1

如果使用 yum 安装的 jdk,请使用下面命令卸载

$ yum -y remove java-1.8.0-openjdk-headless.x86_64
1

接下来安装 java8

$ yum install -y java-1.8.0-openjdk.x86_64
1

然后配置环境变量 用 vim 打开 /etc/profile 文件再最后一行添加以下代码

JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.302.b08-0.el7_9.x86_64/jre/
CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
PATH=$PATH:$JAVA_HOME/bin
export JAVA_HOME JRE_HOME CLASSPATH PATH
1
2
3
4

最后

source /etc/profile 
1

至此设置完成。

# 1.2 下载 es安装

$ wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.1.zip
$ unzip elasticsearch-7.8.1.zip
$ cd elasticsearch-7.8.1 
$ ./bin/elasticsearch
1
2
3
4

rpm包安装

手动下载rpm包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.1-x86_64.rpm
安装
rpm --install elasticsearch-7.8.1-x86_64.rpm
1
2
3
4

目录

bin 						启动目录
config  				配置文件
	|- log4j2				日志配置文件
	|- jvm.options		java jvm虚拟机配置
	|- elasticsearch.yml 	elasticsearch配置文件,默认端口9200
jdk 	jdk
lib		相关jar包
logs	日志
modules 功能模块
plugins  插件,ik...
1
2
3
4
5
6
7
8
9
10

bin/elasticsearch 启动服务,-d 后台运行。

# 1.3 开启密码验证(可跳过)

在elasticsearch.yml中追加写入以下参数

xpack.security.enabled: true
## 加密方式
xpack.license.self_generated.type: basic
xpack.security.transport.ssl.enabled: true
1
2
3
4

然后重启es让配置文件生效,再到es包下bin目录执行以下命令

./elasticsearch-setup-passwords interactive
1

运行结果如下:

在这里插入图片描述

运行完以后则会出现以上界面,先是提醒你,es链接会需要密码,可能会影响现在的使用,再接下来就是会默认的创建6个用户,并让你设置这六个用户的密码(忽略掉用户名,这些用户权限都是相同的) 设置完成以后,这时候再访问es的地址,就会提示安全错误信息了,到此,es的密码设置完成。

那么只需要在curl后增加–user 用户名:密码 即可,示例如下

curl 127.0.0.1:9200 --user elastic:123456
1
  • 评论区大神指点的方法,就不需要去手动设置Authorization参数了,在postman中就有Authorization这一栏,只需要选择相应的认证方式后,在右侧输入用户名和密码就好了

在这里插入图片描述

  • 在浏览器中请求es的首页,也就是地址加端口,这时候会让你输入用户名和密码,当输入后,会跳转到首页。 然后打开浏览器的调试功能,从该请求中获取到Authorization参数,如下

在这里插入图片描述

  • 因为在es的配置文件中,选用的加密方式为basic,也就是该项xpack.license.self_generated.type: basic, 所以我们也可以对用户名密码进行手动加密,访问http://tool.chinaz.com/tools/base64.aspx地址,在输入框中输入elastic:123456,进行加密,并在头部加上“Basic ”字符串就是最终的Authorization的值了,该值与第一种方式获取的是一致的。获取到Authorization以后,在postman进行设置,即可如常访问。

在这里插入图片描述

# 1.4 问题

有可能出现的错误:

# 1.4.1 内存不够

OpenJDK 64-Bit Server VM warning: If the number of processors is expected to increase from one, then you should configure the number of parallel GC threads appropriat
OpenJDK 64-Bit Server VM warning: INFO: os::commit_memory(0x0000000085330000, 2060255232, 0) failed; error=’Cannot allocate memory’ (errno=12)

修改 jvm

$ vim config/jvm.options
-Xms4g
-Xmx4g
1
2
3

修改为

-Xms512m
-Xmx512m
1
2

# 1.4.2 不能用 root 用户启动 es

新建一个用户

$ groupadd end
$ useradd end -g end
$ passwd end
输入密码:
$ su end
1
2
3
4
5

默认情况下,Elastic 只允许本机访问,如果需要远程访问,可以修改 Elastic 安装目录的 config/elasticsearch.yml 文件,去掉 network.host 的注释,将它的值改成 0.0.0.0,然后重新启动 Elastic。

network.host: 0.0.0.0
1

上面代码中,设成 0.0.0.0 让任何人都可以访问。线上服务不要这样设置,要设成具体的 IP。

// 下载es 包
curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.1-darwin-x86_64.tar.gz
curl -O https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.8.1-darwin-x86_64.tar.gz.sha512
shasum -a 512 -c elasticsearch-7.8.1-darwin-x86_64.tar.gz.sha512 
tar -xzf elasticsearch-7.8.1-darwin-x86_64.tar.gz
cd elasticsearch-7.8.1/
1
2
3
4
5
6

查看 es 是否安装成功:localhost:9200 (opens new window)

// 安装分词插件
bin/elasticsearch-plugin install analysis-icu
bin/elasticsearch-plugin list
1
2
3

查看插件是否安装成功:localhost:9200/_cat/plugins (opens new window)

PS:在终端指定下代理,下载会更快哈。

# 1.4.3 配置节点

node validation exception [1] bootstrap checks failed the default discovery settings are unsuitable for production use; at least one of [discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes] must be configured

配置 discovery.seed_hosts, discovery.seed_providers, cluster.initial_master_nodes即可。

#elasticsearch.yml
cluster.initial_master_nodes: ["node-1"]
cluster.initial_master_nodes: ["node-1", "node-2"]
1
2
3

# 2.可视化head插件

1.下载地址 : https://github.com/mobz/elasticsearch-head

git clone git://github.com/mobz/elasticsearch-head.git
cd elasticsearch-head
npm install
npm run start
1
2
3
4

2.跨域问题

http.cors.enabled: true
http.cors.allow-origin: "*"
1
2

image-20210116172800596

image-20210116172814469

# 3.kibana安装

Kibana 是一款开源的数据分析和可视化平台,它是 Elastic Stack 成员之一,设计用于和 Elasticsearch 协作。您可以使用 Kibana 对 Elasticsearch 索引中的数据进行搜索、查看、交互操作。您可以很方便的利用图表、表格及地图对数据进行多元化的分析和呈现。

Kibana 可以使大数据通俗易懂。它很简单,基于浏览器的界面便于您快速创建和分享动态数据仪表板来追踪 Elasticsearch 的实时数据变化。

搭建 Kibana 非常简单。您可以分分钟完成 Kibana 的安装并开始探索 Elasticsearch 的索引数据 — 没有代码、不需要额外的基础设施。

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

下载地址:https://www.elastic.co/cn/downloads/kibana

直接下载好之后,直接运行 bin/kibana , 然后浏览器访问 http://localhost:5601/ ,如果能看页面出现就OK。

image-20210116173436054