一、搭建es集群
1、前置操作
如果已有單節點es,想要將其轉換升級為集群,必須要刪除/data下的node數據,即清空data中的信息
2、生成證書
僅在集群的第一臺服務器node-01執行,其他服務器直接復制即可
注:配置了安全認證之后,訪問es需要輸入賬號密碼
- 進入bin目錄
cd /usr/local/es/elasticsearch-8.4.3/bin
- 簽發ca證書
此處會讓你輸入證書文件名、密碼,我們什么哦度不輸入,直接點回車就行,兩次都是
命令執行完后,會在
elasticsearch-8.4.3
目錄下生成一個ca證書:elastic-stack-ca.p12
./elasticsearch-certutil ca
- 用ca證書簽發節點證書
以前面生成的ca證書,生成節點證書
需要輸入的內容直接回車跳過(三次)
執行完成后悔在
elasticsearch-8.4.3
目錄先生成:elastic-certificates.p12
./elasticsearch-certutil cert --ca elastic-stack-ca.p12
- 將證書放到../config/certs 中
mkdir /usr/local/es/elasticsearch-8.4.3/config/certs
mv elastic-stack-ca.p12 elastic-certificates.p12 /config/certs/
- 配置文件配置證書信息
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: none
xpack.security.transport.ssl.keystore.path: /usr/local/es/elasticsearch-8.4.3/config/certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /usr/local/es/elasticsearch-8.4.3/config/certs/elastic-certificates.p12
ingest.geoip.downloader.enabled: false
3、集群配置
elasticsearch.yml
ES8版本的參數改變role.data:true不再使用,改為node.roles:
# 配置集群名稱,保證每個節點的名稱相同,如此就能都處于一個集群之內了
cluster.name: my-es-cluster
# 每一個節點的名稱,必須不一樣
node.name: es-node1
# http端口(使用默認即可)
http.port: 9200
# 主節點,作用主要是用于來管理整個集群,負責創建或刪除索引,管理其他非master節點(此外,每一個es幾點都要配置該信息,因為只有該信息配置為true的節點,才有機會在主節點掛掉之后成為新的master,如果為false,就相當于該節點在任何情況下都不可能成為master)es8之后使用node.roles
#node.master: true
# 數據節點,用于對文檔數據的增刪改查
#node.data: true
# 注意至少有兩個具有選舉master資格的節點
node.roles: [data, master]
# 集群列表
discovery.seed_hosts: ["192.168.xx.xxx", "192.168.xx.xxx", "192.168.xx.xxx"]
# 啟動的時候使用一個master節點(當前節點的節點名稱)
cluster.initial_master_nodes: ["es-node1", "es-node2", "es-node3"]
4、設置es訪問的用戶名密碼
此處會有很多的密碼需要設置,我們先都將其設置成一樣的
root123
注:es的默認用戶為:
elastic
,此處設置的密碼:root123
,即登錄名和密碼
./elasticsearch-setup-passwords interactive
5、一個完整的集群配置信息
- elasticsearch.yml
一個可用集群配置
一個完整的,配置了證書的集群,測試無誤
每個節點只需要修改node.name
信息,其他都不用動,node.roles
安實際情況配置,可相同
cluster.name: my-cluster
node.roles: [master, data]
# 每個節點不同即可
node.name: node-1
path.data: /usr/local/es/elasticsearch-8.4.3/data
path.logs: /usr/local/es/elasticsearch-8.4.3/logs
network.host: 0.0.0.0
http.port: 9200
http.cors.enabled: true
http.cors.allow-origin: "*"
discovery.seed_hosts: ["192.168.56.101", "192.168.56.106", "192.168.56.107"]
cluster.initial_master_nodes: ["node-1", "node-2", "node-3"]
action.destructive_requires_name: false
# 證書相關
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: none
xpack.security.transport.ssl.keystore.path: /usr/local/es/elasticsearch-8.4.3/config/certs/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /usr/local/es/elasticsearch-8.4.3/config/certs/elastic-certificates.p12
ingest.geoip.downloader.enabled: false
3、啟動各個節點
集群配置成功,啟動各個es節點