1. 程式人生 > >linux環境下ES5.6叢集安裝心得

linux環境下ES5.6叢集安裝心得

記錄安裝es5.6注意事項和遇到的問題。

 1.安裝準備 

        需要準備es5.6安裝包,node包,grunt-cli包,head包(或者head chrome外掛需要和es大版本對應),es5.6 和1.4不同es5.6head是分離出來的

   1.1. ES5.6需要JDK1.8版本,這裡安裝省略。 

 java -version  檢視jdk安裝情況

  1.2. 關閉防火牆和selinux (linux6.X和linux7.X命令不同) ,我這邊的環境是Linux7.3 (linux6.X 命令 service iptables status(stop))

 --檢視防火牆狀態

systemctl status  firewalld.service

--永久關閉防火牆

systemctl disable  firewalld.service  (開啟 enable)

--檢視selinux是否關閉

 getenforce

--顯示permissive即為開啟狀態  Enforcing 為關閉狀態

--臨時關閉selinux

setenforce  1   --對應Enforcing   開啟狀態

setenforce  0  --對應permissive  關閉狀態

--永久關閉 需要重啟伺服器

vi /etc/selinux/config/

 selinux=disable

2.檢查並設定系統環境

a、檢查系統版本

>  uname  -a

b、檢查並設定檔案數設定

>  vi/etc/security/limits.conf 

新增:

 * soft nofile65536

* hard nofile 131072

* soft nproc 65536

* hard nproc 65536

c、調整使用者開啟最大程序數

>  vi/etc/security/limits.d/90-nproc.conf 

* soft nproc 1024 改為 * soft nproc 2048

d、修改單個程序最大執行緒資料

>  vi /etc/sysctl.conf 

新增:

vm.max_map_count=655360

儲存之後執行:

>  sysctl –p

e、配置etc/hosts檔案

將叢集中的所有節點名稱和IP加到hosts檔案(修改叢集所有機器)。  /etc/hosts/

 示例:

    192.168.86.1   jq01

    192.168.86.2   jq02

    192.168.86.3   jq03

3.安裝ES  (我配置的是1臺master 4臺node)

 1.es啟動不可使用root使用者,必須要為es新建使用者啟動。

    useradd  elasticsearch -g elasticsearch -p elasticsearch

2.解壓軟體包

 tar -zxvf elasticsearch-5.6.3.tar.gz

3.修改解壓的目錄所屬使用者和組

chown -R elasticsearch:elasticsearch  elasticsearch-5.6.3

4.修改elasticsearch配置檔案 (配置檔案後冒號後必須加空格)

  4.1 master   elasticsearch.yml配置資訊

vi /es目錄/config/elasticsearch.yml

cluster.name: my-application  ## 叢集名稱 根據自身需求填寫

node.name: node1 ## 節點名稱

#node.attr.rack: r1 ## 機架名稱

node.master: true ## master節點(為node節點時需要改為false)

node.data: true ## 資料節點(為master節點時需要改為true)

http.port: 9200 ## 當一個伺服器需要搭建多個例項時,需要修改其埠

path.data: /path/to/data  ## 資料地址   建議不要放在es地址相同 當你沒有備份,不小心刪除ES安裝目錄,所有資料都被刪除

path.logs: /path/to/logs  ## 日誌地址

bootstrap.memory_lock: false  ## 鎖定記憶體

bootstrap.system_call_filter: false #防止報錯 bootstrap checks failed

network.host: 192.168.0.1 ## 繫結本機名稱  機器名稱

discovery.zen.ping.unicast.hosts: ["192.168.0.1"]  ## master的地址,多例項的情況下,需要配置埠 

discovery.zen.minimum_master_nodes: 1  ## 最少的master數量

gateway.recover_after_nodes: 3  ## 多少個節點啟動之後,資料開始恢復。通常配置節點的node總數的一半以上

indices.fielddata.cache.size:  20% #防止es叢集使用時間過久導致快取過高影響es查詢,之前的叢集es1.4出現過該問題,已經解決,es5.6版本未驗證,可不加該引數  如果是node 該配置建議為40%

http.cors.enabled: true

http.cors.allow-origin: “*”

node.max_local_storage_nodes:1 ## 當單機需要配置多例項時,將資料修改為需要配置的例項數值

修改記憶體引數配置檔案

vi /es安裝目錄/config/jvm.options

-Xms1g ### 當伺服器記憶體》64G時,修改成伺服器32G,否則修改成伺服器的一半記憶體。

-Xmx1g ### 和-Xms1g設定成一樣。  

 free -g (檢視記憶體情況,我的伺服器是128g配置資訊如下)

-Xms32g

-Xmx32g

 4.1 node   elasticsearch.yml配置資訊 

vi /es目錄/config/elasticsearch.yml

cluster.name: my-application  ## 叢集名稱 根據自身需求填寫

node.name: node2 ## 節點名稱

#node.attr.rack: r1 ## 機架名稱

