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

export NODE_HOME=/opt/es/node/node-v8.1.4-linux-x64

export PATH=$NODE_HOME/bin:$PATH

最后一行添加如下

 

 

 

 

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集群部署手册的主要内容,如果未能解决你的问题,请参考以下文章

ElasticSearch5.5.1插件分类

Elasticsearch5.5.1插件开发指南

win10下ElasticSearch5.5.1与headKibanaX-PackSQLIKPINYIN插件的配置安装

Rabbitmq集群部署手册

storm集群部署手册

zookeeper集群部署手册