一、Windows安裝Docker
1、Windows安裝Docker要求
1.1、Windows 版 Docker 需要運(yùn)行在一個(gè)安裝了 64 位 Windows 10 操作系統(tǒng)的計(jì)算機(jī)上,通過(guò)啟動(dòng)一個(gè)獨(dú)立的引擎來(lái)提供 Docker 環(huán)境。
1.2、需要啟用 Windows 操作系統(tǒng)中的 Hyper-V 和容器特性。
1) 右鍵單擊 Windows 開(kāi)始按鈕并選擇“應(yīng)用和功能”頁(yè)面。
2)單擊“程序和功能”鏈接。
3) 單擊“啟用或關(guān)閉Windows功能”。
4)確認(rèn)Hyper-V和容器復(fù)選框已經(jīng)被勾選,并單擊確定按鈕。
按上述步驟操作完成后,會(huì)安裝并開(kāi)啟 Hyper-V 和容器特性,如下圖所示。這時(shí)需要重啟操作系統(tǒng)。
2、Docker安裝
1)訪問(wèn)docker官網(wǎng)(https://www.docker.com/),選擇windows版本, 下載docker desktop。
2)docker安裝完成后以管理員身份運(yùn)行docker。
3)打開(kāi)PowerShell,并嘗試執(zhí)docker version
命令。
4)docker desktop安裝完成。
二、基于Docker安裝Elasticsearch
1、安裝Elasticsearch
1)通過(guò)docker hub官網(wǎng)(https://hub.docker.com/)尋找 elasticsearch鏡像。
2)尋找合適的elasticsearch版本
3)通過(guò)Windows的PowerShell命令,下載docker鏡像
docker pull elasticsearch:8.7.1
4)查看鏡像
docker images elasticsearch
5)因?yàn)閐ocker和kibana需要共享同一個(gè)網(wǎng)絡(luò),所以利用docker創(chuàng)建一個(gè)共享網(wǎng)絡(luò)es-net
docker network create es-net
6)查看共享網(wǎng)絡(luò)
docker network ls
7)運(yùn)行elasticsearch(在PowerShell中執(zhí)行時(shí),需要把"\"移除)
docker run -d --name es \
-e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" \
-e "discovery.type=single-node" \
-v C:\Users\14547\Desktop\lyq\elasticsearch\es-data:/usr/share/elasticsearch/data \
-v C:\Users\14547\Desktop\lyq\elasticsearch\es-plugins:/usr/share/elasticsearch/plugins \
-v C:\Users\14547\Desktop\lyq\elasticsearch\temp:/usr/temp \
--privileged \
--network es-net \
-p 9200:9200 \
-p 9300:9300 \
elasticsearch:8.7.1
8)運(yùn)行參數(shù)詳解
-d #容器后臺(tái)運(yùn)行
--name es #容器命名
-e "ES_JAVA_OPTS=-Xms1024m -Xmx1024m" #設(shè)置容器最小最大運(yùn)行內(nèi)存
-e "discovery.type=single-node" #設(shè)置es的運(yùn)行模式是單機(jī)運(yùn)行
-v C:\Users\14547\Desktop\lyq\elasticsearch\es-data:/usr/share/elasticsearch/data #數(shù)據(jù)卷,方便容器持久化
-v C:\Users\14547\Desktop\lyq\elasticsearch\es-plugins:/usr/share/elasticsearch/plugins #數(shù)據(jù)卷,方便容器持久化
-v C:\Users\14547\Desktop\lyq\elasticsearch\temp:/usr/temp #數(shù)據(jù)卷,方便容器持久化
--privileged #以最大權(quán)限運(yùn)行容器
--network es-net #執(zhí)行容器運(yùn)行網(wǎng)絡(luò),與kibana運(yùn)行保持在同一網(wǎng)絡(luò)
-p 9200:9200 #開(kāi)放端口
-p 9300:9300 #開(kāi)放端口
elasticsearch:8.7.1 #運(yùn)行鏡像和tag
9)查看容器運(yùn)行情況
docker ps -f name=es
10)訪問(wèn)es,地址:http://localhost:9200/,需要密碼驗(yàn)證
2、Elasticsearch的XPACK驗(yàn)證
2.1、什么是Xpack
X-Pack是Elastic Stack擴(kuò)展功能,提供安全性,警報(bào),監(jiān)視,報(bào)告,機(jī)器學(xué)習(xí)和許多其他功能。 ES7.0+之后,默認(rèn)情況下,當(dāng)安裝Elasticsearch時(shí),會(huì)安裝X-Pack,無(wú)需單獨(dú)再安裝。
自6.8以及7.1+版本之后,基礎(chǔ)級(jí)安全永久免費(fèi)。
2.2、Xpack相關(guān)安全配置介紹
2.2.1、xpack.security.enabled
默認(rèn)為true,啟用節(jié)點(diǎn)上ES的XPACK安全功能,相當(dāng)于總開(kāi)關(guān)
2.2.2 、xpack.security.http.ssl
這個(gè)是用來(lái)開(kāi)啟https的,以及對(duì)應(yīng)的設(shè)置,整體配置項(xiàng)如下:
xpack.security.http.ssl:
enabled: false 【開(kāi)啟還是關(guān)閉】
verification_mode: certificate【如下】
【full:它驗(yàn)證所提供的證書(shū)是否由受信任的權(quán)威機(jī)構(gòu)(CA)簽名,并驗(yàn)證服務(wù)器的主機(jī)名(或IP地址)是否與證書(shū)中識(shí)別的名稱匹配?!? 【certificate:它驗(yàn)證所提供的證書(shū)是否由受信任的機(jī)構(gòu)(CA)簽名,但不執(zhí)行任何主機(jī)名驗(yàn)證?!? 【none:它不執(zhí)行服務(wù)器證書(shū)的驗(yàn)證?!? truststore.path: certs/elastic-certificates.p12 【信任存儲(chǔ)庫(kù)文件的存放位置】
keystore.path: certs/elastic-certificates.p12【密鑰存儲(chǔ)庫(kù)文件的存放位置】
2.2.3、xpack.security.transport.ssl
這個(gè)是傳輸層的認(rèn)證設(shè)置,整體配置項(xiàng)如下:
xpack.security.transport.ssl:
enabled: true【開(kāi)啟還是關(guān)閉】
verification_mode: certificate【如下】
【full:它驗(yàn)證所提供的證書(shū)是否由受信任的權(quán)威機(jī)構(gòu)(CA)簽名,并驗(yàn)證服務(wù)器的主機(jī)名(或IP地址)是否與證書(shū)中識(shí)別的名稱匹配?!? 【certificate:它驗(yàn)證所提供的證書(shū)是否由受信任的機(jī)構(gòu)(CA)簽名,但不執(zhí)行任何主機(jī)名驗(yàn)證?!? 【none:它不執(zhí)行服務(wù)器證書(shū)的驗(yàn)證?!? keystore.path: certs/elastic-certificates.p12【信任存儲(chǔ)庫(kù)文件的存放位置】
truststore.path: certs/elastic-certificates.p12【密鑰存儲(chǔ)庫(kù)文件的存放位置】
2.3、創(chuàng)建證書(shū)
1. 進(jìn)入docker容器
進(jìn)入docker容器的方法有兩種:
1)通過(guò)PowerShell,執(zhí)行命令,進(jìn)入容器內(nèi)部執(zhí)行命令
docker exec -it es bash
2)通過(guò)docker desk,查看具體的容器,可以在docker desktop執(zhí)行相關(guān)命令
在Terminal中可以執(zhí)行相關(guān)的命令。
2. 創(chuàng)建證書(shū)頒發(fā)機(jī)構(gòu)
提示命名文件:直接回車,默認(rèn)文件名elastic-stack-ca.p12文件(建議使用默認(rèn)文件名)
提示輸入密碼:輸入密碼進(jìn)行設(shè)置(也可以直接回車)
./bin/elasticsearch-certutil ca
3. 為節(jié)點(diǎn)生成證書(shū)和私鑰
提示命名文件,直接回車,默認(rèn)文件名elastic-certificates.p12文件
提示輸入密碼:輸入密碼進(jìn)行設(shè)置(也可以直接回車)
./bin/elasticsearch-certutil cert --ca elastic-stack-ca.p12
4. 在elasticsearch/config目錄下創(chuàng)建下certs目錄
進(jìn)入docker容器后,默認(rèn)所處目錄為elasticsearch所在目錄
mkdir config/certs
5. 將elastic-certificates.p12文件可剪切到certs目錄下
mv elastic-certificates.p12 config/certs/
2.4、給keystore和truststore設(shè)置密碼
keystore可以看成一個(gè)放key的庫(kù),key就是公鑰,私鑰,數(shù)字簽名等組成的一個(gè)信息。truststore是放信任的證書(shū)的一個(gè)store。
truststore和keystore的性質(zhì)是一樣的,都是存放key的一個(gè)倉(cāng)庫(kù),區(qū)別在于,truststore里存放的是只包含公鑰的數(shù)字證書(shū),代表了可以信任的證書(shū),而keystore是包含私鑰的。
1)執(zhí)行以下命令。如果在創(chuàng)建證書(shū)的過(guò)程中加了密碼,需要輸入這個(gè)密碼。每個(gè)節(jié)點(diǎn)都需要。
./bin/elasticsearch-keystore add xpack.security.transport.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.transport.ssl.truststore.secure_password
./bin/elasticsearch-keystore add xpack.security.http.ssl.keystore.secure_password
./bin/elasticsearch-keystore add xpack.security.http.ssl.truststore.secure_password
2)檢查config目錄下keystore文件
cd config
2.5、修改elasticsearch.yml配置文件并重啟elasticsearch
1)打開(kāi)docker desktop,進(jìn)入到es容器。
2)在Files目錄下找到elasticsearch.yml文件。(容器內(nèi)文件絕對(duì)路徑:/usr/share/elasticsearch/config/elasticsearch.yml)
3)修改配置文件內(nèi)容,如下:
xpack.security.enabled: true
xpack.security.enrollment.enabled: true
xpack.security.http.ssl:
enabled: false
verification_mode: certificate
truststore.path: certs/elastic-certificates.p12
keystore.path: certs/elastic-certificates.p12
xpack.security.transport.ssl:
enabled: true
verification_mode: certificate
keystore.path: certs/elastic-certificates.p12
truststore.path: certs/elastic-certificates.p12
4)重啟docker容器
2.6、重置用戶密碼
集群中的節(jié)點(diǎn)都按照上面的方式完成配置并啟動(dòng)后,就可以設(shè)置賬號(hào)密碼了。
1)es共有3個(gè)默認(rèn)賬戶:
- elastic 賬號(hào):擁有 superuser 角色,是內(nèi)置的超級(jí)用戶。 kibana 賬號(hào):擁有 kibana_system 角色,用戶
- kibana 用來(lái)連接 elasticsearch 并與之通信。Kibana 服務(wù)器以該用戶身份提交請(qǐng)求以訪問(wèn)集群監(jiān)視 API 和 .kibana 索引。不能訪問(wèn) index。 logstash_system 賬號(hào):擁有 logstash_system 角色。用戶
- Logstash 在 Elasticsearch 中存儲(chǔ)監(jiān)控信息時(shí)使用。
2)自動(dòng)創(chuàng)建密碼(elastic、kibana 、Logstash賬號(hào),密碼均會(huì)重置)
./bin/elasticsearch-setup-passwords auto
3)手動(dòng)輸入密碼(需要重置elastic、kibana 、Logstash賬號(hào)密碼)
./bin/elasticsearch-setup-passwords interactive
4)重置用戶密碼(隨機(jī)密碼)
./bin/elasticsearch-reset-password -u elastic
5)重置用戶密碼(指定密碼)
./bin/elasticsearch-reset-password -u elastic -i <password>
2.7、登錄ES
1)登錄http://localhost:9200/,輸入賬號(hào)密碼。展示es版本信息。
三、基于Docker安裝Kibana
1、安裝Elasticsearch
1)通過(guò)docker hub官網(wǎng)(https://hub.docker.com/)尋找 kibana鏡像。
2)尋找合適的Kibana版本,這里選擇8.7.1版本,與es版本保持一致
3)通過(guò)Windows的PowerShell命令,下載docker鏡像
docker pull kibana:8.7.1
4)查看鏡像
docker images
5)運(yùn)行kibana(在PowerShell中執(zhí)行時(shí),需要把"/"移除)
docker run -d --name kibana \
-e ELASTICSERACH_HOSTS=http://es:9200 \
--network=es-net \
-p 5601:5601 \
kibana:8.7.1
6)運(yùn)行參數(shù)詳解
-d #容器后臺(tái)運(yùn)行
--name kibana #容器命名
-e ELASTICSERACH_HOSTS=http://es:9200 #設(shè)置es訪問(wèn)路徑,因?yàn)閑s和kibana都部署在docker中,共享同一個(gè)es-net網(wǎng)絡(luò),所以可以通過(guò)容器名訪問(wèn)
--network es-net #執(zhí)行容器運(yùn)行網(wǎng)絡(luò)
-p 5601:5601 #開(kāi)放端口
kibana:8.7.1 #運(yùn)行鏡像和tag
9)查看容器運(yùn)行情況
docker ps
2、配置kibana認(rèn)證
1)找到kibana配置文件。(文件絕對(duì)路徑:/usr/share/kibana/config/kibana.yml)
2)修改kibana配置如下:
elasticsearch.username: "kibana" #不能配置elastic用戶,否則kibana啟動(dòng)會(huì)提示權(quán)限過(guò)高
elasticsearch.password: "******" #配置密碼,重置密碼請(qǐng)看:2.6、重置用戶密碼
elasticsearch.hosts: ["http://es:9200"] #es訪問(wèn)地址
3)重啟kibana
4)登錄kibana,http:localhost:5601/
四、安裝IK分詞器
1、下載IK分詞器
https://github.com/medcl/elasticsearch-analysis-ik
這里選擇最新版本v8.7.0下載,對(duì)應(yīng)elasticsearch的v8.7.1。這里下載elasticsearch-analysis-ik-8.7.0.zip壓縮包。
2、安裝IK分詞器
1)下載成功后,將elasticsearch-analysis-ik-8.7.0.zip解壓放到數(shù)據(jù)卷目錄es-plugins下。
2)重新啟動(dòng)es,系統(tǒng)提示"fatal exception while booting Elasticsearch",那是因?yàn)镮K分詞器中默認(rèn)設(shè)置的版本與es的版本不一致
3)來(lái)到數(shù)據(jù)卷掛載目錄,修改plugin-descriptor.properties配置文件的es版本信息,修改elasticsearch.version=8.7.1(本文es鏡像版本為8.7.1),配置信息與es鏡像版本一致。
4)使用docker desktop,重啟es鏡像,發(fā)現(xiàn)es鏡像可以啟動(dòng)成功。文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-607161.html
參考文獻(xiàn):
《龍叔學(xué)ES:Elasticsearch XPACK安全認(rèn)證》文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-607161.html
到了這里,關(guān)于Windows基于Docker安裝Elasticsearch和 kibana筆記的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!