Elasticsearch7.6.2(目前最新版本)叢集搭建及Head外掛——最詳細安裝及配置

Janrry丶龍龍發表於2020-04-12
個人環境

1.Centos7.4(三臺)
2.elasticsearch-7.6.2
官網下載:https://www.elastic.co/downloads/elasticsearch

1.環境初始化

在這裡插入圖片描述
大體配置就是如此,只不過我的主機ip不同

#關閉防火牆

systemctl stop firewalld
systemctl disable firewalld
sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
setenforce 0

#時間同步

yum install ntpdate ntp -y
ntpdate cn.pool.ntp.org
hwclock --systohc

#常用軟體安裝

yum install net-tools bash-completion wget vim ntpdate -y

#系統優化

vim /etc/sysctl.conf
fs.file-max=65536
vm.max_map_count = 262144

注意:
fs.file-max:該檔案指定了可以分配的檔案控制程式碼的最大數目, 為512 乘以 processes (如128個process則為 65536);

vm.max_map_count:限制一個程式可以擁有的VMA(虛擬記憶體區域)的數量。 //這個值最好設定大一點,不然ES會啟動失敗。

 vim /etc/security/limits.conf
*        soft  nofile  65535
*        hard  nofile  131072
*        soft  nproc   2048
*        hard  nproc   4096

新增執行緒,不然會在啟動的時候報錯,如下所示:

[1]: max number of threads [1024] for user [leyou] is too low, increase to at least [4096]

在這裡插入圖片描述

2.JDK安裝

jdk安裝的話,最好安裝jdk11,因為ES 7.x 版本需要jdk11,而本機環境是JDK8 ,它會提醒後面版本需要 JDK 11 支援。但它是向下相容的。如圖所示:
在這裡插入圖片描述

因此,看日誌的時候顯示已經啟動。
在這裡插入圖片描述

2.1 驗證是否啟動成功

開啟瀏覽器,輸入 http://localhost:9200/ 地址,然後可以得到下面的資訊:
在這裡插入圖片描述
證明配置沒問題。

3.elasticsearch叢集安裝及配置

3.1 叢集配置

[root@bigdata2 config]# pwd
/data/program/software/elasticsearch/config

###進入elasticsearch.yml檔案中,修改如下配置 :

[root@bigdata2 config]# grep -Ev "^#|^$" elasticsearch.yml
cluster.name: my-cluster
node.name: ${HOSTNAME}
path.data: /data/program/software/elasticsearch/elk_data
path.logs: /data/program/software/elasticsearch/elk_logs
bootstrap.memory_lock: false
network.host: 192.168.239.8
http.port: 9200
discovery.seed_hosts: ["192.168.239.7", "192.168.239.9"]
cluster.initial_master_nodes: [" ${HOSTNAME} "]
http.cors.enabled: true
http.cors.allow-origin: "*"

network.host: 本機節點IP,也可以0.0.0.0

discovery.seed_hosts:一定要設定為另外兩個節點的IP

cluster.initial_master_nodes:這裡寫的是上面node.name:中的對應值,但是如果你要像我一樣寫變數,這裡一定要有空格,我因為沒有空格,把我折磨了很久。

http.cors.enabled:表示開啟蛞蝓訪問支援,此值預設為false。

http.cors.allow-origin:表示跨域訪問允許的域名地址,可使用正規表示式,“*”則表示允許所有域名訪問。

注意:重點來了!!!
elasticsearch7版本引入的新叢集協調子系統瞭解一哈,新增兩個如下配置項
discovery 和cluster 設定,以便群集中的節點可以相互發現並選擇主節點。

#設定提供群集中其他節點的列表,這些節點符合主要條件且可能是實時且可聯絡的,以便為發現過程設定種子。 此設定通常應包含群集中所有符合主節點的節點的地址。 此設定包含主機陣列或逗號分隔的字串。 每個值應採用host:port或host的形式
discovery.seed_hosts

#當您第一次啟動全新的Elasticsearch叢集時,會出現一個叢集引導步驟,該步驟確定在第一次選舉中計票的主要合格節點集因此當您在生產模式下啟動全新叢集時,必須明確列出符合條件的節點的名稱或IP地址,這些節點的投票應在第一次選舉中計算 叢集中第一個主節點啟動 許設定此項
cluster.initial_master_nodes

