由于Elasticsearch依赖于JDK,且本次演示的是Elasticsearch7.4.0的集群配置,所以需要JDK11的支持。JDK的环境配置有需要请移步:Linux下JDK安装及配置
下载地址:华为资源网站
选择 版本为 7.4.0 的进行下载
放到目录下 :/zdrl/elasticsearch/
输入指令进行解压:
tar -zxvf elasticsearch-7.4.0-linux-x86_64.tar.gz
在/zdrl/elasticsearch 目录下输入指令
mkdir elasticsearch-cluster
mv elasticsearch-7.4.0 elasticsearch-cluster/elasticsearch9201
cd elasticsearch9201/config
vim jvm.options
修改jvm的启动参数:
-Xms150m
-Xmx150m
#集群名称
cluster.name: es-cluster
#节点名称
node.name: node-9201
#端口
http.port: 9201
#内部节点之间沟通端口
transport.tcp.port: 9301
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#ip地址
network.host: 0.0.0.0
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["172.16.86.142:9301", "172.16.86.142:9302", "172.16.86.142:9303"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]
#数据存储路径
path.data: /zdrl/elasticsearch/elasticsearch-cluster/data/data9201
#日志存储路径
path.logs: /zdrl/elasticsearch/elasticsearch-cluster/logs/logs9201
由于配置了 数据存储路径 和 日志存储路径,所以在对应的位置先创建好
进入 /zdrl/elascticsearch/elasticsearch-cluster/elasticsearch9201/bin 目录输入如下指令:
./elasticsearch-plugin install https://github.com/medcl/elasticsearch-analysis-ik/releases/download/v7.4.0/elasticsearch-analysis-ik-7.4.0.zip
等待下载
下载完成后会提示输入y/N 来决定是否安装
输入 y 即可以完成安装,安装完成可在 elasticsearch根目录的plugin目录下查看插件
#集群名称
cluster.name: es-cluster
#节点名称
node.name: node-9202
#端口
http.port: 9202
#内部节点之间沟通端口
transport.tcp.port: 9302
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#ip地址
network.host: 0.0.0.0
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["172.16.86.142:9301", "172.16.86.142:9302", "172.16.86.142:9303"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]
#数据存储路径
path.data: /zdrl/elasticsearch/elasticsearch-cluster/data/data9202
#日志存储路径
path.logs: /zdrl/elasticsearch/elasticsearch-cluster/logs/logs9202
#集群名称
cluster.name: es-cluster
#节点名称
node.name: node-9203
#端口
http.port: 9203
#内部节点之间沟通端口
transport.tcp.port: 9303
#是不是有资格主节点
node.master: true
#是否存储数据
node.data: true
#ip地址
network.host: 0.0.0.0
#es7.x 之后新增的配置,节点发现
discovery.seed_hosts: ["172.16.86.142:9301", "172.16.86.142:9302", "172.16.86.142:9303"]
#es7.x 之后新增的配置,初始化一个新的集群时需要此配置来选举master
cluster.initial_master_nodes: ["node-9201", "node-9202", "node-9203"]
#数据存储路径
path.data: /zdrl/elasticsearch/elasticsearch-cluster/data/data9203
#日志存储路径
path.logs: /zdrl/elasticsearch/elasticsearch-cluster/logs/logs9203
创建 es 分组
groupadd es
创建 esuser 用户
useradd esuser
chgrp -R esuser elasticsearch9201
chown -R esuser elasticsearch9201
chgrp -R esuser elasticsearch9202
chown -R esuser elasticsearch9202
chgrp -R esuser elasticsearch9203
chown -R esuser elasticsearch9203
chgrp -R esuser data
chown -R esuser data
chgrp -R esuser logs
chown -R esuser logs
切换 esuser 用户
su esuser
在 /zdrl/elasticsearch/elasticsearch-cluster 目录下输入指令:-d 表示在后台运行
./elasticsearch9201/bin/elasticsearch -d
./elasticsearch9202/bin/elasticsearch -d
./elasticsearch9203/bin/elasticsearch -d
查看进程:ps -ef|grep elasticsearch
由于是我自己的云服务器,比较辣鸡,起了三个es发现快宕机了,所以把node-9203节点的给停掉了。
浏览器:http://120.77.177.194:9201/
浏览器:http://120.77.177.194:9202/
elasticsearch-head依赖于nodejs,所以需要先安装nodejs
下载地址:nodejs官网
下载完成需要手动上传到服务器上,也可以直接复制下面指令进行下载
wget -c https://nodejs.org/dist/v12.16.2/node-v12.16.2-linux-x64.tar.xz
tar -xvf node-v12.16.2-linux-x64.tar.xz
配置nodejs环境变量
export NODE_HOME=/zdrl/nodejs/nodejs12
export PATH=$PATH:$NODE_HOME/bin
export NODE_PATH=$NODE_HOME/lib/node_modules
source /etc/profile
node -v
npm -v
head插件其实理解为一个项目,具有前端页面的项目,可以选择手动下载并上传到云服务器,链接如下:elasticsearch-head github下载地址
也可以在服务器上安装 git ,使用 git 指令进行拉取
安装 git
yum install -y git
检查
git --version
拉取项目
在 /zdrl/elasticsearch/elasticsearch-head 目录中拉取
git clone https://github.com/mobz/elasticsearch-head.git
解压
unzip elasticsearch-head-master.zip
进入 elasticsearch-head 项目的根目录输入指令进行安装操作
即 /zdrl/elasticsearch/elasticsearch-head/elasticsearch-head-master 目录下 进行安装
npm install
npm install -g
修改 elasticsearch.yml 文件
由于elasticsearch-head插件远程访问可能存在跨域的问题,所以需要允许跨域访问。
下面开始依次修改各个节点的 elasticsearch.yml 文件
在 /zdrl/elasticsearch/elasticsearch-cluster 目录下:
以 node-9201 节点为例,其他照搬即可
vim elasticsearch9201/config/elasticsearch.yml
加入以下配置
#配置开启跨域
http.cors.enabled: true
#配置允许任何域名访问
http.cors.allow-origin: "*"
重启es
如果前面 启动的 elasticsearch 进程没有停止,重启可能会报端口占用,建议先停止进程再启动
ps -ef|grep elasticsearch
查看到进程并找到对应的 pid,使用指令进行终结
kill -9 pid
启动 elasticsearch
在 /zdrl/elasticsearch/elasticsearch-cluster 目录下
./elasticsearch9201/bin/elasticsearch -d
./elasticsearch9202/bin/elasticsearch -d
在 /zdrl/elasticsearch/elasticsearch-head/elasticsearch-head-master 目录下执行指令:
nohup npm run start &
head插件默认是以 9100 端口其中,查看端口占用
浏览器访问
输入:http://ip:9100
可以看到有两个集群节点,至此 Elasticsearch + Elasticsearch-head 搭建完成。