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
2
如果有输出信息,批量卸载系统自带
$ rpm -qa | grep java | xargs rpm -e --nodeps
如果使用 yum 安装的 jdk,请使用下面命令卸载
$ yum -y remove java-1.8.0-openjdk-headless.x86_64
接下来安装 java8
$ yum install -y java-1.8.0-openjdk.x86_64
然后配置环境变量 用 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
2
3
4
最后
source /etc/profile
至此设置完成。
# 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
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
2
3
4
目录
bin 启动目录
config 配置文件
|- log4j2 日志配置文件
|- jvm.options java jvm虚拟机配置
|- elasticsearch.yml elasticsearch配置文件,默认端口9200
jdk jdk
lib 相关jar包
logs 日志
modules 功能模块
plugins 插件,ik...
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
2
3
4
然后重启es让配置文件生效,再到es包下bin目录执行以下命令
./elasticsearch-setup-passwords interactive
运行结果如下:
运行完以后则会出现以上界面,先是提醒你,es链接会需要密码,可能会影响现在的使用,再接下来就是会默认的创建6个用户,并让你设置这六个用户的密码(忽略掉用户名,这些用户权限都是相同的) 设置完成以后,这时候再访问es的地址,就会提示安全错误信息了,到此,es的密码设置完成。
那么只需要在curl后增加–user 用户名:密码 即可,示例如下
curl 127.0.0.1:9200 --user elastic:123456
- 评论区大神指点的方法,就不需要去手动设置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
2
3
修改为
-Xms512m
-Xmx512m
2
# 1.4.2 不能用 root 用户启动 es
新建一个用户
$ groupadd end
$ useradd end -g end
$ passwd end
输入密码:
$ su end
2
3
4
5
默认情况下,Elastic 只允许本机访问,如果需要远程访问,可以修改 Elastic 安装目录的 config/elasticsearch.yml 文件,去掉 network.host 的注释,将它的值改成 0.0.0.0,然后重新启动 Elastic。
network.host: 0.0.0.0
上面代码中,设成 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/
2
3
4
5
6
查看 es 是否安装成功:localhost:9200 (opens new window)
// 安装分词插件
bin/elasticsearch-plugin install analysis-icu
bin/elasticsearch-plugin list
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"]
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
2
3
4
2.跨域问题
http.cors.enabled: true
http.cors.allow-origin: "*"
2
# 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。