1. 程式人生 > 其它 >10 Easticsearch叢集搭建

10 Easticsearch叢集搭建

10 Easticsearch叢集搭建

10.1 企業叢集部署

常規企業ES架構圖:

10.2 角色介紹

伺服器IP伺服器配置安裝服務擔任角色
192.168.5.3 1C2G Kibana、Elasticsearch 協調節點
192.168.5.4 1C2G Kibana、Elasticsearch 主節點
192.168.5.5 1C2G Elasticsearch 資料節點
192.168.5.6 1C2G Nginx 排程Kibana

主結點:master節點主要用於叢集的管理及索引 比如新增結點、分片分配、索引的新增和刪除等。 資料結點:data 節點上儲存了資料分片,它負責索引和搜尋操作。 客戶端結點:client 節點僅作為請求客戶端存在,client的作用也作為負載均衡器,client 節點不存資料,只是將請求均衡轉發到其它結點。

通過下邊兩項引數來配置結點的功能:

node.master: #是否允許為主結點
node.data: #允許儲存資料作為資料結點
node.ingest: #是否允許成為協調節點

四種組合方式:

master=true,data=true:即是主結點又是資料結點
master=false,data=true:僅是資料結點
master=true,data=false:僅是主結點,不儲存資料
master=false,data=false:即不是主結點也不是資料結點,此時可設定ingest為true表示它是一個客戶端。

10.3 安裝Elasticsearch叢集

10.3.1 關閉防火牆及selinux(所有叢集節點)

systemctl stop firewalld && systemctl disable firewalld

swapoff -a && sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

setenforce 0 && sed -i 's/^SELINUX=.*/SELINUX=disabled/' /etc/selinux/config

10.3.2 安裝 java 環境(所有叢集節點)

yum -y install java vim

java -version

10.3.3 安裝Elasticsearch(所有叢集節點)

elasticsearch的安裝非常簡單,首先從官網

https://www.elastic.co/下載頁面找到適合的版本,可選擇zip、tar、rpm等格式的安裝包下載

mkdir /usr/local/elk

tar zxvf elasticsearch-7.15.0-linux-x86_64.tar.gz -C /usr/local/elk/

由於ElasticSearch可以接收使用者輸入的指令碼並且執行,為了系統安全考慮,需要建立一個單獨的使用者用來執行elasticSearch,這裡建立的普通使用者是es,操作如下:

groupadd es 
useradd es -g es

然後將elasticsearch的安裝目錄都授權給es使用者,操作如下:

chown -R es:es /usr/local/elk/elasticsearch-7.15.0

10.3.4 作業系統調優(所有叢集節點)

作業系統以及JVM調優主要是針對安裝elasticsearch的機器。對於作業系統,需要調整幾個核心引數,fs.file-max主要是配置系統最大開啟檔案描述符數,建議修改為655360或者更高,vm.max_map_count影響Java執行緒數量,用於限制一個程序可以擁有的VMA(虛擬記憶體區域)的大小,系統預設是65530,建議修改成262144或者更高。將下面內容新增到/etc/sysctl.conf檔案中:

cat <<EOF>>/etc/sysctl.conf
fs.file-max=655360
vm.max_map_count = 262144
EOF

另外,還需要調整程序最大開啟檔案描述符(nofile)、最大使用者程序數(nproc)和最大鎖定記憶體地址空間(memlock),新增如下內容到/etc/security/limits.conf檔案中:

cat <<EOF>>/etc/security/limits.conf
* soft nproc 204800
* hard nproc 204800
* soft nofile 655360
* hard nofile 655360
* soft memlock unlimited
* hard memlock unlimited
EOF

最後,還需要修改/etc/security/limits.d/20-nproc.conf檔案(centos7.x系統),將:

*          soft    nproc     4096
# 修改為:
* soft nproc 20480

或者直接刪除/etc/security/limits.d/20-nproc.conf檔案也行。

sed -i 's/4096/20480/g'  /etc/security/limits.d/20-nproc.conf 

使配置檔案生效

