文章目錄
ip | hostname | jdk | ES |
---|---|---|---|
10.180.249.245 | manager.rancher | jdk-8u121-linux-x64 | 6.6.2 |
10.180.249.246 | master.rancher | jdk-8u121-linux-x64 | 6.6.2 |
10.180.249.247 | worker.rancher | jdk-8u121-linux-x64 | 6.6.2 |
1.安裝jdk
集羣三個節點都需要安裝jdk
tar -zxvf jdk-8u121-linux-x64.tar.gz -C /opt/
vim /etc/profile
JAVA_HOME=/opt/jdk1.8.0_121
PATH=$PATH:$JAVA_HOME/bin
source /etc/profile
java -version
2.部署ES集羣
在集羣manager.rancher節點執行操作
2.1 創建用戶
useradd elasticsearch
2.2 安裝ES
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-6.6.2.tar.gz
tar -zxvf elasticsearch-6.6.2.tar.gz -C /opt/
2.3 修改配置文件elasticsearch.yml
cd /opt/elasticsearch-6.6.2/config
cp elasticsearch.yml elasticsearch.yml.bak
vim elasticsearch.yml
cluster.name: escluster # 集羣名字,三臺集羣的集羣名字都必須一致
node.name: manager.rancher # 節點名字(使用hostname),三臺ES節點字都必須不一樣
node.master: true # 該節點是否有資格選舉爲master,如果上面設了兩個mater_node 2,也就是最少兩個master節點,則集羣中必須有兩臺es服務器的配置爲node.master: true的配置,配置了2個節點的話,如果主服務器宕機,整個集羣會不可用,所以三臺服務器,需要配置3個node.masdter爲true,這樣三個master,宕了一個主節點的話,他又會選舉新的master,還有兩個節點可以用,只要配了node master爲true的ES服務器數正在運行的數量不少於master_node的配置數,則整個集羣繼續可用,我這裏則配置三臺es node.master都爲true,也就是三個master,master服務器主要管理集羣狀態,負責元數據處理,比如索引增加刪除分片分配等,數據存儲和查詢都不會走主節點,壓力較小,jvm內存可分配較低一點
node.data: true # 存儲索引數據,三臺都設爲true即可
path.data: /opt/elasticsearch-6.6.2/data
path.logs: /opt/elasticsearch-6.6.2/logs
bootstrap.memory_lock: true # 鎖住物理內存,不使用swap內存,有swap內存的可以開啓此項
bootstrap.system_call_filter: false
http.port: 9200
network.host: 0.0.0.0
discovery.zen.minimum_master_nodes: 2 # 表示集羣最少的master數,如果集羣的最少master數據少於指定的數,將無法啓動,官方推薦node master數設置爲集羣數/2+1,我這裏三臺ES服務器,配置最少需要兩臺master,整個集羣纔可正常運行,
discovery.zen.ping_timeout: 3s # 自動發現ping其他節點超時時間
discovery.zen.ping.unicast.hosts: ["10.180.249.245:9300","10.180.249.246:9300","10.180.249.247:9300"] # 設置集羣的初始節點列表,集羣互通端口爲9300
vim jvm.options
-Xms1g 修改爲 ===> -Xms2g
-Xmx1g 修改爲 ===> -Xmx2g
設置爲物理內存一半最佳,可根據服務器內存去選擇調
2.4 集羣配置
從manager.rancher節點發送到master.rancher、worker.rancher節點
cd /opt
scp -r elasticsearch-6.6.2 master.rancher:$PWD
scp -r elasticsearch-6.6.2 worker.rancher:$PWD
修改對應節點的配置文件
vim /opt/elasticsearch-6.6.2/config/elasticsearch.yml
node.name: master.rancher # 節點名字(使用hostname),三臺ES節點字都必須不一樣
node.name: worker.rancher # 節點名字(使用hostname),三臺ES節點字都必須不一樣
3.設置權限
集羣三個節點都執行相同操作
chown -R elasticsearch:elasticsearch /opt/elasticsearch-6.6.2/
4.操作系統配置
集羣三個節點都執行相同操作
vim /etc/sysctl.conf
fs.file-max=655360 # 系統最大打開文件描述符數
vm.max_map_count=655360 # 限制一個進程擁有虛擬內存區域的大小
vm.swappiness=0
保存後,執行
sysctl -p
vim /etc/security/limits.conf
* soft nofile 65536
* hard nofile 65536
* soft nproc 65536
* hard nproc 65536
elasticsearch soft memlock unlimited
elasticsearch hard memlock unlimited
vim /etc/security/limits.d/20-nproc.conf
* soft nproc 4096 修改前
* soft nproc 65536 修改後
5.啓動
集羣三個節點都執行相同操作
cd /opt/elasticsearch-6.6.2/
su elasticsearch
bin/elasticsearch
bin/elasticsearch -d # 後臺啓動
6.檢查
6.1 查看節點狀態
http://10.180.249.245:9200
6.2 查看集羣信息
http://10.180.249.245:9200/_cluster/health?pretty
6.3 查看所有節點
http://10.180.249.245:9200/_cat/nodes?pretty
(mdi)表示爲master節點
(*)表示爲主master
6.4 查看集羣建康狀況
http://10.180.249.245:9200/_cat/health?pretty
6.5 查看主master機器
http://10.180.249.245:9200/_cat/master?pretty
7.安裝HEAD插件(manager.rancher)
rpm -Uvh https://dl.fedoraproject.org/pub/epel/7/x86_64/Packages/e/epel-release-7-12.noarch.rpm
yum -y install nodejs npm git
cd /opt
git clone git://github.com/mobz/elasticsearch-head.git
npm config set registry https://registry.npm.taobao.org npm info underscore
cd /opt/elasticsearch-head/
npm install
cd /opt/elasticsearch-6.6.2/config/elasticsearch.yml
http.cors.enabled: true
http.cors.allow-origin: “*”
重啓ES(查找進程 - - kill - - 啓動)
啓動HEAD
cd /opt/elasticsearch-head
grunt server &