环境准备
准备三台服务器搭建集群环境
node1 | 192.168.177.171 |
node2 | 192.168.177.172 |
node3 | 192.168.177.173 |
其中node1为master节点,node2,node3为slave节点
注意:以下都需要sudo权限,普通用户获取sudo权限操作指令:
教你如何在Ubuntu中创建 Sudo用户_寰宇001的博客-优快云博客_ubuntu创建sudo用户
普通用户切换root用户快速指令
sudo -s
一:安装ElasticSearch
1.下载
百度云:
链接:https://pan.baidu.com/s/1sQjpbiFIFhnSpa0_uCP53A
提取码:AA56
文件夹:elasticsearch
本文采用的是:elasticsearch-7.16.2
2. 解压
tar -zxvf elasticsearch-7.16.2-linux-x86_64 (1).tar.gz
3. 授权
3.1 没有/home/bin则自行新建(语法: sudo mkdir filename)
cd /home/bin
sudo mkdir es
3.2 给文件夹授权(存在可使用用户,可跳过)
注:es 启动不能使用root用户,需要新建一个普通用户
sudo adduser wcy
另外给用户授予sudo权限
sudo adduser wcy sudo
3.3 将elasticsearch-7.16.2文件夹移动到/home/bin/es目录下
sudo mv elasticsearch-7.16.2 /home/bin/es
3.4 给es目录授权
chown -R wcy:wcy /home/bin/es/
chown -R wcy:wcy /home/bin/es/elasticsearch-7.16.2/
3.5 修改sysctl.conf系统配置
vim /etc/security/limits.conf
文件最后按如下配置(添加):
vm.max_map_count=655360
保存,执行sysctl -p生效
sysctl -p
3.5 修改limits.conf系统配置
vim /etc/security/limits.conf
文件最后按如下配置(添加):
* soft nofile 65535
* hard nofile 65535
wcy soft nproc 4096
wcy hard nproc 4096
注:wcy是刚新增的用户
二. 集群配置
修改es配置文件(elasticsearch.yml)
vim /home/bin/es/elasticsearch-7.16.2/config/elastic-search.yml
1. master节点(node1)(elasticsearch.yml)
#集群名称
cluster.name: es-cluster
# 节点名称
node.name: node-1
# 定义node-1为主节点
node.master: true
# 定义node-1为数据节点
node.data: true
# 日志数据存储地址
path.data: /home/bin/es/elasticsearch-7.16.2/data
path.logs: /home/bin/es/elasticsearch-7.16.2/logs
#访问的IP地址,0.0.0.0表示不限制
network.host: 0.0.0.0
# 访问端口
http.port: 9221
# 集群通讯端口
transport.tcp.port: 9321
#配置所有节点
discovery.zen.ping.unicast.hosts: ["191.168.0.1:9321","191.168.0.2:9321","191.168.0.3:9321"]
cluster.initial_master_nodes: ["node-1"]
# 配置选举节点(数量安装候选master节点数/2 +1 ,即:N/2 +1)
# 3台master候选节点,此处就算2 (最好master节点数为奇数)
discovery.zen.minimum_master_nodes: 2
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
2. 节点(node-2)(elasticsearch.yml)
#集群名称
cluster.name: es-cluster
# 节点名称
node.name: node-2
# 定义node-2不为matser节点
node.master: false
# 定义node-2为数据节点
node.data: true
# 日志数据存储地址
path.data: /home/bin/es/elasticsearch-7.16.2/data
path.logs: /home/bin/es/elasticsearch-7.16.2/logs
#访问的IP地址,0.0.0.0表示不限制
network.host: 0.0.0.0
# 访问端口
http.port: 9221
# 集群通讯端口
transport.tcp.port: 9321
#配置所有节点
discovery.zen.ping.unicast.hosts: ["191.168.0.1:9321","191.168.0.2:9321","191.168.0.3:9321"]
cluster.initial_master_nodes: ["node-1"]
# 配置选举节点(数量安装候选master节点数/2 +1 ,即:N/2 +1)
# 3台master候选节点,此处就算2 (最好master节点数为奇数)
discovery.zen.minimum_master_nodes: 2
# 跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
3. 节点(node3)(elasticsearch.yml)
只需要按照节点2中,修改node.name即可,其他与node3一致
4. 修改jvm.options(所有节点)
sudo vim /home/bin/es/elasticsearch-7.16.2/config/jvm.options
根据经验,最大堆大小应设置为 RAM 的 50%,但不超过 32GB(由于 Java 指针在较大堆中效率低下)。Elastic 还建议最大和最小堆大小的值相同。
这些值可以使用jvm.options文件中的 Xmx 和 Xms 设置进行配置。
配置如下:(具体需要根据实际服务器内存定义)
-Xms4g
-Xmx4g
5. 后台启动(wcy 用户)
su wcy
cd /home/bin/es/elasticsearch-7.16.2/bin/
./elasticsearch -d
6.开放端口
# 打开端口
sudo ufw allow 9221
sudo ufw allow 9321
# 重启防火墙
sudo ufw reload
7. 访问测试
浏览器访问
# 查看集群状态
http://ip:9221/_cat/health?v
# 查看节点状态
http://ip:9221/_cat/nodes?v
三:安装elasticsearch-head
1. 下载elasticsearch-head
下载地址:GitHub - mobz/elasticsearch-head: A web front end for an elastic search cluster
百度云:
链接:https://pan.baidu.com/s/1sQjpbiFIFhnSpa0_uCP53A
提取码:AA56
文件夹:elasticsearch
2. 解压elasticsearch-head
unzip elasticsearch-head-master.zip
如果unzip报错:不存在
sudo apt-get update
sudo apt install unzip
然后再次执行unzip elasticsearch-head-master.zip
3. 移动elasticsearch-head-master
mv elasticsearch-head-master /home/bin/es/
4. 安装
npm install
如果npm报错:不存在
sudo apt install npm
然后再次执行npm install,安装中途失败就再次重试,可能是网络问题
5. 修改Gruntfile.js 文件
vim /home/bin/es/elasticsearch-head-master/Gruntfile.js
在文件最后面connect 字段下,添加:hostname:'*',
配置如下:
connect: {
server: {
options: {
hostname:'*',
port: 9220,
base: '.',
keepalive: true
}
}
}
6. 后台启动
cd /home/bin/es/elasticsearch-head-master/
sudo npm run start &
7.开启端口
# 打开端口
sudo ufw allow 9220
# 重启防火墙
sudo ufw reload