sysctl -p

重新連線對話方塊

10.3.5 修改配置檔案(所有叢集節點)

cat <<EOF>>/usr/local/elk/elasticsearch-7.15.0/config/elasticsearch.yml 
# 叢集名稱
cluster.name: cluster-es
#節點名稱, 每個節點的名稱不能重複
node.name: node-1
# ip 地址, 每個節點的地址不能重複
network.host: 0.0.0.0
# 是不是有資格主節點
node.master: true
node.data: true
node.ingest: true
http.port: 9200
# head 外掛需要這開啟這兩個配置
http.cors.allow-origin: "*"
http.cors.enabled: true
http.max_content_length: 200mb
# es7.x 之後新增的配置,初始化一個新的叢集時需要此配置來選舉 master
cluster.initial_master_nodes: ["node-1"]
# es7.x 之後新增的配置,節點發現
discovery.seed_hosts: ["192.168.5.3:9300","192.168.5.4:9300","192.168.5.5:9300"]
gateway.recover_after_nodes: 2
network.tcp.keep_alive: true
network.tcp.no_delay: true
transport.tcp.compress: true
# 資料儲存地址以及日誌儲存位置
path.data: /data1/elasticsearch,/data2/elasticsearch
path.logs: /usr/local/elk/elasticsearch-7.15.0/logs
# 叢集內同時啟動的資料任務個數,預設是 2 個
cluster.routing.allocation.cluster_concurrent_rebalance: 16
# 新增或刪除節點及負載均衡時併發恢復的執行緒個數,預設 4 個
cluster.routing.allocation.node_concurrent_recoveries: 16
# 初始化資料恢復時,併發恢復執行緒的個數,預設 4 個
cluster.routing.allocation.node_initial_primaries_recoveries: 16
EOF

建立儲存目錄並賦予啟動使用者許可權

mkdir -p /data{1,2}/elasticsearch/
chown es:es -R /data{1,2}/

10.3.6 啟動Elasticsearch(所有叢集節點)

切換到es使用者下啟動elasticsearch叢集即可。分別登入到server1、server2和server3三臺主機上,執行如下操作:

su - es

sh /usr/local/elk/elasticsearch-7.15.0/bin/elasticsearch -d

其中,“-d”引數的意思是將elasticsearch放到後臺執行。

10.3.7 驗證elasticsearch叢集的可用性

http://192.168.5.3:9200/_cat/nodes

10.4 安裝Kibana及負載排程

10.4.1 安裝kibana(部分叢集節點)

 tar zxvf kibana-7.15.0-linux-x86_64.tar.gz -C /usr/local/elk/

10.4.2 修改配置檔案(部分叢集節點)

cat <<EOF>>/usr/local/elk/kibana-7.15.0-linux-x86_64/config/kibana.yml
server.port: 5601
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://localhost:9200"]
kibana.index: ".kibana"
i18n.locale: "zh-CN"
EOF

10.4.3 啟動kibana(部分叢集節點)

nohup /usr/local/elk/kibana-7.15.0-linux-x86_64/bin/kibana --allow-root

10.4.4 安裝Nginx(部分叢集節點)

yum -y install gcc* gcc-* pcre openssl zlib pcre-devel openssl-devel mkae 

wget http://nginx.org/download/nginx-1.20.1.tar.gz

tar zxvf nginx-1.20.1.tar.gz -C /opt

cd /opt/nginx-1.20.1

./configure --prefix=/usr/local/nginx && make && make install

10.4.5 新增負載排程(部分叢集節點)

vim /usr/local/nginx/conf/nginx.conf

http {

# ... 省略其它配置

upstream kibana {
server 192.168.5.3:5601;
server 192.168.5.4:5601;
}

server {
listen 80;

location / {
proxy_pass http://kibana;
}
}

# ... 省略其它配置
}

sh /usr/local/nginx/sbin/nginx

10.4.4 驗證負載均衡

本文摘抄或總結其他筆記,筆記不涉及任何商業用途,如果侵權請及時聯絡處理