##############es集群################

1  ES基础可以参考

https://blog.csdn.net/yezonggang/article/details/80064394

https://blog.csdn.net/column/details/deep-elasticsearch.html

https://elasticsearch.cn/

 

关闭防火墙

       systemctl stop firewalld

       systemctl disable firewalld

       setenforce 0

       sed -i ‘s/SELINUX=enforcing/SELINUX=disabled/g’ /etc/selinux/config

 

设置yum

       这里添加阿里源

       cd /etc/yum.repos.d/

       wget https://mirrors.aliyun.com/repo/Centos-7.repo

       wget https://mirrors.aliyun.com/repo/epel-7.repo

 

4  修改系统参数

       vi /etc/security/limits.conf

       *     soft         nofile     65535

*     hard nofile     655350

*     soft         nproc     65535

*     hard nproc     655350

       *     soft        memlock unlimited

*    hard      memlock unlimited

上面的* 也可以换成指定用户

设置es用户内存权限大小

       sysctl -w vm.max_map_count=262144

       echo 'vm.max_map_count=262144' >> /etc/sysctl.conf

       sysctl -p /etc/sysctl.conf

       ##echo 'vm.swappiness=0'>> /etc/sysctl.conf  禁用减少用swap

注:为什么要尽可能避免使用swap? # cat /proc/sys/vm/swappiness,值默认值是60, swappiness=0的时候表示最大限度使用物理内存,然后才是 swap空间,swappiness100的时候表示积极的使用swap分区,并且把内存上的数据及时的搬运到swap空间里面。现在服务器的内存动不动就是上百G,或者云主机架构,机器io太慢会极大的影响机器性能,所以我们可以把这个参数值设置的低一些,让操作系统尽可能的使用物理内存,降低系统对swap的使用,从而提高系统的性能。另:在大内存服务器中我们需要设置这个值为0,尤其是在Mysql服务器上

 

——————————————上面的环境配置三节点都要操作————————————————-

 

配置java环境   (三个节点都操作)

       使用yum安装

       yum install java-1.8.0-openjdk*

       openjdk version "1.8.0_181"

       也可以用tar包安装

       下载1.8版本

       tar zxf jdk-8u181-linux-x64.tar.gz -C /usr/local/jdk/

    添加环境变量

vim /etc/profile

#JAVA Environment

export JAVA_HOME=/usr/local/jdk/jdk1.8.0_181

export JRE_HOME=/usr/local/jdk/jdk1.8.0_181/jre

export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH

export CLASSPATH=$CLASSPATH:.:$JAVA_HOME/lib:$JRE_HOME/lib

 

安装elasticsearch (三个节点都操作)

       创建安装目录

       mkdir -p /opt/els

       cd /opt/els/

       下载elasticsearch-5.6.4.tar.gzels目录

wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-5.6.4.tar.gz

tar zxf elasticsearch-5.6.4.tar.gz

cd elasticsearch-5.6.4

ls

       bin config data  es.log  lib logs  modules plugins script

 

修改配置 (三个节点都操作)

       创建数据和日志目录

       mkdir -p /opt/els/esdata

       mkdir -p /opt/els/eslog

      

       修改es配置文件elasticsearch.yml

       cd /opt/els/elasticsearch-5.6.4/config/

       备份原文件

       cp elasticsearch.yml elasticsearch.yml.bak

       vim elasticsearch.yml  (三个节点配置中只有node.name的配置不同,其他配置保持一致)

       -----------------------------------------------------------------------------------

cluster.name: es-test

node.name: es135

path.data: /opt/els/esdata

path.logs: /opt/els/eslog

bootstrap.memory_lock: true

network.host: 0.0.0.0

http.port: 9200

discovery.zen.ping.unicast.hosts: [192.168.1.135”,192.168.1.134,192.168.1.133]

discovery.zen.minimum_master_nodes: 3

#gateway.recover_after_nodes: 3

#action.destructive_requires_name: true

http.cors.enabled: true

http.cors.allow-origin: "*"

 

       -----------------------------------------------------------------------------------

       解释说明:

bootstrap.memory_lock: false

bootstrap.system_call_filter: false访问方面配置

cluster.name 集群名字,同一个集群中使用相同名字,单机就随意

node.name: es135 节点名字

node.master: 是否为集群的master机器

node.data: true 是否作为数据节点

network.host: 192.168.0.135 这个不用自然是配置ip地址的

http.port: 9200 端口号,不配置的话默认9200

discovery.zen.ping.unicast.hosts: [192.168.1.135,192.168.1.134,192.168.1.133] 这个就是配置集群的时候要用的到了,[]中填上集群中其他集群的ip的地址,如果是master的话请把所有salve的机器地址填上

discovery.zen.minimum_master_nodes: 3 机器节点数

http.cors.enabled: true 这个参数的设置和下面一个配置是关于ip的访问策略,如果发现其他ip地址访问不了就有可能是这参数没有配置

http.cors.allow-origin: “*”

 

下面修改jvm.options配置,可以调整大一些,比如4g

vim jvm.options

 -Xms2g    ##配置ES服务最小JVM

 -Xmx2g    ##配置ES服务最大JVM

 

9     启动elasticsearch (三个节点都操作)

       ES只能用普通用户启动

       创建els用户

       useradd els

       chown -R els.els /opt/

       su – els

       cd /opt/els/elasticsearch-5.6.4/

./bin/elasticsearch -d

netstat -lnupt|grep java

tcp6  0  0 :::9200      :::*       LISTEN      5404/java          

tcp6  0  0 :::9300      :::*          LISTEN      5404/java 

 

10   浏览器访问192.168.1.135:9200 出现如下正常反馈信息

       {

  "name" : "es135",

  "cluster_name" : "es-test",

  "cluster_uuid" : "0JExw5NuSjCspci1aTQL-w",

  "version" : {

    "number" : "5.6.4",

    "build_hash" : "8bbedf5",

    "build_date" : "2017-10-31T18:55:38.105Z",

    "build_snapshot" : false,

    "lucene_version" : "6.6.1"

  },

  "tagline" : "You Know, for Search"

}

 

11   安装elasticsearch_head (web界面(选择一个机器操作)

    如果机器不能连网,可以在其他机器上把安装编译好的elasticsearch-head-master包拷贝过来代替,安装上node环境就可以启动head了。

       cd /opt/els/

       wget https://github.com/mobz/elasticsearch-head/archive/master.zip

       unzip master.zip

       yum install –y nodejs

       node -v

v6.14.3

npm -v

3.10.10

cd /opt/els/elasticsearch-head-master

yum install -y bzip2  安装bzip2

npm install  需要安装等待一会儿

vim Gruntfile.js  #增加监听地址host,部分版本可以选择不增加host配置同样可以启动。

connect: {

                        server: {

                                options: {

                                        host: '192.168.1.135',

                                        port: 9100,

                                        base: '.',

                                        keepalive: true

                                }

                        }

                }

 

chown els.els -R /opt/

cd /opt/els/elasticsearch-head-master

sudo -u els ./node_modules/.bin/grunt server &

 

然后重启ES

kill掉进程

cd /opt/els/elasticsearch-5.6.4/bin

# sudo -u els ./elasticsearch –d

 

 

12   启动head服务,重启ES

然后浏览器打开192.168.1.135:9100

image.png

修改localhost 192.168.1.135 然后点连接就可以查看到三节点的集群了