全網最簡單快速搭建ES集羣

Elasticsearch集羣部署

系統類型:Centos7.6

節點IP:172.16.244.25、172.16.244.26、172.16.244.27

軟件版本:jdk-8u121-linux-x64.tar.gz、elasticsearch-6.5.4.tar.gz

示例節點:172.16.244.25 ABC

1、安裝配置jdk8

ES運行依賴jdk8

tar zxvf /usr/local/package/jdk-8u121-linux-x64.tar.gz -C /usr/local/
echo '
JAVA_HOME=/usr/local/jdk1.8.0_121
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME PATH
' >>/etc/profile
source /etc/profile
2、安裝配置ES

(1)創建運行ES的普通用戶

useradd elsearch       (useradd ela)
echo "******" | passwd --stdin "elsearch"
(2)安裝配置ES
tar zxvf /usr/local/package/elasticsearch-6.5.4.tar.gz -C /usr/local/ 
echo '
cluster.name: bjbpe01-elk
node.name: elk01
node.master: true
node.data: true
path.data: /data/elasticsearch/data
path.logs: /data/elasticsearch/logs
bootstrap.memory_lock: true
bootstrap.system_call_filter: false
network.host: 0.0.0.0
http.port: 9200
discovery.zen.ping.unicast.hosts: ["172.16.244.26", "172.16.244.27"]
discovery.zen.minimum_master_nodes: 2
discovery.zen.ping_timeout: 150s
discovery.zen.fd.ping_retries: 10
client.transport.ping_timeout: 60s
http.cors.enabled: true
http.cors.allow-origin: "*"
' >>/usr/local/elasticsearch-6.5.4/config/elasticsearch.yml
配置項含義:
cluster.name        集羣名稱,各節點配成相同的集羣名稱。
node.name       節點名稱,各節點配置不同。
node.master     指示某個節點是否符合成爲主節點的條件。
node.data       指示節點是否爲數據節點。數據節點包含並管理索引的一部分。
path.data       數據存儲目錄。
path.logs       日誌存儲目錄。
bootstrap.memory_lock       內存鎖定,是否禁用交換。
bootstrap.system_call_filter    系統調用過濾器。
network.host    綁定節點IP。
http.port       rest api端口。
discovery.zen.ping.unicast.hosts    提供其他 Elasticsearch 服務節點的單點廣播發現功能。
discovery.zen.minimum_master_nodes  集羣中可工作的具有Master節點資格的最小數量,官方的推薦值是(N/2)+1,其中N是具有master資格的節點的數量。
discovery.zen.ping_timeout      節點在發現過程中的等待時間。
discovery.zen.fd.ping_retries        節點發現重試次數。
http.cors.enabled               是否允許跨源 REST 請求,用於允許head插件訪問ES。
http.cors.allow-origin              允許的源地址。

(3)設置JVM堆大小

sed -i 's/-Xms1g/-Xms2g/' /usr/local/elasticsearch-6.5.4/config/jvm.options
sed -i 's/-Xmx1g/-Xmx2g/' /usr/local/elasticsearch-6.5.4/config/jvm.options

注意:

確保堆內存最小值(Xms)與最大值(Xmx)的大小相同,防止程序在運行時改變堆內存大小。如果系統內存足夠大,將堆內存最大和最小值設置爲31G,因爲有一個32G性能瓶頸問題。堆內存大小不要超過系統內存的50%

(4)創建ES數據及日誌存儲目錄
mkdir -p /data/elasticsearch/data     
mkdir -p /data/elasticsearch/logs     
(5)修改安裝目錄及存儲目錄權限
chown -R elsearch:elsearch /data/elasticsearch
chown -R elsearch:elsearch /usr/local/elasticsearch-6.5.4

3、系統優化

(1)增加最大文件打開數
永久生效方法:
echo”* - nofile 65536” >> /etc/security/limits.conf
(2)增加最大進程數
echo “* soft nproc 31717” >> /etc/security/limits.conf
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
更多的參數調整可以直接用這個

啓動如果報下列錯誤

memory locking requested for elasticsearch process but memory is not locked
elasticsearch.yml文件
bootstrap.memory_lock : false
/etc/sysctl.conf文件
vm.swappiness=0

錯誤:
max file descriptors [4096] for elasticsearch process is too low, increase to at least [65536]

意思是elasticsearch用戶擁有的客串建文件描述的權限太低,知道需要65536個

解決:

切換到root用戶下面,

vim   /etc/security/limits.conf

在最後添加
* hard nofile 65536
* hard nofile 65536
重新啓動elasticsearch,還是無效?
必須重新登錄啓動elasticsearch的賬戶纔可以,例如我的賬戶名是elasticsearch,退出重新登錄。
另外*也可以換爲啓動elasticsearch的賬戶也可以,* 代表所有,其實比較不合適

啓動還會遇到另外一個問題,就是
max virtual memory areas vm.max_map_count [65530] is too low, increase to at least [262144]
意思是:elasticsearch用戶擁有的內存權限太小了,至少需要262114。這個比較簡單,也不需要重啓,直接執行
sysctl -w vm.max_map_count=262144
就可以了

4、啓動ES

su - elsearch -c "cd /usr/local/elasticsearch-6.5.4 && nohup bin/elasticsearch &"

測試:瀏覽器訪問http://172.16.244.25:9200
在這裏插入圖片描述

5.安裝配置head監控插件

(1)安裝node

wget https://npm.taobao.org/mirrors/node/latest-v4.x/node-v4.4.7-linux-x64.tar.gz
tar -zxf node-v4.4.7-linux-x64.tar.gz –C /usr/local
echo ‘
NODE_HOME=/usr/local/node-v4.4.7-linux-x64
PATH=$NODE_HOME/bin:$PATH
export NODE_HOME PATH
‘ >>/etc/profile
source /etc/profile
node --version   #檢查node版本號

(2)下載head插件

wget https://github.com/mobz/elasticsearch-head/archive/master.zip
unzip –d /usr/local elasticsearch-head-master.zip

(3)安裝grunt

cd /usr/local/elasticsearch-head-master
yum -y install npm
npm install -g grunt-cli
grunt –-version  #檢查grunt版本號

(4)修改head源碼
vi /usr/local/elasticsearch-head-master/Gruntfile.js (95左右)
在這裏插入圖片描述
添加hostname,注意在上一行末尾添加逗號,hostname 不需要添加逗號
vi /usr/local/elasticsearch-head-master/_site/app.js (4360左右)
在這裏插入圖片描述
原本是http://localhost:9200 ,如果head和ES不在同一個節點,注意修改成ES的IP地址
(5)下載head必要的文件

wget https://github.com/Medium/phantomjs/releases/download/v2.1.1/phantomjs-2.1.1-linux-x86_64.tar.bz2
yum -y install bzip2
tar -jxf phantomjs-2.1.1-linux-x86_64.tar.bz2 -C /tmp/

(6)運行head

方法一:yum -y install fontconfig 
cd /tmp/phantomjs-2.1.1-linux-x86_64/bin
mv phantomjs /usr/bin/
方法二:cd /usr/local/elasticsearch-head-master/
npm install
nohup grunt server &

(7)測試
訪問http://172.16.244.25:9100
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章