天天看點

elasticsearch三節點叢集

##############es叢集################

1  ES基礎可以參考

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

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

https://elasticsearch.cn/

2  關閉防火牆

       systemctl stop firewalld

       systemctl disable firewalld

       setenforce 0

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

3  設定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

上面的* 也可以換成指定使用者

5  設定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空間,swappiness=100的時候表示積極的使用swap分區,并且把記憶體上的資料及時的搬運到swap空間裡面。現在伺服器的記憶體動不動就是上百G,或者雲主機架構,機器io太慢會極大的影響機器性能,是以我們可以把這個參數值設定的低一些,讓作業系統盡可能的使用實體記憶體,降低系統對swap的使用,進而提高系統的性能。另:在大記憶體伺服器中我們需要設定這個值為0,尤其是在Mysql伺服器上

——————————————上面的環境配置三節點都要操作————————————————-

6  配置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

7  安裝elasticsearch (三個節點都操作)

       建立安裝目錄

       mkdir -p /opt/els

       cd /opt/els/

       下載下傳elasticsearch-5.6.4.tar.gz到els目錄

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

8  修改配置 (三個節點都操作)

       建立資料和日志目錄

       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了。

       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/

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

elasticsearch三節點叢集

修改localhost 為192.168.1.135 然後點連接配接就可以檢視到三節點的叢集了