ES 集群版部署文档
环境准备:
服务器:
192.168.1.140
192.168.1.135
192.168.1.136
系统:CenTos 7.5 X8 64
1. 下载 ES 和 jdk 的安装包
1. 创建源码包目录,用于存放源码包 [ 注:3台服务器执行相同操作 ]
mkdir -p /data/soft
cd /data/soft
2. 下载 ES 的源码包
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.3.0-linux-x86_64.tar.gz
3. 下载 jdk 的源码包
wget https://download.oracle.com/otn/java/jdk/11.0.4+10/cf1bbcbf431a474eb9fc550051f4ee78/jdk-11.0.4_linux-x64_bin.tar.gz?AuthParam=1566367112_e47e65d687c7f5dcdd4f6d97bdd1e1df
2. 将 jdk 和 ES 的源码包传到另外两台服务器上
scp /data/soft/* 192.168.1.135:/data/soft
scp /data/soft/* 192.168.1.136:/data/soft
2. 部署 jdk 环境 [ 注:3台服务器执行相同操作 ]
1. 解压 jdk 源码,将包解压到 "/usr/local" 目录下
tar xf /data/soft/jdk-11.0.4_linux-x64_bin.tar.gz -C /usr/local/
2. 配置 jdk 的环境变量
# vim /etc/profile
JAVA_HOME=/usr/local/jdk-11.0.4/
JRE_HOME=${JAVA_HOME}/jre
PATH=${PATH}:${JAVA_HOME}/bin
CLASSPATH=.:${JAVA_HOME}/lib/dt.jar:${JAVA_HOME}/lib/tools.jar
export JAVA_HOME
export JRE_HOME
export PATH
export CLASSPATH
3. 刷新环境变量配置文件
source /etc/profile
4. 检查 jdk 版本
# java --version
java 11.0.4 2019-07-16 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.4+10-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.4+10-LTS, mixed mode)
5. 添加 java 命令的软连接
ln -s /usr/local/jdk-11.0.4/bin/java /usr/bin/java
3. ES 的部署
1. 将 ES 的物料包解压到 /data 目录下[ 注:3台服务器执行相同操作 ]
tar xf /data/soft/elasticsearch-7.3.0-linux-x86_64.tar.gz -C /data/
2. 打开 elasticeearch.yml 配置文件,对相关参数进行修改
/*------------- 140 服务器 ---------------*/
# vim /data/elasticsearch-7.3.0/config/elasticsearch.yml
cluster.name: TMF-es-qapm #集群名称,不同集群的唯一标识
node.name: node-1 #节点别名
path.data: /data/es/es_data #数据路径,生产环境下应挂载到大磁盘
path.logs: /data/es/es_log #日志路径,生产环境下硬挂载到大磁盘
network.host: 192.168.1.140 #节点 ip
discovery.seed_hosts: ["192.168.1.140","192.168.1.135","192.168.1.136"] #集群节点列表
cluster.initial_master_nodes: ["node-1"] #添加主节点信息
#discovery.zen.ping.unicast.hosts
http.max_initial_line_length: 8k #http地址访问url的最大长度,默认为4kb
http.max_content_length: 500mb #http请求的最大内容大小
# vim /data/elasticsearch-7.3.0/config/jvm.options
#设置 JVM 启动内存
-Xms512m
-Xmx512m
/*------------- 135 服务器 ---------------*/
# vim /data/elasticsearch-7.3.0/config/elasticsearch.yml
cluster.name: TMF-es-qapm #集群名称,不同集群的唯一标识
node.name: node-2 #节点别名
path.data: /data/es/es_data #数据路径,生产环境下应挂载到大磁盘
path.logs: /data/es/es_log #日志路径,生产环境下硬挂载到大磁盘
network.host: 192.168.1.135 #节点 ip
discovery.seed_hosts: ["192.168.1.140","192.168.1.135","192.168.1.136"] #集群节点列表
cluster.initial_master_nodes: ["node-1"] #添加主节点信息
#discovery.zen.ping.unicast.hosts
http.max_initial_line_length: 8k #http地址访问url的最大长度,默认为4kb
http.max_content_length: 500mb #http请求的最大内容大小
# vim /data/elasticsearch-7.3.0/config/jvm.options
#设置 JVM 启动内存
-Xms512m
-Xmx512m
/*------------- 136 服务器 ---------------*/
# vim /data/elasticsearch-7.3.0/config/elasticsearch.yml
cluster.name: TMF-es-qapm #集群名称,不同集群的唯一标识
node.name: node-3 #节点别名
path.data: /data/es/es_data #数据路径,生产环境下应挂载到大磁盘
path.logs: /data/es/es_log #日志路径,生产环境下硬挂载到大磁盘
network.host: 192.168.1.136 #节点 ip
discovery.seed_hosts: ["192.168.1.140","192.168.1.135","192.168.1.136"] #集群节点列表
cluster.initial_master_nodes: ["node-1"] #添加主节点信息
#discovery.zen.ping.unicast.hosts
http.max_initial_line_length: 8k #http地址访问url的最大长度,默认为4kb
http.max_content_length: 500mb #http请求的最大内容大小
# vim /data/elasticsearch-7.3.0/config/jvm.options
#设置 JVM 启动内存
-Xms512m
-Xmx512m
3. 创建日志、数据存放路径 [ 注:3台服务器执行相同操作 ]
mkdir /data/es/es_{data,log} -p
4. 打开 /etc/sysctl.cnf 文件,在末尾输入以下内容 [ 注:3台服务器执行相同操作 ]
vim /etc/sysctl.conf
#仅在内存不足的情况下--当剩余空闲内存低于vm.min_free_kbytes limit时,使用交换空间。
vm.swappiness = 0
#用户拥有的内存权限太小
vm.max_map_count = 655360
5. 重新加载内核文件 [ 注:3台服务器执行相同操作 ]
sysctl -p
6. 设置内存锁无限制 [ 注:3台服务器执行相同操作 ]
# vim /etc/security/limits.conf
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
#增加进程同时打开文件数大小
* soft nofile 100001
* hard nofile 100002
#增加进程打开线程数
root soft nofile 100001
root hard nofile 100002
7. 添加 ES 的用户 [ 注:3台服务器执行相同操作 ]
adduser elasticsearch
chown -R elasticsearch /home/elasticsearch
chown -R elasticsearch /data/elasticsearch-7.3.0
chown -R elasticsearch /data/es
8. 以 elasticsearch 用户启动 es [ 注:3台服务器执行相同操作 ]
#前台启动 ES ,方便排错
su elasticsearch
/data/elasticsearch-7.3.0/bin/elasticsearch
#后台启动ES
su elasticsearch
/data/elasticsearch-7.3.0/bin/elasticsearch -d
9. 查看ES状态信息
$ curl http://192.168.1.136:9200
{
"name" : "node-3",
"cluster_name" : "TMF-es-qapm",
"cluster_uuid" : "9Q0QHfJsR76dIMAyAeE1aQ",
"version" : {
"number" : "7.3.0",
"build_flavor" : "default",
"build_type" : "tar",
"build_hash" : "de777fa",
"build_date" : "2019-07-24T18:30:11.767338Z",
"build_snapshot" : false,
"lucene_version" : "8.1.0",
"minimum_wire_compatibility_version" : "6.8.0",
"minimum_index_compatibility_version" : "6.0.0-beta1"
},
"tagline" : "You Know, for Search"
}
10. 查看 ES 集群信息
$ curl http://192.168.1.136:9200/_cat/nodes?v
ip heap.percent ram.percent cpu load_1m load_5m load_15m node.role master name
192.168.1.140 17 94 0 0.10 0.15 0.20 dim * node-1
192.168.1.136 18 94 0 0.00 0.29 0.35 dim - node-3
192.168.1.135 26 94 0 0.44 0.33 0.52 dim - node-2