node.master: false ## master節點(為node節點時需要改為false)

node.data: true ## 資料節點(為master節點時需要改為true)

http.port: 9200 ## 當一個伺服器需要搭建多個例項時,需要修改其埠

path.data: /path/to/data  ## 資料地址   建議不要放在es地址相同 當你沒有備份,不小心刪除ES安裝目錄,所有資料都被刪除

path.logs: /path/to/logs  ## 日誌地址

bootstrap.memory_lock: false  ## 鎖定記憶體

bootstrap.system_call_filter: false #防止報錯 bootstrap checks failed

network.host: 192.168.0.2 ## 繫結本機名稱  機器名稱

discovery.zen.ping.unicast.hosts: ["192.168.0.1"]  ## master的地址,多例項的情況下,需要配置埠 

discovery.zen.minimum_master_nodes: 1  ## 最少的master數量

gateway.recover_after_nodes: 3  ## 多少個節點啟動之後,資料開始恢復。通常配置節點的node總數的一半以上

indices.fielddata.cache.size:  20% #防止es叢集使用時間過久導致快取過高影響es查詢,之前的叢集es1.4出現過該問題,已經解決,es5.6版本未驗證,可不加該引數  如果是node 該配置建議為40%

http.cors.enabled: true

http.cors.allow-origin: “*”

node.max_local_storage_nodes:1 ## 當單機需要配置多例項時,將資料修改為需要配置的例項數值

5.安裝ik分詞器(提供分詞查詢,所有機器必須安裝)

    unzip   elasticsearch-analysis-ik-5.6.3-releases.zip   -d/home/elasticsearch/pulgins 

        ## 解壓路徑是es的安裝路徑下的pulgins

6.啟動es例項

  ./bin/elasticsearch/ -d 

 檢視logs日誌  確認啟動無問題

常見問題處理(轉載,基本上常見問題在準備環境中已經做了處理):

瀏覽器檢查驗證   ip:9200 當你看到:說明安裝成功

 {

 "name":"node1",

 "cluster_name":"ES_CLUSTER"

 .....

 .....

}

 7.安裝head chrome瀏覽器外掛或者安裝head外掛

 此外掛需要安裝才可以訪問head管理介面。

 谷歌瀏覽器--新增擴充套件程式--將解壓後的crx外掛拖動到chrome中--安裝head  chrome外掛

 右上角es search 在小視窗欄輸入es master地址點選連線

 安裝head外掛

1、安裝node包(僅master機器)

 tar  -xvf  node-v0.10.26.tar.gz

cd  node-v0.10.26

make  &&makeinstall (編譯安裝需要一些時間)

node  –v 

2、安裝grunt包(僅master機器)

unzip  grunt-cli.zip

cd  /data/grunt-cli/node_modules/grunt-cli/bin/

chmod 777 grunt

cp  bin/*   /usr/local/bin/

cp  lib/*   /usr/local/lib

cd  /data/grunt-cli

cp  grunt /usr/local/bin

cp  -r  node_modules/  /usr/local/bin

3、安裝head包(僅master機器)

unzip   elasticsearch-head-master.zip

cd  elasticsearch-head-master

vi  Gruntfile.js

(修改埠,新增一行hostname:’*’(存在不用新增))

cd   _site

vi  app.js (修改為es master地址)


 執行命令(按照實際安裝目錄執行,我安裝在data目錄下)

 cd /data/elasticsearch-head-master

  grunt server &

驗證:

 ip:9100   至此安裝成功:

  驗證ik分詞器使用: 在node或者master啟動時能看到 日誌:

   [node] loaded plugin [analysis-ik]

es叢集中驗證: 新增索引(iktest)  符合查詢

 http://ip:9200/iktest

_analyze    post

{

"analyzer":"ik_max_word",

"text":"我們是好朋友"

}

  提交請求:

 可以查到多個組合分詞

附:

   1.ik分詞器 主要用來做分詞,例如 es資料中有一條"我們是好朋友"的資料,如果沒有安裝分詞,輸入"我們"將無法查到該資料

   2.chrome head 瀏覽器外掛和安裝head外掛到伺服器的功能是一樣的,相比較來說安裝瀏覽器外掛訪問會簡單一些,但是其他人訪問需要安裝瀏覽器外掛,安裝head外掛到伺服器就不會存在這個問題

   3.建議安裝kibana外掛方便管理,還有x-pack外掛可以隨時觀察叢集的效能,IO/cpu等等情況,es2.X以前可以使用bigdesk和kopf外掛來管理,目前瞭解到的bigdesk和kopf已經對es5.X不支援。但是x-pack外掛有1個月的試用期,需要反編譯jar包。

   4.安裝node,grunt,head需要安裝gcc等編譯包,需要配置相關的yum源

   5.啟動es時注意觀察es的日誌,大部分的啟動異常可以通過日誌檢視到

 本文屬於原創,轉載請註明出處。