而這兩個配置項沒有了:在這裡插入圖片描述

vim jvm.options
-Xms512m
-Xmx512m

預設這兩個值是1G,這個根據你虛擬機器的記憶體劃分,只有小於等於你記憶體的一半就行。

3.2 啟動叢集
在這裡插入圖片描述
以上配置三個節點都需要完成。
3.3 檢查ES是否安裝成功
(1)檢視埠
在這裡插入圖片描述
(2)瀏覽器測試
開啟瀏覽器,輸入 http://localhost:9200/ 地址:
在這裡插入圖片描述
檢視叢集資訊:http://192.168.239.7:9200/_cat/nodes?pretty
在這裡插入圖片描述
*:就是leader;-:就是follower

還可以在主機點檢視更詳細內容:
curl -XGET ‘http://192.168.239.7:9200/_cat?pretty’
在這裡插入圖片描述

4.配置圖形化介面工具Head外掛

Head外掛是Elasticsearch的圖形化介面工具,通過此外掛可以很方便的對資料進行增刪改查等資料互動操作。在Elasticsearch5.x版本以後,head外掛已經是一個獨立的Web App了,所以不需要和Elasticsearch進行整合。可以將Head外掛安裝到任何一臺機器上,我就佈置在我的第一個節點了。

由於Head外掛本質上是一個Node.js的工程,因此需要安裝Node.js,使用npm工具來安裝依賴的包。
NPM的全名叫Node Package Manager,是隨NodeJS一起安裝的包管理和分發工具,方便讓JavaScript開發者下載、安裝、上傳以及管理已經安裝的包。

4.1 下載Node.js和NPM工具

直接yum install -y nodejs會提示找不到nodejs這個模組,因此:安裝nodesource後再執行yum install -y nodejs

curl --silent --location https://rpm.nodesource.com/setup_8.x | sudo bash -
或
curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
然後
yum -y install nodejs

這個安裝好後,npm也在這個模組中,已經有了,所以不需要再安裝。

4.2 下載並安裝Head外掛

yum install -y git
git clone git://github.com/mobz/elasticsearch-head.git

這是從github上克隆過的,安裝好後你就會發現當前目錄下有一個ES-Head目錄。
進去elasticsearch-head/_site/app.js檔案,修改如下配置:
在這裡插入圖片描述
4.2.1 開始安裝

npm config set registry=http://registry.npm.taobao.org/             //修改源地址為淘寶NPM映象,因為預設NPM的官方源為https://registry.npmjs.org/  。國外下載速度會很慢,所以這裡建議切換到淘寶的NPM映象站點比較好。
cd elasticsearch-head
npm install

npm install 安裝時,可能會報 phantomjs-prebuilt@2.1.16安裝失敗。解決方法:

[root@bigdata1 elasticsearch-head]# npm install phantomjs-prebuilt@2.1.16 --ignore-scripts
然後再
[root@bigdata1 elasticsearch-head]# npm install

4.2.2 啟動head外掛服務

[root@bigdata1 elasticsearch-head]# npm run start

head外掛服務啟動之後,預設的訪問埠為9100,如圖所示:
在這裡插入圖片描述
說明已正常啟動,瀏覽器開啟檢視:
在這裡插入圖片描述
自己手動建立一個索引test,如上圖所示。其中 *:是主節點,我建立索引時,配置中設定了5個分片,一個副本分片,因此可以看到每個索引都有10個分片,每個分片都用0、1、2、3、4等數字加方框表示,其中,粗體方框是主分片,細體方框是副本分片。
 my-cluster是叢集的名稱,後面的“叢集健康值”通過不同的顏色表示叢集的健康狀態:其中,綠色表示主分片和副本分片都可用;黃色表示只有主分片可用,沒有副本分片;紅色表示主分片中的部分索引不可用,但是某些索引還可以繼續訪問。正常情況下都顯示綠色。

附加:Elasticsearch 7.x 外掛的安裝、檢視、刪除

安裝:
[elsearch@bigdata1 ~]$ bin/elasticsearch-plugin install xxxxxx
檢視:
[elsearch@bigdata1 ~]$ bin/elasticsearch-plugin list
刪除:
[elsearch@bigdata1 ~]$ bin/elasticsearch-plugin remove xxxxxx

友情提示:如果你安裝之前zookeeper啟動,或者kafka啟動,介意關掉它。

相關文章