elasticsearch5.5.1集群部署手册
Posted DevOps和k8s全栈技术
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了elasticsearch5.5.1集群部署手册相关的知识,希望对你有一定的参考价值。
新机器需要安装如下:
yum install gcc gcc-c++ vim-enhanced glibc make unzip openssl openssl-devel openssh-server openssh-clients -y
一:准备环境
主机名 |
操作系统 |
系统内核 |
节点类型 |
java环境 |
elasticsearch版本 |
|
es11 |
10.0.8.6 |
Centos6.9 |
2.6.32-696.el6.x86_64 |
master/data |
jdk1.8 |
5.5.1 |
es22 |
10.0.8.7 |
Centos6.9 |
2.6.32-696.el6.x86_64 |
master/data |
jdk1.8 |
5.5.1 |
es33 |
10.0.8.8 |
Centos6.9 |
2.6.32-696.el6.x86_64 |
master/data |
jdk1.8 |
5.5.1 |
二:部署安装
第一部分: 10.0.8.6上的操作
1.配置hosts文件,使三个主机互相认识
vim /etc/hosts
最后一行添加如下内容
10.0.8.6 es11 10.0.8.7 es22 10.0.8.8 es33 |
2.安装jdk1.8
mkdir /usr/java
tar zxvf jdk-8u40-linux-x64.gz -C /usr/java/
vim /etc/profile
最后一行添加如下内容
export JAVA_HOME=/usr/java/jdk1.8.0_40 export PATH=$PATH:$JAVA_HOME/bin export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar |
source /etc/profile
ln -s /usr/java/jdk1.8.0_40/bin/java /usr/bin/java
java -version
显示如下,说明安装成功
java version "1.8.0_40" Java(TM) SE Runtime Environment (build 1.8.0_40-b25) Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode |
3.安装elasticsearch5.5.1
(1)下载elasticsearch5.5.1.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.tar.gz |
(2)解压
tar zxvf elasticsearch-5.5.1.tar.gz -C /usr/local/ |
(3)创建data和logs目录(elasticsearch5以上不会自带logs目录,需要自己创建)
mkdir /usr/local/data mkdir /usr/local/logs |
(4)修改elasticsearch的配置文件
vim /usr/local/elasticsearch-5.5.1/config/elasticsearch.yml
修改之后如下
# ---------------------------------- Cluster ----------------------------------- cluster.name: elasticsearch #集群的名字,三个节点都应该相同 node.name: node1 #节点名称,各个主机不能重复 # ----------------------------------- Paths ------------------------------------ path.data: /usr/local/data #数据目录,需要自己创建 path.logs: /usr/local/logs #日志目录,需要自己创建 # ----------------------------------- Memory ----------------------------------- bootstrap.memory_lock: false #变成了false,因为centos下不支持 bootstrap.system_call_filter: false #变成了false,因为centos下不支持 # ---------------------------------- Network ----------------------------------- http.port: 9200 #监听的端口 http.cors.enabled: true #head插件的配置,使用head插件必须配置此选项 http.cors.allow-origin: "*" #head插件的配置,使用head插件必须配置此选项 node.master: true #该节点是否用作管理节点 node.data: false #该节点是否用作数据节点 discovery.zen.ping.unicast.hosts: ["10.0.8.6:9300", "10.0.8.7:9300","10.0.8.8:9300"](用于发现节点) |
注:上述配置文件各项参数详细解释如下链接: http://www.cnblogs.com/rethink-east/p/6547171.html |
(5)创建启动elasticsearch的用户(默认情况下root用户不能启动)
groupadd elsearch useradd elsearch -g elsearch -p abc1234 chown -R elsearch:elsearch /usr/local/ |
(6)修改以下几个参数,否则启动的时候会报错
cd /usr/local/elasticsearch-5.5.1/config
vim jvm.options
修改Xms和Xmx如下,一般为运行内存的50%,由于部署机器的运行内存是1g,所以修改成512m,默认是2g
-Xms512m -Xmx512m |
最大打开文件数
vim /etc/security/limits.conf
最后一行添加如下内容
elsearch soft nofile 655350 elsearch hard nofile 655350 |
最大计算次数
vim /etc/sysctl.conf
最后一行添加如下内容
fs.file-max=655350 vm.max_map_count=262144 |
使上述修改完的参数生效
sysctl -p |
最后执行如下命令
ulimit -n 655350 |
退出终端,重新登录才可生效
第二部分: 10.0.8.7上的操作
1.配置hosts(同上面第一部分中的10.0.8.6的步骤一样)
2.安装jdk1.8(同上面第一部分中的10.0.8.6的步骤一样)
3.安装elasticsearch5.5.1
(1)下载elasticsearch5.5.1.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.tar.gz |
(2)解压
tar zxvf elasticsearch-5.5.1.tar.gz -C /usr/local/ |
(3)创建data和logs目录(elasticsearch5以上不会自带logs目录,需要自己创建)
mkdir /usr/local/data mkdir /usr/local/logs |
(4)修改elasticsearch的配置文件
vim /usr/local/elasticsearch-5.5.1/config/elasticsearch.yml
修改之后如下
# ---------------------------------- Cluster ----------------------------------- cluster.name: elasticsearch node.name: node2 # ----------------------------------- Paths ------------------------------------ path.data: /usr/local/data path.logs: /usr/local/logs # ----------------------------------- Memory ----------------------------------- bootstrap.memory_lock: false bootstrap.system_call_filter: false # ---------------------------------- Network ----------------------------------- network.host: 0.0.0.0 http.port: 9200 http.cors.enabled: true http.cors.allow-origin: "*" node.master: false node.data: true discovery.zen.ping.unicast.hosts: ["10.0.8.6:9300", "10.0.8.7:9300","10.0.8.8:9300"] |
(5)创建启动elasticsearch的用户(默认情况下root用户不能启动)
groupadd elsearch useradd elsearch -g elsearch -p abc1234 chown -R elsearch:elsearch /usr/local/ |
(6)修改以下几个参数,否则启动的时候会报错
cd /usr/local/elasticsearch-5.5.1/config
vim jvm.options
修改Xms和Xmx如下,一般为运行内存的50%,由于部署机器的运行内存是1g,所以修改成512m,默认是2g
-Xms512m -Xmx512m |
最大打开文件数
vim /etc/security/limits.conf
最后一行添加如下内容
elsearch soft nofile 655350 elsearch hard nofile 655350 |
最大计算次数
vim /etc/sysctl.conf
最后一行添加如下内容
fs.file-max=655350 vm.max_map_count=262144 |
使上述修改完的参数生效
sysctl -p |
最后执行如下命令
ulimit -n 655350 |
退出终端,重新登录才可生效
第三部分: 10.0.8.8上的操作
1.配置hosts(同上面第一部分中的10.0.8.6的步骤一样)
2.安装jdk1.8(同上面第一部分中的10.0.8.6的步骤一样)
3.安装elasticsearch5.5.1
(1)下载elasticsearch5.5.1.tar.gz
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.5.1.tar.gz |
(2)解压
tar zxvf elasticsearch-5.5.1.tar.gz -C /usr/local/ |
(3)创建data和logs目录(elasticsearch5以上不会自带logs目录,需要自己创建)
mkdir /usr/local/data mkdir /usr/local/logs |
(4)修改elasticsearch的配置文件
vim /usr/local/elasticsearch-5.5.1/config/elasticsearch.yml
修改之后如下
# ---------------------------------- Cluster ----------------------------------- cluster.name: elasticsearch node.name: node3 # ----------------------------------- Paths ------------------------------------ path.data: /usr/local/data path.logs: /usr/local/logs # ----------------------------------- Memory ----------------------------------- bootstrap.memory_lock: false bootstrap.system_call_filter: false # ---------------------------------- Network ----------------------------------- network.host: 0.0.0.0 http.port: 9200 http.cors.enabled: true http.cors.allow-origin: "*" node.master: false node.data: true discovery.zen.ping.unicast.hosts: ["10.0.8.6:9300", "10.0.8.7:9300","10.0.8.8:9300"] |
(5)创建启动elasticsearch的用户(默认情况下root用户不能启动)
groupadd elsearch useradd elsearch -g elsearch -p abc1234 chown -R elsearch:elsearch /usr/local/ |
(6)修改以下几个参数,否则启动的时候会报错
cd /usr/local/elasticsearch-5.5.1/config
vim jvm.options
修改Xms和Xmx如下,一般为运行内存的50%,由于部署机器的运行内存是1g,所以修改成512m,默认是2g
-Xms512m -Xmx512m |
最大打开文件数
vim /etc/security/limits.conf
最后一行添加如下内容
elsearch soft nofile 655350 elsearch hard nofile 655350 |
最大计算次数
vim /etc/sysctl.conf
最后一行添加如下内容
fs.file-max=655350 vm.max_map_count=262144 |
使上述修改完的参数生效
sysctl -p |
最后执行如下命令
ulimit -n 655350 |
退出终端,重新登录才可生效
第四部分: 以elsearch用户启动elasticsearch
10.0.8.6上
su - elsearch cd /usr/local/elasticsearch-5.5.1/ bin/elasticsearch -d(在后台运行) exit(退出elsearch用户,返回到root用户) netstat -antulp | grep java 显示如下,说明elasticsearch启动成功(监听的端口是9200和9300) tcp 0 0 0.0.0.0:9200 0.0.0.0:* LISTEN 5480/java tcp 0 0 0.0.0.0:9300 0.0.0.0:* LISTEN 5480/java |
注:验证elasticsearch集群是否可用 在浏览器上输入ip:端口 http://10.0.8.6:9200 显示如下,说明elasticsearch可用,部署正确 |
10.0.8.7上
su - elsearch cd /usr/local/elasticsearch-5.5.1/ bin/elasticsearch -d(在后台运行) exit(退出elsearch用户,返回到root用户) netstat -antulp | grep java 显示如下,说明elasticsearch启动成功(监听的端口是9200和9300) tcp 0 0 0.0.0.0:9200 0.0.0.0:* LISTEN 5480/java tcp 0 0 0.0.0.0:9300 0.0.0.0:* LISTEN 5480/java |
注:验证同上,输入10.0.8.7:9200 |
10.0.8.8上
su - elsearch cd /usr/local/elasticsearch-5.5.1/ bin/elasticsearch -d(在后台运行) exit(退出elsearch用户,返回到root用户) netstat -antulp | grep java 显示如下,说明elasticsearch启动成功(监听的端口是9200和9300) tcp 0 0 0.0.0.0:9200 0.0.0.0:* LISTEN 5480/java tcp 0 0 0.0.0.0:9300 0.0.0.0:* LISTEN 5480/java |
注:验证同上,输入10.0.8.8:9200 |
第五部分,elasticsearch安装head插件,在10.0.8.6上操作即可
1.安装node(由于head插件本质上还是一个nodejs的工程,因此需要安装node,使用npm来安装依赖的包。)
mkdir /opt/es/node -p cd /opt/es/node wget https://npm.taobao.org/mirrors/node/v8.1.4/node-v8.1.4-linux-x64.tar.gz 修改环境变量 vim /etc/profile
最后一行添加如下
source /etc/profile(使配置文件生效) node -v 显示如下说明node安装成功 v8.1.4 npm -v 显示如下说明npm安装成功 5.0.3 |
2.安装elasticsearch-head插件
cd (切换回到/root目录下) wget https://github.com/mobz/elasticsearch-head/archive/master.zip unzip master.zip cd /root/elasticsearch-head-master/ npm install 安装grunt(grunt 是一个很方便的构建工具,可以进行打包压缩、测试、执行等工作,elasticsearch5里的head插件就是通过grunt启动的,因此需要安装 grunt 。) npm install grunt-cli grunt --version 显示如下,说明grunt安装成功 grunt-cli v1.2.0 |
3.修改Gruntfile.js
vim elasticsearch-head-master/Gruntfile.js
找到conncet部分,增加一个新的属性,hostname: '*',如下所示
connect: { server: { options: { port: 9100, hostname: '0.0.0.0', base: '.', keepalive: true } } } |
vim elasticsearch-head-master/_site/app.js
找到this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://localhost:9200";
改成下面所示ip 10.0.8.6(此ip是es服务器的ip)
this.base_uri = this.config.base_uri || this.prefs.get("app-base_uri") || "http://10.0.8.6:9200";
5.运行head
cd elasticsearch-head-master/
npm install
nohup grunt server &(以守护进程形式启动)
netstat -antulp | grep :9100显示如下,说明启动成功
tcp 0 0 0.0.0.0:9100 0.0.0.0:* LISTEN 6221/grunt |
在浏览器访问:
http://10.0.8.6:9100
显示如下,说明部署成功
以上是关于elasticsearch5.5.1集群部署手册的主要内容,如果未能解决你的问题,请参考以下文章