elasticsearch7.5單點集群部署


  1. 原理問題

主分片是4 副本數是2 ,副本分片等於就是8個,所有分片等於加起來分片數是12,主分片可以寫入,副本分片只可讀

一個分片最大存儲30G數據

 

elasticsearch7以上 xpack基礎版本免費了,不用破解

https://www.elastic.co/cn/subscriptions 免費功能界面

集群必須強制開啟tls后才能開啟密碼認證

 

 

  1. 參考文檔

http://www.pianshen.com/article/9207198635/

配置文件詳解

https://www.cnblogs.com/han-luo/p/10444754.html

 

https://abcops.cn/archives/981#toc_5

 

https://blog.51cto.com/13740724/2438072

 

  1. 部署環境

內核版本

Linux iZ8vbc1ax05oc6vsu6u24kZ 3.10.0-1062.9.1.el7.x86_64 #1 SMP Fri Dec 6 15:49:49 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux

系統版本

CentOS Linux release 7.7.1908 (Core)

jdk版本

openjdk version "13.0.1" 2019-10-15

elasticsearch版本

elasticsearch 7.5.1

 

  1. elasticsearch和jdk的版本對應關系

https://www.elastic.co/cn/support/matrix#matrix_jvm

 

 

  1. 安裝部署單點

  2. 上傳tar包,並解壓縮

 

  1. 創建安裝目錄並創建運行用戶(es不能用root用戶運行,創建普通用戶)

mkdir -p /jesong/cluster/

useradd -d /home/elastic elastic -s /sbin/nologin

 

  1. 修改環境參數

echo "vm.max_map_count=262144" >>/etc/sysctl.conf

sysctl -p

 

echo -e "elastic soft memlock unlimited \nelastic hard memlock unlimited" >> /etc/security/limits.conf

 

  1. 調整jvm參數

vim /jesong/cluster/elasticsearch01/config/jvm.options #使用內存大小,一般不超過百分之50

-Xms256m

-Xmx256m

 

  1. 如果未配置java jdk環境變量那么es會用自帶的java jdk(es版本和jdk版本對應)如果發現未覆蓋,可以到官網下載未捆綁jdk的版本

 

 

vim /etc/profile

配置系統環境變量

JAVA_HOME=/usr/local/java/jdk1.8

JRE_HOME=/usr/local/java/jdk1.8/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

 

  1. 授權普通用戶

chown -R elastic. /jesong/cluster/elasticsearch

 

  1. 修改配置文件

vim elasticsearch.yml

node.name: node-1

path.data: /jesong/cluster/elasticsearch01/data2

path.logs: /jesong/cluster/elasticsearch01/data2

network.host: 172.26.103.59

http.port: 9200

cluster.initial_master_nodes: ["node-1"]

#xpack密碼認證配置

#xpack.security.enabled: true

#xpack.license.self_generated.type: basic

#xpack.security.transport.ssl.enabled: true

 

  1. 啟動

