從零開始搭建Elasticsearch8.6集群(一)
簡單介紹下Elasticsearch,以及為何使用它
最近公司的電商項目越來越龐大,功能需求點也越來越多,各種C端對查詢和檢索的要求也越來越高,是時候在項目中引入全文檢索了。
ElasticSearch 是一個基于 Lucene 的搜索服務(wù)器,它提供了一個分布式多用戶能力的全文搜索引擎,并且是基于Java 開發(fā)的,我記得很久之前ES還不流行的時候,我們公司使用的是solr,兩者都是基于Lucene的全文搜索服務(wù),其實還都挺好用,使用方式大同小異,現(xiàn)在使用ES的公司越來越多,很多大型門戶網(wǎng)站或者電商也使用了ES。既然使用ES那肯定不能使用單機版,單機就是一個demo自己玩玩可以,萬萬是不能夠上生產(chǎn)環(huán)境的,所以我們必須學會使用集群搭建。
下載Elasticsearch
ES的官網(wǎng):https://www.elastic.co/cn/上下載最新穩(wěn)定版本,我現(xiàn)在使用的版本是8.6.1(elasticsearch-8.6.1-linux-x86_64.tar.gz),下載下來是一個壓縮包。因為服務(wù)器是linux服務(wù)器,所以整個是基于linux進行安裝的。
準備服務(wù)器
在高可用和高性能方面來說一般要3個以上的服務(wù)器,我這開發(fā)環(huán)境有限,就只安裝2臺了
192.168.X.111 master
192.168.X.113 slave
解壓安裝
#下載成功后將壓縮包放到到home/elasticsearch目錄下面(自己新建一個elasticsearch文件夾),進入目錄進行解壓
cd /home/elasticsearch/
#解壓
tar -zxvf elasticsearch-8.6.1-linux-x86_64.tar.gz
解壓之后的目錄大概是這樣
配置文件elasticsearch.yml修改
原始的文件中,都是配置的介紹和使用方式,我這里掛出我的配置
確保安全,我們需要密碼證書的方式進行訪問,先貼出配置,后面會生成證書和密碼
master配置:
#集群名稱
cluster.name: ESsearch
#結(jié)點名稱 多個結(jié)點名稱不同
node.name: es_node_1
#服務(wù)器地址
network.host: 192.168.X.111
#端口號
http.port: 9200
transport.profiles.default.port: 9300
#其他結(jié)點的路徑
discovery.seed_hosts: ["192.168.X.111:9300", "192.168.X.113:9300"]
cluster.initial_master_nodes: ["es_node_1", "es_node_2"]
# 允許通配符刪除索引
action.destructive_requires_name: true
bootstrap.memory_lock: true
#設(shè)置證書密碼訪問 下面會說怎么生成證書
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /home/elasticsearch/elasticsearch-8.6.1/config/certificates/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /home/elasticsearch/elasticsearch-8.6.1/config/certificates/elastic-certificates.p12
#日志和索引存儲地址
path.data: /home/elasticsearch/elasticsearch-8.6.1/data
path.logs: /home/elasticsearch/elasticsearch-8.6.1/logs
#是否支持跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length
slave配置(如果多個節(jié)點,根據(jù)需要同樣配置多個就行):
#集群名稱
cluster.name: ESsearch
#結(jié)點名稱 多個結(jié)點名稱不同
node.name: es_node_2
#服務(wù)器地址
network.host: 192.168.10.113
#端口號
http.port: 9200
transport.profiles.default.port: 9300
#其他結(jié)點的路徑
discovery.seed_hosts: ["192.168.10.111:9300", "192.168.10.113:9300"]
cluster.initial_master_nodes: ["es_node_1", "es_node_2"]
# 允許通配符刪除索引
action.destructive_requires_name: true
bootstrap.memory_lock: true
#設(shè)置證書密碼訪問
xpack.security.enabled: true
xpack.security.transport.ssl.enabled: true
xpack.security.transport.ssl.verification_mode: certificate
xpack.security.transport.ssl.keystore.path: /home/elasticsearch/elasticsearch-8.6.1/config/certificates/elastic-certificates.p12
xpack.security.transport.ssl.truststore.path: /home/elasticsearch/elasticsearch-8.6.1/config/certificates/elastic-certificates.p12
#日志和索引存儲地址
path.data: /home/elasticsearch/elasticsearch-8.6.1/data
path.logs: /home/elasticsearch/elasticsearch-8.6.1/logs
#是否支持跨域
http.cors.enabled: true
http.cors.allow-origin: "*"
http.cors.allow-headers: Authorization,X-Requested-With,Content-Type,Content-Length
注意:bootstrap.memory_lock項要設(shè)置為true,鎖定物理內(nèi)存地址,防止es內(nèi)存被交換,從而提高ES性能;但是設(shè)置以后因為服務(wù)器配置不同可能會啟動報錯
修改文件/etc/security/limits.conf
執(zhí)行vim /etc/security/limits.conf
添加以下內(nèi)容:
* soft nofile 65536
* hard nofile 131072
* soft nproc 2048
* hard nproc 4096
在以下配置文件中添加參數(shù):
vim /etc/sysctl.conf
vm.max_map_count=655360
執(zhí)行sysctl -p
#重啟服務(wù)配置
systemctl daemon-reload
調(diào)整JVM運行內(nèi)存
進入config目錄下的jvm.options文件,本地服務(wù)器內(nèi)存真的不夠。。。。只能調(diào)整
增加參數(shù):
-Xms2g
-Xmx2g
設(shè)置密碼證書認證
1.生成證書
#進入安裝bin目錄
cd /home/elasticsearch/elasticsearch-8.6.1/
./bin/elasticsearch-certutil ca
#第一個是描述,不填跳過;第二是密碼,輸入123456(你可以設(shè)置你自己的密碼)
#會生成elastic-stack-ca.p12的文件
2.生成秘鑰
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
#輸入剛剛的密碼123456,要輸入路徑直接回車,生成在當前目錄下
3.遷移憑證地址到config目錄下
# 先創(chuàng)建目錄
mkdir ./config/certificates
# 移動憑證至指定目錄下
mv ./elastic-certificates.p12 ./config/certificates/
# 賦值權(quán)限777
chmod 777 ./config/certificates/elastic-certificates.p12
4.其他集群都要將這個憑證移動到這個ES安裝的config目錄下
5.各個集群節(jié)點都添加keystore密碼
這里也要切換用戶生成密碼(參考下面一步的切換用戶啟動)
#輸入生成證書時的密碼123456
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
切換用戶啟動(重要)
為了確保安全性,ES不允許使用root用戶進行啟動,當然,為了安全考慮我們本身在使用服務(wù)器時也不建議使用root用戶直接操作,因為我是開發(fā)環(huán)境,一般直接就root開整了,所以需要切換用戶后再進行啟動,如果已經(jīng)有用戶了就不用創(chuàng)建了
#創(chuàng)建用戶組
groupadd elsearch
#創(chuàng)建用戶
useradd elsearch -g elsearch -p 123456
#授予用戶權(quán)限
chown -R elsearch:elsearch /home/elasticsearch/elasticsearch-8.6.1/
#切換用戶
su - elsearch
#然后進入安裝bin目錄
cd /home/elasticsearch/elasticsearch-8.6.1/
#后臺啟動
./bin/elasticsearch -d
設(shè)置集群訪問密碼
會設(shè)置很多密碼 elastic,apm_system,kibana,kibana_system,logstash_system,beats_system,我本地環(huán)境全部設(shè)置成了123456
./bin/elasticsearch-setup-passwords interactive
創(chuàng)建完畢進行訪問查看
至此,集群啟動完畢,可以單獨訪問每臺服務(wù)器:
http://192.168.X.111:9200
http://192.168.X.113:9200
會讓你輸入賬號密碼:elastic 123456
文章來源:http://www.zghlxwxcb.cn/news/detail-553429.html
也可以訪問http://192.168.X.111:9200/_cat/nodes查看各節(jié)點情況:
下一篇,詳細介紹下如何安裝IK分詞器和kibana可視化界面
傳送門:從零開始搭建Elasticsearch集群(二)文章來源地址http://www.zghlxwxcb.cn/news/detail-553429.html
到了這里,關(guān)于【Elasticsearch】從零開始搭建ES8集群并且集成到Springboot,更好的服務(wù)電商類等需要全文索引的項目(一)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!