sudo -u elastic nohup /usr/local/elasticsearch/bin/elasticsearch -p /usr/local/elasticsearch/elasticsearch.pid -d

 

  1. 如果想遷移data目錄,先停止es,然后把data目錄拷貝到想要遷移得位置,更改配置文件路徑然后啟動即可。(記得目錄屬主屬組問題

 

  1. 安裝部署集群

  2. 上傳tar包,並解壓縮

 

  1. 創建安裝目錄並創建運行用戶(es不能用root用戶運行,創建普通用戶)

mkdir -p /jesong/cluster/

useradd -d /home/elastic elastic -s /sbin/nologin

 

  1. 復制三份文件

cp -a elasticsearch-7.5.1/ /jesong/cluster/elasticsearch01

cp -a elasticsearch-7.5.1/ /jesong/cluster/elasticsearch02

cp -a elasticsearch-7.5.1/ /jesong/cluster/elasticsearch03

 

 

 

  1. 修改環境參數

echo "vm.max_map_count=262144" >>/etc/sysctl.conf

sysctl -p

 

echo -e "elastic soft memlock unlimited \nelastic hard memlock unlimited" >> /etc/security/limits.conf

 

 

  1. 修改配置文件

 

雙擊即可打開

#集群的名稱

cluster.name: easyliao-brd100

#節點名稱,其余兩個節點分別為node-2 node-3

node.name: node-3

#指定該節點是否有資格被選舉成為master節點,默認是truees是默認集群中的第一台機器為master,如果這台機掛了就會重新選舉master

node.master: true

#允許該節點存儲數據(默認開啟)

node.data: true

#索引數據的存儲路徑

path.data: /jesong/cluster/elasticsearch03/data/

#日志文件的存儲路徑

path.logs: /jesong/cluster/elasticsearch03/logs/

#設置為true來鎖住內存。因為內存交換到磁盤對服務器性能來說是致命的,當jvm開始swappinges的效率會降低,所以要保證它不swap

bootstrap.memory_lock: true

#綁定的ip地址

network.host: 172.26.103.63

#設置對外服務的http端口,默認為9200

http.port: 9203

# 設置節點間交互的tcp端口,默認是9300

transport.tcp.port: 9303

#Elasticsearch將綁定到可用的環回地址,並將掃描端口93009305以嘗試連接到運行在同一台服務器上的其他節點。

#這提供了自動集群體驗,而無需進行任何配置。數組設置或逗號分隔的設置。每個值的形式應該是host:porthost

#(如果沒有設置,port默認設置會transport.profiles.default.port 回落到transport.tcp.port)。

#請注意,IPv6主機必須放在括號內。默認為127.0.0.1, [::1]

discovery.zen.ping.unicast.hosts: ["172.26.103.63:9301", "172.26.103.63:9302", "172.26.103.63:9303"]

#如果沒有這種設置,遭受網絡故障的集群就有可能將集群分成兩個獨立的集群 - 分裂的大腦 - 這將導致數據丟失

discovery.zen.minimum_master_nodes: 2

#只要配置數量的數據或主節點已加入集群,即可恢復

gateway.recover_after_nodes: 2

#

#設置是否可以通過正則或者_all刪除或者關閉索引庫,默認true表示必須需要顯式指定索引庫名稱,生產環境建議設置為true,刪除索引庫的時候必須顯式指定,否則可能會誤刪索引庫中的索引庫

action.destructive_requires_name: true

#

cluster.initial_master_nodes: ["node-1","node-2","node-3"]

 

  1. 調整jvm參數

vim /jesong/cluster/elasticsearch01/config/jvm.options #使用內存大小,一般不超過百分之50

-Xms256m

-Xmx256m

 

  1. 如果未配置java jdk環境變量那么es會用自帶的java jdk(es版本和jdk版本對應,)

 

vim /etc/profile

配置系統環境變量

JAVA_HOME=/usr/local/java/jdk1.8

JRE_HOME=/usr/local/java/jdk1.8/jre

PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib

export JAVA_HOME JRE_HOME PATH CLASSPATH

 

  1. 授權普通用戶權限

chown -R elastic. /jesong/cluster/elasticsearch01

chown -R elastic. /jesong/cluster/elasticsearch02

chown -R elastic. /jesong/cluster/elasticsearch03

 

 

  1. 啟動es各節點

-p 指定pid -d 后台運行

sudo -u elastic nohup /usr/local/elasticsearch/bin/elasticsearch -p /usr/local/elasticsearch/elasticsearch.pid -d

 

  1. 增加x-pack密碼驗證

  2. 單點增加xpack

    1. 修改配置文件

node.name: node-1

path.data: /jesong/cluster/elasticsearch01/data2

path.logs: /jesong/cluster/elasticsearch01/data2

network.host: 172.26.103.59

http.port: 9200

cluster.initial_master_nodes: ["node-1"]

xpack.security.enabled: true

xpack.license.self_generated.type: basic

xpack.security.transport.ssl.enabled: true

 

  1. 啟動es

sudo -u elastic nohup /usr/local/elasticsearch/bin/elasticsearch -p /usr/local/elasticsearch/elasticsearch.pid -d

 

  1. 配置密碼(進入bin目錄)

./elasticsearch-setup-passwords –help #查看參數

./elasticsearch-setup-passwords interactive #手動輸入各密碼

 

  1. 使用密碼連接es,驗證是否正常

curl --user elastic:111111 -XGET 'http://172.26.103.59:9200/_cat/nodes?v'

 

  1. 集群增加xpack密碼驗證(集群增加驗證強制開啟ssl,不然報錯)

    1. 進入其中一台的bin目錄生成ca證書

elasticsearch-certutil ca

elasticsearch-certutil cert --ca elastic-stack-ca.p12

  1. 創建證書存放目錄

mkdir -p /jesong/cluster/elasticsearch01/config/certs/

mv /jesong/cluster/elasticsearch01/elastic-* /jesong/cluster/elasticsearch01/config/certs/

 

  1. 如果是用root創建的目錄和證書,別忘記授權

chown -R elastic. /jesong/cluster/elasticsearch01/config/certs/

  1. 把證書復制到其他節點

cp -a /jesong/cluster/elasticsearch01/config/certs/ /jesong/cluster/elasticsearch02/config/certs/

cp -a /jesong/cluster/elasticsearch01/config/certs/ /jesong/cluster/elasticsearch03/config/certs/

 

  1. 修改各節點配置文件

vim config/elasticsearch.yml

#開啟安全功能

xpack.security.enabled: true

#集群內部通信加密

xpack.security.transport.ssl.enabled: true

xpack.security.transport.ssl.verification_mode: certificate

xpack.security.transport.ssl.keystore.path: certs/elastic-certificates.p12

xpack.security.transport.ssl.truststore.path: certs/elastic-certificates.p12

 

  1. 啟動各節點(啟動后應該是連不上的,配置完密碼后即可鏈接)

sudo -u elastic nohup /jesong/cluster/elasticsearch01/bin/elasticsearch -p /jesong/cluster/elasticsearch01/elasticsearch.pid -d

 

  1. 配置密碼

進入任意節點bin目錄,配置各賬戶密碼, elastic為管理員

./elasticsearch-setup-passwords interactive

 

  1. 配置完成后測試各節點是否能正常連接

curl --user elastic:marbless -XGET 'http://172.26.103.63:9202/_cat/nodes?v'

此時已經部署完成

 

  1. es命令

查看節點信息

curl -XGET 'http://172.26.103.63:9202/_cat/nodes?v'

curl --user elastic:marbless -XGET 'http://172.26.103.63:9202/_cat/nodes?v'

查看集群狀態

curl -XGET 'http://172.26.103.63:9202/_cat/health?v'

curl -XGET 'http://172.26.103.63:9201/_cluster/health?pretty'

查看master節點信息

curl -XGET 'http://172.26.103.63:9202/_cat/master?v'

創建一個索引

curl -XPUT 'http://172.26.103.63:9202/test_one?pretty' test_one:索引名字

查看當前所有索引

curl '192.168.1.4:9200/_cat/indices?v'

 

刪除指定索引

curl -XDELETE 192.168.1.4:9200/system-log-2019.05

刪除多個索引

curl -XDELETE 192.168.1.4:9200/system-log-2019.05,system-log-2019.05

刪除所有索引

curl -XDELETE 192.168.1.4:9200/_all

 

 

 

 

curl -XGET 'http://172.26.103.63:9201/cluster/settings

{

"transient" : {

"cluster.routing.allocation.exclude._ip" : "10.0.0.1"

}

}

 

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM